带iptables的外出MAC地址过滤器



我希望这里有人能帮我解决这个问题,因为这可能是一个非常简单的设置。

我用的是centos 8——禁用了防火墙,安装了iptables-services。

我有一个物理接口与几个qemu kvm客户机的桥接。除了我指定的mac地址外,我想阻止所有传出的mac地址(传入的mac地址很好),以便kvm客户端只有在拥有分配给他们的mac地址时才能访问网络。这样,来自另一个mac地址的数据包就不会超过这个物理网络接口。

我该怎么做呢?

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp35s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master bridge0 state UP group default qlen 1000
link/ether XX:XX:XX:XX:f9:9b brd ff:ff:ff:ff:ff:ff
3: bridge0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether XX:XX:XX:XX:f9:9b brd ff:ff:ff:ff:ff:ff
inet xxx.xxx.xxx.xxx/32 scope global noprefixroute bridge0
valid_lft forever preferred_lft forever
inet6 X::2/64 scope global noprefixroute
valid_lft forever preferred_lft forever
inet6 X:8fa/64 scope link noprefixroute
valid_lft forever preferred_lft forever

编辑:我已经试过了:iptables -A OUTPUT -m mac --mac-source 00:50:56:00:A5:8A -j ACCEPT但它给了我以下错误:iptables v1.8.4 (nf_tables): RULE_APPEND failed (Invalid argument): rule in chain OUTPUT

您可以对所有选定的kvms以及您的主机执行此操作

iptables -A OUTPUT -m mac——mac-source xx:xx:xx:xx:xx -j ACCEPT

iptables -A OUTPUT -m mac——mac-source yy:yy:yy:yy:yy -j ACCEPT

然后放下其他的

iptables -A OUTPUT -j DROP

所以我能够弄清楚这可能与iptables,但我发现关于这并不适用于OUTPUT链的一切。对于我来说,有一种更简单的方法,那就是在KVM.xml中对网卡使用nwfilter。

这是我添加的:

<filterref filter='clean-traffic'>
<parameter name='IP' value='XXX.XXX.XXX.XXX'/>
</filterref>

最新更新