尽管以其他方式列出,防火墙仍然阻止端口 53?

Tom*_*Tom 8 domain-name-system firewall iptables

我有 3 个节点,其 iptables 规则几乎与从 bash 脚本加载的规则相同,但一个特定节点尽管列出它正在接受端口 53 上的流量,但仍阻止了它:

$ iptables --list -v

Chain INPUT(policy DROP 8886个数据包,657K字节)
 pkts 字节目标 prot 选择退出源目标         
    0 0 ACCEPT all -- 任何地方的任何地方            
    2 122 ACCEPT icmp -- 任何地方的任何地方 icmp echo-r​​equest 
20738 5600K 全部接受——任何任何地方状态相关,已建立 
    0 0 接受 tcp -- eth1 任何地方 node1.com 多端口 dports http,smtp 
    0 0 接受 udp -- eth1 任何地方 ns.node1.com udp dpt:domain 
    0 0 接受 tcp -- eth1 任何地方 ns.node1.com tcp dpt:domain 
    0 0 ACCEPT all -- eth0 any node2.backend 任何地方            
   21 1260 ACCEPT all -- eth0 any node3.backend 任何地方            
    0 0 ACCEPT all -- eth0 any node4.backend 任何地方            

Chain FORWARD(策略 DROP 0 数据包,0 字节)
 pkts 字节目标 prot 选择退出源目标         

Chain OUTPUT(策略接受15804个数据包,26M字节)
 pkts 字节目标 prot 选择退出源目标

nmap -sV -p 53 ns.node1.com // 来自远程服务器

在 2011-02-24 11:44 EST 开始 Nmap 4.11 (http://www.insecure.org/nmap/)
ns.node1.com (1.2.3.4) 上有趣的端口:
港口国服务版本
53/tcp 过滤域

Nmap 完成:在 0.336 秒内扫描了 1 个 IP 地址(1 个主机启动)

有任何想法吗?

谢谢

Ste*_*day 3

我注意到零个数据包实际上已达到您的iptablesDNS 接受规则。我认为您的规则可能iptables指定了不一致的条件组合,永远不会匹配传入的 DNS 查询。

在您的情况下,您的 DNS ACCEPT 规则指定传入接口必须为eth1,并且目标 IP 地址必须解析为ns.node1.com。您应该检查传入的 DNS 查询是否ns.node1.com可以通过网络接口到达eth1

另一种可能性是您的测试客户端和服务器之间有另一个数据包过滤器正在阻止 DNS 数据包。