我正在尝试学习 ufw,我想知道是否可以阻止与它建立的连接。
我已经使用 telnet 在我的两台计算机之间建立了连接,我正在尝试使用 ufw 来阻止它。
尝试了许多规则,但没有效果:
ufw deny in from IP to any
ufw deny out from IP to any
ufw deny in from any to IP
ufw deny out from any to IP
ufw deny port 23
Telnet 连接仍然有效。如果我关闭连接然后我尝试再次连接,ufw 正在正确阻止 telnet,但我想知道为什么我不能阻止已经建立的连接。
ufw 实现了一个有状态的防火墙,其中只有“打开”数据包会根据基于端口的规则进行检查,但连接的其余部分会立即被隐藏的“允许 conntrack 知道的数据包”规则接受,并且不需要通过你的规则集的其余部分。
(在 iptables 中,这将是
-m state --state ESTABLISHED
规则。)您可以使用该
conntrack
命令删除现有连接的状态条目:(理论上,'ufw deny'可以自动删除 conntrack 状态。但也许它故意不这样做,这样人们就不会在不小心阻塞 SSH 端口时将自己锁定在远程服务器之外。)