我想阻止访问除我自己的 $DNS_IP1、$DNS_IP2 之外的任何 DNS 服务器(端口 53)。$DNS_IP1、$DNS_IP2 不属于我的 IP 范围,而是外部 IP。
答案1
这很简单;谷歌搜索就能找到答案。不过,我也会告诉你答案。
认识到 iptables 会沿着链向下查找直到找到匹配的规则,并且一旦找到匹配的规则(具有终止链的目标,大多数情况都是如此,这LOG
是一个值得注意的例外),就会停止查看链中的其他规则。因此,如果您的FORWARD
过滤器链(假设这是用于路由流量;如果它是用于服务器的输出流量,请使用OUTPUT
)具有默认的丢弃策略,则只需添加规则以接受流量(我将使用 192.0.2.1 和 192.0.2.2 作为您喜欢的两个 DNS 服务器):
iptables -t filter -A FORWARD -d 192.0.2.1 -p udp --dport 53 -j ACCEPT
iptables -t filter -A FORWARD -d 192.0.2.2 -p udp --dport 53 -j ACCEPT
如果您的默认策略是接受,那么您将需要这些规则之后的第三条规则(以便它不与符合前两个规则的数据包匹配):
iptables -t filter -A FORWARD -p udp --dport 53 -j DROP