iptables 规则用于阻止互联网但允许设备使用本地网络

iptables 规则用于阻止互联网但允许设备使用本地网络

我正在尝试阻止网络上某些设备访问互联网。DD-WRT 有办法做到这一点,但仅限于 WAN 上的设备。该设备连接到 LAN。阻止互联网但允许本地网络的 iptables 规则是什么。类似这样的吗?

iptables FORWARD ????? -j DROP

答案1

回答标题中的问题,你可以通过接口阻止转发。如果你的内部接口是eth1,而你的外部接口是eth0,请尝试

iptables -A FORWARD -i eth1 -o eth0 -j REJECT

将规则放在 FORWARD 链中的正确位置取决于您。对于内部客户端,我倾向于选择 REJECT 而不是 DROP,因为它会给他们一个实际的响应,并且明确表示他们不会成功。

处理问题主体中的问题(其中说某些设备,而不仅仅是设备),正如 Ron Maupin 指出的那样,没有简单的方法可以做到这一点,因为可靠地识别网络上的设备需要一个中间步骤。

假设你的开关设备不支持802.1x,运行内部 VPN 可让您向合格设备提供凭证,它们可以使用这些凭证来保护其网络出口。我为此使用 OpenVPN。该问题已得到详细解决在我的技术说明中,虽然是在流量整形和豁免的背景下,而不是流量禁止和豁免,但后者更简单。概括地说,你在防火墙设备上设置一个 OpenVPN 服务器,向合格的设备颁发密钥和证书,然后允许路由器上的流量在 OpenVPN 纯文本接口和互联网之间流动,例如

iptables -A FORWARD -i tun+ -o eth0 -j ACCEPT

不要忘记也允许回程流量。

答案2

回答这个具体问题:“如何阻止 LAN 上的特定 MAC 地址访问互联网,但仍能通过 LAN 本身保持其可访问”:

iptables -I FORWARD 1 -m mac --mac-source be:be:fe:fe:ca:12 -o eth0 -j REJECT

(假设 eth0 是您的互联网)

这会将规则插入到 FORWARD 链的顶部,这对我有用。

我使用它来阻止我的打印机打电话回家,而无需牺牲 wifi 打印。

来源:iptables,允许从某些 MAC 地址进行访问

重要警告:

但这只适用于同一网络,因为 MAC 寻址是链路层特定的,在使用路由时不会被转发。因此,只要设备位于需要路由的不同网络上,这种方法就行不通。

相关内容