如何只允许服务器访问DNS服务

如何只允许服务器访问DNS服务

我有一个 IP 为 10.0.0.1/24 的服务器,并且我有一个防火墙,它是 IP 为 10.0.0.2/24 的默​​认网关。我需要在防火墙上设置权限,只允许服务器访问dns服务。我必须使用 iptables。

答案1

如果您的防火墙 FORWARD 链默认执行 DROP,则这应该足够了:

iptables -A FORWARD -s 10.0.0.1 -p tcp --dport 53 -j ACCEPT
iptables -A FORWARD -s 10.0.0.1 -p udp --dport 53 -j ACCEPT

(DNS 同时使用端口 53 UDP 和 TCP)

例如,如果您还想指定 DNS 服务器 10.1.1.1:

iptables -A FORWARD -s 10.0.0.1 -d 10.1.1.1 -p tcp --dport 53 -j ACCEPT
iptables -A FORWARD -s 10.0.0.1 -d 10.1.1.1 -p udp --dport 53 -j ACCEPT

您还可以将 DNS 服务器配置为仅接受来自 IP 地址/网络的请求,需要在其配置文件中给出答案。

答案2

(假设正在使用绑定 DNS) - 为什么不让 DNS 服务/守护进程仅侦听 127.0.0.1。只需将其添加到绑定守护进程的选项中即可:

listen-on { 127.0.0.1; };

然后让服务器使用位于 127.0.0.1 的 DNS 服务器。无需防火墙规则! :)

相关内容