考虑这两组规则:
套餐A
-A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
-A INPUT -j REJECT
-A OUTPUT -j ACCEPT
Run Code Online (Sandbox Code Playgroud)
B组
-A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
-A INPUT -j REJECT
-A OUTPUT -m conntrack --ctstate NEW,ESTABLISHED,RELATED -j ACCEPT
Run Code Online (Sandbox Code Playgroud)
以前我的印象是两者在功能上是相同的,但最近有人对我说:
要建立一个ESTABLISHED,RELATED连接,您必须有一个规则,将连接添加到该规则查看的数据库中。这是通过NEW规则完成的。一旦连接被接受,它就会被放入数据库中,因此ESTABLISHED,RELATED规则可以与之匹配。如果没有NEW规则,db 中没有任何内容,因此ESTABLISHED,RELATED将永远不会匹配任何内容。
所以我承认我对内部的iptables
运作方式有点困惑,究竟是如何iptables
根据数据包状态标记数据包的?