我在我的Linux路由器上使用MAC地址过滤。 这是我所做的:
iptables -A INPUT -i eth5 -m mac --mac-source 00:07:e9:84:2b:99 -j RETURN #User: Someuser iptables -A INPUT -i eth5 -j DROP
但是,iptables规则列表是巨大的,超过400个条目。 最近我读到了在这里使用iptables的Ipset的优点。 但是我没有发现任何有关MAC过滤的做法。 那么如何使用Ipset进行MAC过滤,以减小Iptables规则表的大小。
基本上这样的东西,但你必须关联一个IP与MAC,纯MAC集似乎并不存在:
# ipset --create test macipmap --network 10.0.0.0/16 # ipset --add test 10.0.0.1,00:11:22:33:44:55 # iptables -A INPUT -i eth5 -m set --match-set test src -j ACCEPT
在这里,你看到了映射的内容和引用这个集合的iptables规则的引用计数器:
# ipset -L test Name: test Type: macipmap References: 1 Header: from: 10.0.0.0 to: 10.0.255.255 Members: 10.0.0.1,00:11:22:33:44:55
有一些事情要考虑: