iptables(已建立,相关规则)

iptables(已建立,相关规则)

我想知道以下 iptables 规则到底起什么作用? 为什么需要它?

ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED 

答案1

ESTABLISTED 状态将允许所有属于现有连接的数据包通过。RELATED 状态允许建立与现有连接相关的新辅助连接。例如,这将允许 FTP 数据传输,其中控制连接在端口 21 上,数据端口由协议协商。

答案2

它比上面的一些评论所暗示的要复杂一些。

state ESTABLISHED确实意味着“一旦连接打开,让其余数据包通过”,但应该注意的是,这里的“连接”是由同步性定义的:在一个已知地址/端口对和另一个已知地址/端口对之间传输的数据包被定义为“已建立”。著名的三次 TCP 握手不属于其中。

state RELATED似乎许多人都盲目地使用这个功能,而实际上并不了解它的作用。它通常包括与现有连接(尝试)相关的 ICMP 流量,例如从防火墙返回的 ICMP-host-administratively-unreachable 数据包,该防火墙阻止了您向禁止框发出的连接请求。

但是还有一组内核模块,例如nf_conntrack_ftp,它们在加载时动态扩展流量的定义RELATED(特定的模块执行 ftp 控制通道流量的第 4 层检查,查找警告即将打开 DATA 通道的 DATA 语句,并在数据包到达时进行匹配)。

除非你知道你需要它,否则我建议不是允许RELATED一般流量,但将RELATED语句限制为您知道您想要的流量,例如-p icmp

相关内容