我有一个网络,其中有一个运行 dd-wrt 的中央路由器。它连接着几个终端用户设备。但是,一个端口是为运行 DHCP 服务器的特殊设备保留的。我称它为特殊设备,因为我无法关闭它的 DHCP。但实际上,我确实希望我的 dd-wrt 路由器提供 DHCP。
我该如何设置规则(我假设它必须基于 iptables?)来阻止往返于该设备的所有 DHCP 流量?
请注意,我希望该设备仍然位于同一子网,并且可以通过所有其他设备访问以获取不同的服务。
答案1
事实上,DHCP 使用 UDP 端口 67 作为服务器,使用 UDP 端口 68 作为客户端,因此您可以制定如下 IP 表规则:
iptables -A FORWARD -p udp -d that-one-device-ip-address --dport 67 -j DROP
iptables -A FORWARD -p udp -s that-one-device-ip-address --sport 68 -j DROP
答案2
要通过 MAC 地址进行阻止,请将其替换-s $ip_address
为-m mac --mac-source $mac_address
。没有并行--mac-destination
命令(在某些情况下,您可以绕过它;请参阅https://superuser.com/q/977997/247806)。
但 iptables 不会阻止 DHCP 流量(请参阅https://unix.stackexchange.com/q/447440/103025)。