除了“--sync”之外,使用“--ctstate NEW”来匹配新的 TCP 连接的优点

除了“--sync”之外,使用“--ctstate NEW”来匹配新的 TCP 连接的优点

在 iptables 上下文中,要匹配新的 TCP 连接,可以使用:

-A INPUT -p tcp --syn -m conntrack --ctstate NEW -j ACCEPT

但是,--ctstate NEW只要--synflag已经存在,还有必要吗?换句话说,--syn根据定义,数据包不是总是新的吗?因此,状态检查是多余的,或者这样做有什么好处吗?数据包可以--syn不是新的吗?

我读过很多例子,有时,状态检查被删除,但在其他(大多数)文本中它仍然存在。另外,我发现了这些相关问题,但无法找出我的具体问题的准确答案:

使用“--syn”匹配新 TCP 连接的优点

https://serverfault.com/q/338553

多谢。

答案1

我总是发现--syn--ctstate NEW都是多余的,因为我将-m state --state INVALID -j DROP所有相关链作为第一条规则。

想法是也许您想成为一个纯粹主义者并严格遵循 TCP/IP 堆栈,这意味着必须只有一个新连接--syn,即您不能在已建立的连接内发送 SYN 数据包,因为要终止它您必须使用FIN

相关内容