设置:
Ubuntu 20.04 位于具有 5 个物理以太网端口(我们称其为 eth1 - eth5)的盒子上。
我已使用 brctl 将它们全部连接到网桥(“br0”),并且它们都可以互相 ping 通。
我正在尝试做的事情:允许 eth2 - eth5 继续彼此自由聊天,同时限制可以通过 eth1 进入的内容。(最终 eth1 将成为特定入站流量的“外部连接”,而其他接口可以自由通信。)
iptables -A FORWARD -j DROP
期望:每个人都会失明。效果很好。桥接器使用 iptables 中的规则。测试成功,撤消该操作。
iptables -F
iptables -A FORWARD -i eth1 -j DROP
Run Code Online (Sandbox Code Playgroud)
预期:eth1 失明,但其他一切都很好。现实:什么也没有发生。我仔细检查了 iptables -L,其中唯一的东西是 Chain FORWARD 下的一个“DROP all - Anywhere”。
iptables -F
iptables -A FORWARD -i br0 -j DROP
Run Code Online (Sandbox Code Playgroud)
这似乎有影响。连接的笔记本电脑仍然可以 ping 网桥本身,但无法相互 ping 通。
为什么当我删除特定接口时它不起作用?
我也愿意接受诸如“你以完全错误的方式处理这件事”之类的建议。另请注意:我试图避免任何类型的 IP 过滤。我想按接口(物理以太网端口)进行过滤,而不是按插入其中的 IP 地址进行过滤。