当我这样做时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 个)。忽略第一个字母;那将是-
,l
或d
。接下来的三个是列出的用户的权限(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