![使用 iptables 或 ebtables 阻止 Linux 桥接流量(仅单向)](https://linux22.com/image/702103/%E4%BD%BF%E7%94%A8%20iptables%20%E6%88%96%20ebtables%20%E9%98%BB%E6%AD%A2%20Linux%20%E6%A1%A5%E6%8E%A5%E6%B5%81%E9%87%8F%EF%BC%88%E4%BB%85%E5%8D%95%E5%90%91%EF%BC%89.png)
我正在使用 openwrt 路由器。它有一个桥接器 br-lan,wlan0、wlan1 连接到此桥接器。eth0 充当 WAN 接口。当数据包来自 wlan0 或 wlan1 时,它会从桥接器发出,进行 NAT 并通过 eth0 发出到互联网,回复来自 eth0,再次进行 NAT 并进入 br-lan,然后根据原始数据包的来源通过 wlan0 或 wlan1 发出。
wlan0/wlan1 --> br-lan --> NAT --> eth0 --> internet
互联网--> unNAT--> br-lan--> wlan0/wlan1
现在我有一个应用程序通过原始套接字监听 br-lan 接口,我想对从 br-lan 到 wlan0/wlan1 的数据包进行一些处理。因此,我想停止/阻止从 br-lan 到 wlan0/wlan1 的所有数据包,因为我将在我的应用程序中将其转发到 wlan0/wlan1。如何使用 iptables 或 ebtables 来实现这一点?
我尝试了下面这样的一些规则,但是没有效果,所有流量都正常流动 -
ebtables -I FORWARD -i br-lan -o wlan1 -j DROP
ebtables -I OUTPUT -o br-lan -j DROP
iptables -I FORWARD -i br-lan -o wlan1 -j DROP
iptables -I OUTPUT -o br-lan -j DROP
答案1
所以我看了看这一页他们所做的大多数丢包操作都涉及链式操作。所以我想知道你是否先尝试过制作链式操作?例如
iptables -N zone_wan_block
iptables -I FORWARD -i br-lan -o wlan1 -j zone_wan_block
iptables -A zone_wan_block -j DROP
(我想对此发表评论,因为我自己在这方面缺乏经验(并且没有时间进行测试),但我没有足够的代表......)
此外,如果需要的话,使用OUTPUT。
希望这能有所帮助,但我还是缺乏经验。祝您有美好的一天!