IPTables 问题允许查询 DNS 服务器

IPTables 问题允许查询 DNS 服务器

我被分配了一项任务,为具有委派 DNS 区域的子域创建 DNS 服务器。我确实测试了区域文件并使用 dig 工具,我可以确认它在调用 localhost 和服务器 IP 时正常工作,但是当通过全局服务器使用 dig 时,它无法解析并超时。我的主管告诉我问题似乎出在添加的 iptables 规则上,但我不知道可能是什么。以下屏幕截图显示了访问时传入的数据包(出于安全原因,我隐藏了 IP,抱歉):https://prnt.sc/f6sJxmTDirsP

下面的脚本行是我当前正在运行的 iptables 规则(注意端口 53):

*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [121:27920]

-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT

-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT

-A INPUT -p udp --sport 53 -j ACCEPT

-A OUTPUT -p udp --dport 53 -j ACCEPT

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

-A INPUT -p icmp -j ACCEPT

-A INPUT -i lo -j ACCEPT

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

-A INPUT -j REJECT --reject-with icmp-host-prohibited

-A FORWARD -j REJECT --reject-with icmp-host-prohibited

COMMIT

答案1

以下行:

-A INPUT -p udp --sport 53 -j ACCEPT

应该:

-A INPUT -p udp --dport 53 -j ACCEPT

您还缺少允许 DNS 服务器传入 TCP 连接的规则。

此规则:

-A OUTPUT -p udp --dport 53 -j ACCEPT

是不必要的,因为它属于 OUTPUT 策略的涵盖范围。

相关内容