Centos iptables 开放53端口

use*_*081 8 firewall iptables centos

我在 Centos 机器上打开端口 53 时遇到问题,用于 DNS 配置。

这是我的 iptables 配置

-A INPUT -p udp -m udp --sport 53 -j ACCEPT
-A OUTPUT -p udp -m udp --dport 53 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)

当我对机器运行 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 
Run Code Online (Sandbox Code Playgroud)

Mic*_*ton 12

你的语义被颠倒了。

您发布的规则允许到远程 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
Run Code Online (Sandbox Code Playgroud)

(并且请在某些时候花几分钟修改您的防火墙以使其具有状态。)

  • 如果进行 AFXR 或其他 DNS 传输,您可能还希望有选择地允许 TCP 连接。 (2认同)

use*_*517 3

使用-I而不是-A.

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

-I INPUT -p udp -m udp --dport 53 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)