为什么这些连接在 conntrack 下没有被归类为“已建立”?

为什么这些连接在 conntrack 下没有被归类为“已建立”?

我有以下规则iptables

-A OUTPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT

这样,未分类为已建立的传出连接将被记录。有时,防火墙出口日志会捕获此类数据包:

09:56:48 DST=a.b.167.208 TTL=64 SPT=80 DPT=25960 WINDOW=119 ACK URGP=0
09:48:48 DST=a.b.166.231 TTL=64 SPT=80 DPT=29861 WINDOW=119 ACK PSH URGP=0
09:29:57 DST=a.b.167.244 TTL=64 SPT=80 DPT=58244 WINDOW=119 ACK URGP=0

经过进一步检查,Web 服务器访问日志显示,之前有与上述 IP 地址 75-100 对应的传入连接。

为什么上述连接没有被归类为由 conntrack 模块建立的?怎样才能滤除噪音呢?

答案1

根据我的理解,TCP连接只进入ESTABLISHED状态已经ACK完成了,这些ACK包正是您在那里记录(和阻止)的内容。

http://www.iptables.info/en/connection-state.html#TCPCONNECTIONS

你有没有尝试过--ctstate ESTABLISHED,RELATED

关于仅“偶尔”记录,正如您所说的:dmesg/syslog 不会捕获所有数据包。如果收到太多类似消息,它们将被丢弃以避免日志泛滥。这是可配置的,但超出了这个问题的范围。

相关内容