Bind 仅接受本地连接

Bind 仅接受本地连接

我正在尝试修复 CentOS 服务器上仅接受来自本地主机的连接的 Bind(命名)。

我的服务器的本地 IP 是 192.168.2.2,如果我在安装了 named 的同一台服务器上运行 dig,它就可以正常工作。但在 IP 为 192.168.2.22 的备份服务器上执行 dig 则不起作用。

dig @192.168.2.2 www.mydomain.com # works locally but not on backup server

两台服务器都连接到同一个交换机,因此两者之间没有限制。直到昨天,当 USB 密钥连接到服务器并使用 yum 安装了两个模块时,这种情况才得以解决:libmcrypt-2.5.8-4.el5.centos.x86_64 和 php-mcrypt-5.1.6-15.el5.centos.1.x86_64。在 /var/log/messages 中,我看到了一些我不熟悉的日志:

Mar 21 18:34:06 centos hald: mounted /dev/sdc1 on behalf of uid 0
Mar 21 18:38:55 centos kernel: ip_tables: (C) 2000-2006 Netfilter Core Team
Mar 21 18:38:55 centos kernel: Netfilter messages via NETLINK v0.30.
Mar 21 18:38:55 centos kernel: ip_conntrack version 2.4 (8192 buckets, 65536 max) - 304 bytes per conntrack
Mar 21 18:38:55 centos kernel: ip6_tables: (C) 2000-2006 Netfilter Core Team
Mar 21 18:38:55 centos kernel: ip6_tables: (C) 2000-2006 Netfilter Core Team
Mar 21 18:43:08 centos kernel: Removing netfilter NETLINK layer.
Mar 21 18:43:08 centos kernel: ip_tables: (C) 2000-2006 Netfilter Core Team

我启用了 Bind 中的调试日志记录,但是当我尝试从备份服务器查询它时没有连接迹象。

这是 netstat -a 输出:

tcp        0      0 192.168.2.2:53              0.0.0.0:*                   LISTEN
tcp        0      0 127.0.0.1:53                0.0.0.0:*                   LISTEN
udp        0      0 0.0.0.0:53                  0.0.0.0:*
udp        0      0 192.168.2.2:53              0.0.0.0:*
udp        0      0 127.0.0.1:53                0.0.0.0:*

以及named.conf的一部分

options {
    directory "/var/named";
    query-source address * port 53;
};

controls {
    inet * allow { localhost; } keys { rndckey; };
};

任何帮助,将不胜感激。

答案1

您有某个程序正在监听 192.168.2.2 的 UDP 端口 53。请检查您是否允许通过防火墙对其进行访问。

iptables -L INPUT -v -n | grep 53

或 iptables -L RH-Firewall-1 -v -n | grep 53

将产生类似这样的输出

 138K   15M ACCEPT   udp  --  *    *     0.0.0.0/0     0.0.0.0/0       udp dpt:53
  265 13572 ACCEPT   tcp  --  *    *     0.0.0.0/0     0.0.0.0/0       tcp dpt:53

如果您允许连接。如果不允许连接,您可以使用

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

如果有效则保存配置

service iptables save

它将写入当前状态,即/etc/sysconfig/iptablesiptables 启动时加载的状态。

答案2

netfilter 是 Linux 防火墙,您可以使用“iptables -L”检查是否有任何东西被阻塞,查看您的 netstat 输出,您的绑定守护进程确实正在监听正常 ip。我建议检查防火墙。

相关内容