我想使用iptables
我的 Linux 路由器隔离家庭内联网上的主机。举例来说,我有一台主机,其 IP 地址为10.0.1.50
,我希望它能够与 Internet 的其余部分通信,但我不希望路由器允许它与 中的任何其他主机通信10.0.1.0/24
。但是,我希望能够仅在主机上未创建连接的情况下允许主机10.0.1.0/24
连接到10.0.1.50
端口。80
我这样做是为了防止10.0.1.50
受到损害,因此它无法与我的网络的其余部分通信。
答案1
你很可能做错了。您的路由器无法阻止10.0.1.50
与子网的其余部分通信10.0.1.0/24
,因为它们位于同一子网。从该子网中的另一台主机发出的数据包10.0.1.50
不会通过路由器,因此您无法过滤它。
您需要做的是设置一个单独的子网,例如192.168.0.0/24
并放入10.0.1.50
该子网中,例如使用新的 IP 192.168.0.50
。然后将该子网连接到路由器的单独接口,并将该接口配置为 IP,例如192.168.0.1
.然后您可以根据需要设置路由规则:
- 允许已建立的相关连接
- 允许
10.0.1.0/24
连接到互联网 - 允许
192.168.0.0/24
连接到互联网 10.0.1.0/24
允许从到 的连接192.168.0.50:80
- 否认其他一切
答案2
为此,您应该在第 3 层而不是第 4 层中禁止,或者如果您在第 4 层中这样做,则应该定义一个新的子网。