混淆 INPUT、OUTPUT iptables 规则

混淆 INPUT、OUTPUT iptables 规则

以下是我在 Ubuntu 中的 iptables 规则。

╰─$ sudo iptables -S              
-P INPUT ACCEPT
-P FORWARD DROP
-P OUTPUT ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -j DROP

仅对于 INPUT,我已指定规则,并且所有传出流量均采用 ACCEPT 策略。但我无法浏览互联网或 ping 任何互联网域。

但是,如果我删除 INPUT 链中的最后一条规则,-A INPUT -j DROP那么我就可以浏览和 ping。

浏览互联网到底需要打开什么链?为什么 INPUT 链策略会干扰传出流量。我很困惑。请解释一下。

答案1

否定-A INPUT -j DROP你的-P INPUT ACCEPT-j是跳转选项,据我所知,这意味着如果数据包与此规则匹配,防火墙将忽略有关该数据包的所有其他规则,并按照此行所述对数据包进行操作,在本例中为DROP

这允许您发送 ICMP 信号或发出 HTTP 请求,但它会丢弃您收到的所有响应。如果您尝试过滤某些输入,则需要为规则添加更多具体性,否则它将继续丢弃您收到的所有传出请求。

这是我最喜欢的 IPTables 教程。它有几个过滤某些类型输入的示例,还解释了NEWESTABLISHED流量之间的区别。

http://www.thegeekstuff.com/2011/06/iptables-rules-examples/

希望这可以帮助。

相关内容