我使用一个小型 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?有更好的方法吗?