![如何使用防火墙根据 MAC 地址阻止内部主机访问互联网](https://linux22.com/image/771561/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%E9%98%B2%E7%81%AB%E5%A2%99%E6%A0%B9%E6%8D%AE%20MA%E2%80%8B%E2%80%8BC%20%E5%9C%B0%E5%9D%80%E9%98%BB%E6%AD%A2%E5%86%85%E9%83%A8%E4%B8%BB%E6%9C%BA%E8%AE%BF%E9%97%AE%E4%BA%92%E8%81%94%E7%BD%91.png)
我正在尝试阻止网络上的某些主机外出/打电话回家。
所以我有 2 个区域。
[root@eagle ~]# firewall-cmd --get-active-zones
external
interfaces: enp2s0
internal
interfaces: eno1
伪装成external
[root@eagle ~]# firewall-cmd --zone=internal --query-masquerade
no
[root@eagle ~]# firewall-cmd --zone=external --query-masquerade
yes
我有一条丰富的规则来丢弃我想要的 MAC 地址的数据
[root@eagle ~]# firewall-cmd --zone=external --list-rich-rules
rule source mac="40:16:3B:63:72:E0" drop
但它似乎不起作用。我检查的明显事项是将它们添加为永久规则并确保我重新加载了规则。
任何帮助表示感谢
答案1
您正在为外部区域添加 MAC 规则,即enp2s0
。通过该接口发出的以太网帧的enp2s0
源 MAC 地址为 的 MAC 地址。
如果要匹配内网设备,则需要在internal
使用接口的区域中添加MAC匹配规则eno1
,并在接收客户端发送的帧时将客户端MAC地址视为源MAC地址。
这意味着您还需要在规则中添加目标 IP 地址匹配。