Centos iptables开放53端口

Centos iptables开放53端口

我在 centos 机器上打开端口 53 进行 DNS 配置时遇到了问题。

这是我的 iptables 配置

-A INPUT -p udp -m udp --sport 53 -j ACCEPT
-A OUTPUT -p udp -m udp --dport 53 -j ACCEPT

当我对机器运行 nmap 扫描时,只显示端口 80 处于打开状态。我是否遗漏了什么?

编辑:

完整的 iptable

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]

-A INPUT -p udp -m state --state NEW,ESTABLISHED -m udp --dport 53 -j ACCEPT
-A INPUT -p udp -m udp --sport 53 -j ACCEPT
-A INPUT -p tcp -m state --state NEW --state NEW -m tcp --dport 80 -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
-A OUTPUT -p udp -m udp --dport 53 -j ACCEPT
COMMIT 

答案1

你的语义被颠倒了。

您发布的规则允许传出DNS 连接到远程 DNS 服务器,而不是传入与本地 DNS 服务器的连接。

要允许连接到本地 DNS 服务器,请反转 INPUT 和 OUTPUT 规则:

-A INPUT -p udp -m udp --dport 53 -j ACCEPT
-A OUTPUT -p udp -m udp --sport 53 -j ACCEPT

(并且请花几分钟时间修改您的防火墙,使其具有状态。)

答案2

使用-I而不是-A

由于您有一个 DNS 服务器正在监听,因此它将监听端口 53,因此输入规则应该是

-I INPUT -p udp -m udp --dport 53 -j ACCEPT

答案3

您确定 DNS 服务器正在运行吗?即使您打开了端口,服务也需要处于活动状态。您可以通过运行 netstat 命令来验证本地正在监听的内容。此外,您是否尝试过暂时完全关闭防火墙,只是为了看看会出现什么?

相关内容