ufw allow 为什么不生效?

2018-09-12 12:29:34 +08:00
 baskice
这样设置的:
ufw default deny incoming
ufw default allow outgoing
ufw allow from 源 IP to any port 8080
ufw allow 22
ufw enable
像这样设置,但是只有允许 22 生效了。源 ip 机器程序访问 8080 还是会被挡下来。尝试了 ufw reset,ufw reload,重启服务,重启机器。都没有效果,还是会被挡下来。why ?求助

ufw 的日志像这样。
Sep 12 12:22:58 debian kernel: [ 447.198034] [UFW BLOCK] IN=eth0 OUT= MAC=一大堆 mac 地址 SRC=源 IP DST=本机 IP LEN=52 TOS=0x00 PREC=0x00 TTL=64 ID=55331 DF PROTO=TCP SPT=49008 DPT=8080 WINDOW=6377 RES=0x00 ACK FIN URGP=0
1929 次点击
所在节点    问与答
2 条回复
Hardrain
2018-09-12 13:28:37 +08:00
你设置了带 deny 的 rules 吗?
deny 要放在 allow 前面。
所以添加 deny rules 要用 ufw insert
baskice
2018-09-12 13:32:37 +08:00
最后发现原因了,ACK FIN 是关闭 tcp 连接后选择性由对方发来表收到 tcp 连接关闭信号的包。

由于本地链接已经被关闭,这个包会被网络过滤器挡下。并不影响程序运作。

linux 内核一度将已关闭链接缓存 120 秒来避免这种不认包的状况。不过后来又删掉了,于是开启包过滤时就会收到各种 ACK FIN 包被阻挡的 log,RST 也有几率出现。

这种 log 可以由 iptables 在 ufw 前先行设置为 invalid 丢弃不计入 log。因为太麻烦了我就不弄了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/488497

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX