这是一个创建于 2229 天前的主题,其中的信息可能已经有所发展或是发生改变。
这样设置的:
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
2 条回复 • 2018-09-12 13:32:37 +08:00
|
|
1
Hardrain 2018-09-12 13:28:37 +08:00
你设置了带 deny 的 rules 吗? deny 要放在 allow 前面。 所以添加 deny rules 要用 ufw insert
|
|
|
2
baskice 2018-09-12 13:32:37 +08:00
最后发现原因了,ACK FIN 是关闭 tcp 连接后选择性由对方发来表收到 tcp 连接关闭信号的包。
由于本地链接已经被关闭,这个包会被网络过滤器挡下。并不影响程序运作。
linux 内核一度将已关闭链接缓存 120 秒来避免这种不认包的状况。不过后来又删掉了,于是开启包过滤时就会收到各种 ACK FIN 包被阻挡的 log,RST 也有几率出现。
这种 log 可以由 iptables 在 ufw 前先行设置为 invalid 丢弃不计入 log。因为太麻烦了我就不弄了。
|