iptables [-P {chain} {policy}] 该命令设置链的默认目标,即策略。所有与链中任何规则都不匹配的信息包都将被强制使用此链的策略
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
如上面例子,如果默认策略是ACCEPT,则表示在所有规则都不匹配时,默认接收对应的数据包。因此,在添加规则时,需要注意规则的顺序。
-A INPUT -s x.x.x.x/24 -i eth0 -p tcp -m multiport --dports port1,port2 -j ACCEPT
-A INPUT -i eth0 -p tcp -m multiport --dports port1,port2 -j REJECT --reject-with icmp-port-unreachable
ACCEPT一定要在DROP REJECT等前面,才能通过iptables。如果新的规则加在DROP规则的后面,就起不到作用。
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
如果默认策略是DROP,则表示所有规则都不匹配时,则丢弃对应的数据包。这样的话,就可以在规则中,只添加允许的服务通过iptables,以白名单的形式,如果没有在列表的请求则默认丢弃。
对此需要注意:
当使用iptables -F 时,会清掉所有配置的白名单。然后,所有数据包都会被丢弃。
对服务器进行远程iptables配置时,一定要注意对应的关系。为防止配置错误,可在本地电脑进行测试。