iptables:FORWARD 规则未生效

iptables:FORWARD 规则未生效

我有一台运行 iptables 的 Linux 机器。流量通过它从 wlan0 进入,从 wlan1 出去。我想只允许特定机器通过。我尝试通过 MAC,失败了,然后我尝试通过 IP,令我惊讶的是,它也失败了。

对于这两种情况,我都将 FORWARD 策略设置为 DROP

$ iptables -P FORWARD DROP

然后我就这么做了

$ iptables -A FORWARD -i wlan0 -m mac --mac-source 76:AB:BF:80:4E:B3 -j ACCEPT

当它不起作用时我使用以下命令激活日志:

$ iptables -I FORWARD -i wlan0 -j LOG

kern.log 显示我的源 MAC 地址是 linux wlan0 的 MAC。然后我尝试通过 IP 地址:

$ iptables -A FORWARD -s 192.168.1.10 -j ACCEPT

它也失败了。然后我尝试将策略保留为接受,并在上面的规则之后添加以下内容以删除所有内容:

$ iptables -A FORWARD -j DROP 

但它仍然不起作用,因为我的客户端丢包了。它只在策略为“接受”时才起作用(但那时没有过滤)。这让我相信规则与流量不匹配。我做错了什么?

编辑:

我的完整 iptables 链:

$ iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy DROP)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere             MAC 76:AB:BF:80:4E:B3
ACCEPT     all  --  192.168.1.10         anywhere           

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination   

相关内容