-
把这条语句插在input链的最前面(第一条),对状态为ESTABLISHED,RELATED的连接放行。这条规则在某种情况下甚至比下面开放ssh服务都重要:① 如果INPUT连默认为DROP,② INPUT链默认为INPUT,但存在这条规则iptables -I INPUT 1 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
,上面两种情况下都必须添加--state RELATED,ESTABLISHED
为第一条,否则22端口无法通行,把自己锁在防火墙外面了。有了这条规则,可保证只要当前ssh没有关闭,哪怕防火墙忘记开启22端口,也可以继续连接。 -
允许所有,不安全,默认。iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-
限制指定IP范围能SSH,可取iptables -A INPUT -s 172.29.73.0/24 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-
允许一个IP段访问多个端口iptables -A INPUT -s 10.30.0.0/16 -p tcp -m tcp -m multiport --dports 80,443 -j ACCEPT
-
禁止某IP段访问80端口,将iptables -A INPUT -s 10.30.26.0/24 -p tcp -m tcp --dport 80 -j DROP
-j DROP
改成-j REJECT --reject-with icmp-host-prohibited
作用相同。
iptables -A INPUT -s 172.29.73.23 -j ACCEPT
iptables -I INPUT 2 -i lo -j ACCEPT
-A INPUT -p icmp -j ACCEPT
接受icmp数据包,可以ping。也可以设置只允许某个特定的IP,见后文。
iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited
-P DROP
相同,当前面所有的规则都没匹配时,自然落到这个 REJECT 上。类似的FORWARD链也可以这么用:iptables -A FORWARD -j REJECT --reject-with icmp-host-prohibited
。
当然,更强的规则是将OUPUT
链也设置成DROP,这样一来情况就会复杂很多,如就是发送名解析请求,也要添加规则iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
。正是因为这样的太过麻烦,所以一般OUTPUT策略默认为ACCEPT。(安全性比较高的系统除外)
精彩评论