对 iptables -L 的不同输出感到困惑

对 iptables -L 的不同输出感到困惑

我继续关注随着我在服务器上打开越来越多的端口,教程在 ubuntu 12.04 上使用 bash shell。我通常这样打开端口

sudo iptables -A INPUT -p tcp --dport PortNumberToOpen -j ACCEPT

然后我使用这个规则来关闭剩余的流量

sudo iptables -P INPUT DROP

通常,如果我这样做,sudo iptables -L它会在输入末尾显示一条规则,如下所示

 DROP       all  --  anywhere             anywhere 

但这次我sudo iptables -P INPUT DROP; sudo iptables -L这样做时并没有显示这个 DROP 规则。我正在遵循完全相同的步骤。到底是怎么回事?

答案1

我严重怀疑sudo iptables -P INPUT DROP是否会产生最终的 DROP 规则。其实就是-P设置policy,在表头中找到policy:

sudo iptables -L
Chain INPUT (policy DROP)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination        

您可能所做的sudo iptables -A INPUT -j DROP确实产生了您所看到的效果:

➜  src  sudo iptables -A INPUT -j DROP
➜  src  sudo iptables -L
Chain INPUT (policy DROP)
target     prot opt source               destination         
DROP       all  --  anywhere             anywhere            

相关内容