我在本地的192.168.1.0/24网络上使用openwrt路由器,在192.168.1.1,我想阻止任何与具有开放端口的IoT设备的连接,比如说192.168.1.12:5001。我不能访问设备的linux所以我不能在那里强制执行规则,
在没有任何复杂分段的情况下,路由器甚至有可能这样做吗?也许我需要特殊的路由器/交换机?
我在路由器上试过这些,但都没有用:
root@OpenWrt:~# iptables -I INPUT -p tcp --destination-port 5001 -j DROP
root@OpenWrt:~# iptables -I OUTPUT -p tcp --destination-port 5001 -j DROP
root@OpenWrt:~# iptables -I FORWARD -p tcp --destination-port 5001 -j DROP(我可以将任何数据包丢弃到端口5001,只是为了测试)
发布于 2020-03-02 21:40:31
您不能直接这样做,因为您的客户端的流量将直接进入局域网上的另一个设备,而不会对路由器造成干扰。
发布于 2020-03-02 22:15:57
因为它在同一个子网上。它不会通过路由器。
路由表会像路由本地人员一样(这通常是硬编码的)。然后(对于大多数设备)将其余的发送到默认路由器。
该装置将播放"arp:谁是192.168.1.12?“然后129.168.1.12回答"Arp:我是192.168.1.12“。任何设备听到这个消息都可以提取MAC地址,并将其放入自己的apt表中,然后直接向设备发送IP数据包。
因此,您必须建立两个子网,并有路由器之间的路由。它们可以位于同一个物理网络上,但是,如果您希望安全性有任何价值,那么您将需要将它们放在单独的物理网络上(否则,如果您可以控制网络上的任何机器,那么绕过安全性就很简单了。)
https://unix.stackexchange.com/questions/570793
复制相似问题