![按 IP 地址过滤桥接数据包](https://linux22.com/image/73767/%E6%8C%89%20IP%20%E5%9C%B0%E5%9D%80%E8%BF%87%E6%BB%A4%E6%A1%A5%E6%8E%A5%E6%95%B0%E6%8D%AE%E5%8C%85.png)
我使用一个小型 Ubuntu 12.04 盒子作为 Wi-Fi 接入点。该盒子有两个桥接在一起的接口,如下所示:
brctl addbr br0
brctl stp br0 off
brctl addif br0 wlan0
brctl addif br0 eth0
一切都运转良好。但是,我需要根据源和目标 IP 地址过滤(并丢弃)数据包。根据这个页面:
http://ebtables.netfilter.org/br_fw_ia/br_fw_ia.html#section5
桥接数据包确实通过 IP 表链。但是当我添加规则时,它似乎不起作用。例如:
iptables -I INPUT -s 192.168.1.23 -d 216.58.216.14 -j REJECT
我已经在 INPUT、OUTPUT 和 FORWARD 链上尝试过此操作。如果可能的话,我还尝试过 --in-interface 和 --out-interface 。在这些情况下,我指定了桥接端口(wlan0 和 eth0)而不是 br0。
内核确实启用了 BRIDGE、NETFILTER 和 MATCH_PHYSDEV(作为模块支持)。
是否可以以这种方式使用 iptables?有更好的方法吗?