Ubuntu UFW 即使已启用也会阻止端口

Ubuntu UFW 即使已启用也会阻止端口

我在 Ubuntu 16.04.2 LTS 上运行基于 NGINX 的负载均衡器。

我已经使用 UFW 配置了防火墙。

ufw allow to X.X.X.X port 6633 proto tcp 
ufw allow to X.X.X.X port 80 proto tcp
ufw allow to X.X.X.X port 443 proto tcp

港口是可以访问的来自世界。

这是我的 /var/log/syslog 中的一行:

May 11 06:55:26 FELB08 kernel: [735361.703709] [UFW BLOCK] IN=eth0 OUT= MAC=XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX SRC=X.X.X.X DST=X.X.X.X LEN=40 TOS=0x08 PREC=0x20 TTL=52 ID=51446 DF PROTO=TCP SPT=2022 DPT=80 WINDOW=4096 RES=0x00 ACK RST URGP=0
May 11 07:34:53 FELB08 kernel: [737729.068015] [UFW BLOCK] IN=eth0 OUT= MAC=XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX SRC=X.X.X.X DST=X.X.X.X LEN=40 TOS=0x08 PREC=0x20 TTL=52 ID=54132 DF PROTO=TCP SPT=1722 DPT=80 WINDOW=4096 RES=0x00 ACK RST URGP=0

我的问题是,为什么我会在系统日志中看到来自 UFW 的有关端口被阻止的条目,即使端口是开放的并且正在运行?

我认为这可能是某种连接速率限制,以防止 DDOS 或类似情况,但没有设置限制。

我错过了什么?

我看到这个问题已经以几种不同的形式被问过,但从未被标记为已回答,所以我来试试运气吧...

谢谢,Tal

答案1

请务必注意示例系统日志行中的 TCP 标志“ACK RST”。

还需要知道的是,对于 TCP 连接,Linux 倾向于使用“半双工”关闭序列,其中会话的任何一方都可以通过单次双向 FIN-ACK 握手来启动连接终止,而不是完整的 4 次 FIN-ACK 握手。(尽管在这种情况下它似乎是一个重置(RST)数据包)。

被阻止的数据包可能是由于 TCP 会话结束时的一些额外数据包造成的,此时连接跟踪表已经忘记了该会话,因此它们被视为错误形成的 NEW 数据包。无需担心,实际的 TCP 会话可能运行正常。

相关内容