阻止所有传入的 DNS 请求,除了来自 IP x、y、

ale*_*ale 6 domain-name-system iptables tcp udp

我想阻止我的两个 DNS 服务器上的所有传入请求,除了某些 IP 地址,例如 1.2.3.4 的 IP 将被允许发出请求,但其他人不会。

你如何用 iptables 做到这一点?

非常感谢。

Kyl*_*ith 11

这对于 iptables 来说非常简单:

我会假设你的 INPUT 链最后没有默认的 DROP 规则,或者你必须解决这个问题:

# Allow DNS (53) from <source IP>
iptables -A INPUT -p udp --dport 53 -s <source IP> -j ACCEPT
iptables -A INPUT -p tcp --dport 53 -s <source IP> -j ACCEPT

# Deny all other DNS requests
iptables -A INPUT -p udp --dport 53 -j DROP
iptables -A INPUT -p tcp --dport 53 -j DROP
Run Code Online (Sandbox Code Playgroud)

如果您有默认的 DROP 策略,只需删除两个底部规则即可。如果您的链底部有默认的 DROP 规则,则必须在-I rulenum该规则上方插入 ( ) 这些规则。

  • 看来我错了!感谢您指出这一点,@gparent。DNS 对 TCP 进行“重新协商”以获取大量响应。 (4认同)
  • 编辑您的答案以添加 TCP 端口,待审核。 (2认同)
  • 已批准,但我想仔细检查一下。我相信 TCP 仅用于 IXFR/AXFR 传输吗? (2认同)