![Shorewall - 按源 MAC 地址进行通配符过滤](https://linux22.com/image/711634/Shorewall%20-%20%E6%8C%89%E6%BA%90%20MAC%20%E5%9C%B0%E5%9D%80%E8%BF%9B%E8%A1%8C%E9%80%9A%E9%85%8D%E7%AC%A6%E8%BF%87%E6%BB%A4.png)
我目前有一台 Debian PC,它有两个网络接口,充当路由器/网关。
我有几个廉价的 IP 摄像头试图访问外部服务,大概是为了某种“云”功能。此功能无法禁用。
我想在 Shorewall 中添加规则,丢弃来自这些摄像头的出站数据包,以防止它们访问互联网。我过去曾使用过类似的方法来防止二手消费级 VOIP 设备下载不需要的配置文件。
为了实现这一点,我可以为每个摄像头添加按 MAC 地址或 IP 筛选的过滤器。这有点繁琐。例如
DROP local:~AA:BB:CC:11:22:33
DROP local:~AA:BB:CC:11:22:44
DROP local:~AA:BB:CC:11:22:55
etc..
我可以使用某种通配符吗?例如
DROP local:~AA:BB:CC:*
摄像机与其他几台设备共享一个子网,而仅仅为了应用防火墙规则而将它们移动到新子网是不可取的。
Shorewall 版本为 5.0.15.6,内核为 3.16.0-4-amd64
答案1
简短的回答是:不,你不能。
Shorewall 对接口名称(即使用“ppp+”;将匹配 ppp0、ppp1、ppp2 等)和端口名称(http://shorewall.net/manpages/shorewall-interfaces.html),但不适用于 mac 地址或 ip 地址。
我也做了一个快速测试,只得到“错误:无效的 MAC 地址……”。