删除 iptables 链向前

删除 iptables 链向前

我创建了以下规则(仅适用于FORWARD):

iptables -P FORWARD DROP
iptables -A FORWARD -o lo -j ACCEPT
iptables -A FORWARD -s ##MYIPHERE## -j ACCEPT

然后我运行 iptables -L 并得到以下结果:

Chain FORWARD (policy DROP)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  ##MYREVERSEDNS##     anywhere
ACCEPT     all  --  localhost            anywhere

所以我可以看到默认策略是删除,但是为什么第一行是这样的:

ACCEPT     all  --  anywhere             anywhere

这是否意味着默认策略将被覆盖,并且允许转发来自任何地方的所有流量?我需要添加另一条规则吗?谢谢

答案1

这是因为iptables -L不包括所有细节。它只提供粗略概述。要获取更详细的列表,请使用详细开关:iptables -vL。它看起来像这样:

Chain FORWARD (policy ACCEPT 363K packets, 256M bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DOCKER     all  --  any    docker0  anywhere             anywhere            
    0     0 ACCEPT     all  --  any    docker0  anywhere             anywhere             ctstate RELATED,ESTABLISHED
    0     0 ACCEPT     all  --  docker0 !docker0  anywhere             anywhere            
    0     0 ACCEPT     all  --  docker0 docker0  anywhere             anywhere            

如您所见,接口名称(仅docker0在此示例中)是可见的。

如果您希望“代码”准确地重新创建规则,请使用以下iptables-save命令:

-A FORWARD -o docker0 -j DOCKER
-A FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i docker0 ! -o docker0 -j ACCEPT
-A FORWARD -i docker0 -o docker0 -j ACCEPT

相关内容