我在另一个 SE 论坛上发布了同样的问题,后来我觉得考虑到我正在处理的 Linux 发行版,这个论坛更合适。
对 netfilter 完全陌生,目前正在运行一个使用三个接口 eth0/eth1/eth2 的应用程序,我的应用程序将在两台服务器上运行,它们都可以通过自己的接口(eth0/eth1/eth2)在它们之间进行通信
在 ubuntu 18.04(内核版本 4.*)中,我只是使用 iptables 命令来中断它们之间的通信。
在 22.04(内核版本 6.2.*)中,我使用相同的 iptable 命令来中断两个服务器之间的通信,但事情并没有按预期工作(我的应用程序代码保持不变) - 我的应用程序具有报告邻居服务器是否可达的机制 - 在应用了 iptables 规则的 22.04 中,它仍然报告另一台服务器可达(在 18.04 中并非如此)。
我发现在如何在两个内核版本之间过滤网络流量方面已经发生了很多变化(最近一个版本中有更多工具)。
我删除了 ufw 只是为了避免与 nftables 冲突,一个观察是,当我应用规则时,我的应用程序短暂地报告邻居服务器不可访问,然后突然间它会变为可访问,有些东西正在覆盖规则,我不确定。
现在我在这里寻求帮助,看看我错过了什么......
-A INPUT -s x.x.x.x/32 -d y.y.y.y/32 -i eth2 -j DROP
-A INPUT -s x.x.x.y/32 -d y.y.y.x/32 -i eth1 -j DROP
-A INPUT -s x.x.y.y/32 -d y.y.x.x/32 -i eth0 -j DROP
-A OUTPUT -s y.y.y.y/32 -d x.x.x.x/32 -o eth2 -j DROP
-A OUTPUT -s y.y.y.x/32 -d x.x.x.y/32 -o eth1 -j DROP
-A OUTPUT -s y.y.x.x/32 -d x.x.y.y/32 -o eth0 -j DROP
注意:我的所有规则都添加到链中,以确保其优先于其他任何规则
Chain INPUT (policy DROP)
target prot opt source destination
DROP all -- xxxx yyyy
DROP all -- zzzz AAAA
DROP all -- BBBB CCCC