iptables配置

清空默认规则

1
2
3
4
5
6
# 清空默认规则
iptables -F
# 删除用户自定义规则
iptables -X
# 链的计数器清零
iptables -Z

允许本机访问本机

1
2
3
4
5
iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
iptables -A OUTPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
# 下面的命令也可以
# iptables -A INPUT -i lo -p all -j ACCEPT
# iptables -A OUTPUT -o lo -p all -j ACCEPT

允许 ssh

1
2
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT

允许 DNS 服务,53 端口

1
2
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --sport 53 -j ACCEPT

允许所有 80 和 443 端口,即 http、https

1
2
3
4
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 443 -j ACCEPT

允许所有已经建立的和相关的连接

1
2
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

禁止其他未允许的规则访问

1
2
3
4
iptables -P INPUT DROP
iptables -P FORWARD DROP
# 下面的配置可以不执行,但是执行前,必须先配置需要放行的OUTPUT端口
# iptables -P OUTPUT DROP

保存规则

1
/etc/init.d/iptables save

查看规则

1
iptables -L -n --line-numbers