如何使用 iptables 阻止除网关之外的整个子网?

如何使用 iptables 阻止除网关之外的整个子网?

使用 iptables,如何删除我所连接的整个子网(网关除外),同时仍允许我保留与它的连接?

我正在寻找两个 iptables 规则,一个用于传入,另一个用于传出。

例如,假设我想连接到网关 10.0.0.1,使用一个 IP.159我想阻止其他所有内容,并且需要保留连接,DNS 设置为网关 10.0.0.1。

答案1

当检查 iptables 规则时,它们按照所有规则中输入的规则的顺序进行。因此,我认为您应该首先接受来自/到 10.0.0.1 的流量,然后拒绝来自该子网的所有其他流量。当您有 10.0.0.1 的流量时,第一条规则将接受该流量,第二条规则将拒绝其他所有流量。所以,我会写这样的东西:

iptables -t INPUT -s 10.0.0.1 -j ACCEPT
iptables -t INPUT -s 10.0.0.0/8 -J REJECT

iptables -t OUTPUT -d 10.0.0.1 -j ACCEPT
iptables -t OUTPUT -d 10.0.0.0/8 -J REJECT

这只是对其他规则的补充,这些规则应该已经就位。我假设您使用 255.0.0.0,因为这是 10.XXX 网络的默认值。如果没有,请使用另一个网络掩码。我也不确定仅指定源 (-s) 和目标 (-d) 是否足够。也许您需要添加网络接口(-i)、协议(-p)等。

相关内容