iptables 阻止访问端口 53

-5 domain-name-system iptables block

我想阻止访问除我自己的 $DNS_IP1、$DNS_IP2 之外的任何 DNS 服务器(端口 53)。$DNS_IP1、$DNS_IP2 不是我的 IP 范围的一部分,而是 IP。

Fal*_*mot 6

这是微不足道的;谷歌搜索会给你答案。不过,我也会给你的。

认识到 iptables 会沿着链向下运行,直到找到匹配的规则,一旦找到匹配的规则(它有一个终止链的目标,大多数情况下,这LOG是一个值得注意的例外),就停止查看链中的其他规则。因此,如果您的FORWARD过滤器链(假设这是用于路由流量;如果它用于来自服务器使用的输出流量OUTPUT)具有丢弃的默认策略,只需添加规则以接受流量(我将使用 192.0.2.1 和 192.0.0.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
Run Code Online (Sandbox Code Playgroud)

如果你的默认策略是接受,你将需要在这些之后的第三条规则(这样它就不会被匹配前两条规则的数据包匹配):

iptables -t filter -A FORWARD -p udp --dport 53 -j DROP
Run Code Online (Sandbox Code Playgroud)

  • Falcon 的观点很好,但被误解了很多,但我应该补充一点,iptables 是在第一次**决定性**比赛获胜的基础上工作的;匹配任何给定数据包*并具有处理数据包*的目标的第一个规则终止对该数据包的所有进一步处理。如果匹配规则的目标不是决定性的(例如,`-j LOG`,或根本没有目标),则继续处理该数据包。 (2认同)