我的服务器 DNS 出现问题

我的服务器 DNS 出现问题

当我这样做时service bind9 status,它会告诉我以下内容

named[983]: managed-keys-zone: unable to synchronize managed keys: unexpected error
named[983]: zone 0.in-addr.arpa/IN: loaded serial 1
named[983]: zone 255.in-addr.arpa/IN: loaded serial 1
named[983]: zone localhost/IN: loaded serial 2
named[983]: zone 127.in-addr.arpa/IN: loaded serial 1
named[983]: zone midomain.com/IN: loaded serial 2017061000
named[983]: all zones loaded
named[983]: running zone midomain.com/IN: sending notifies (serial 2017061000)
named[983]: client 201.235.234.30#55016: received notify for zone 'midomain.com'

日志内容/var/log/syslog如下:

 the working directory is not writable
named[983]: managed-keys.bind.jnl: create: permission denied
named[983]: managed-keys-zone: sync_keyzone:dns_journal_open -> unexpected error
named[983]: managed-keys-zone: unable to synchronize managed keys: unexpected error

我怎样才能让 bind9 正确启动并运行?

答案1

bind 以什么用户身份运行?它在 chroot jail 中吗?什么操作系统?

问题是它无法创建日志文件(managed-keys.bind.jnl文件),也无法打开该managed-keys-zone文件。selinux 是否已开启?

要检查这些文件的位置,请(以 root 身份)运行以下命令:

find / -name "managed-keys-zone"

然后,检查该文件的权限:

ls -lh <path from above>

您应该看到列出的权限最多有 10 个字符(有时是 11 个)。忽略第一个字母;那将是-,ld。接下来的三个是列出的用户的权限(R伊德,西仪式,EXecute)。接下来的三个是针对列出的群组,最后三个是针对其他所有人。

通过上面的命令检查谁拥有它ls- 它是由 root 还是其他名称(即 bind)拥有。

答案2

添加以下选项named.conf

options {
...
dnssec-enable yes;
dnssec-validation auto;
managed-keys-directory "/etc/namedb/dynamic/";
...
};

答案3

就我而言,文件和目录所有者不正确。请按照以下命令进行修复:

sudo chown -R root:bind  /var/cache/bind
sudo chown -R root:bind  /var/cache/bind/managed-keys.bind
sudo chown -R root:bind  /var/cache/bind/managed-keys.bind.jnl

请参阅参考点击这里

您现在可以重新启动 named.service 而不会出现任何错误:

sudo systemctl restart named.service

并检查状态日志:

sudo systemctl status named.service

相关内容