Thu*_*huy 5 domain-name-system debian bind dyndns nameserver
我一直在尝试使用 nsupdate 来动态更新我的域名服务器记录。
我尝试时遇到服务器故障。这是来自系统日志。
Nov 12 08:00:53 ps133045 named[14314]: client 78.72.53.42#50135: signer "www.mydomain.com" approved
Nov 12 08:00:53 ps133045 named[14314]: client 78.72.53.42#50135: updating zone 'mydomain.com/IN': adding an RR at 'client$
Nov 12 08:00:53 ps133045 named[14314]: /etc/bind/zones/mydomain.com.zone.jnl: create: permission denied
Nov 12 08:00:53 ps133045 named[14314]: client 78.72.53.42#50135: updating zone 'mydomain.com/IN': error: journal open fai$
Run Code Online (Sandbox Code Playgroud)
所以我认为这是权限,所以为了测试我给了 /var/named 和 /etc/bind chmod 666
没有帮助,所以我创建了 mydomain.com.zone.jnl 文件和 chmod 600 并认为可以,我也做了 chown bind:bind 和 root:bind,但在这两种情况下我仍然遇到相同的错误。
由于这个错误,现在我什至无法重新启动绑定
Nov 12 08:40:10 ps133045 named[21169]: loading configuration from '/etc/bind/named.conf'
Nov 12 08:40:10 ps133045 named[21169]: /etc/bind/named.conf.local:9: open: /var/named/dnskeys.conf: permission denied
Nov 12 08:40:10 ps133045 named[21169]: loading configuration: permission denied
Nov 12 08:40:10 ps133045 named[21169]: exiting (due to fatal error)
Run Code Online (Sandbox Code Playgroud)
我真的不明白这些权限错误,在这两种情况下,我都在文件上尝试了 chmod 666 和 chown bind:bind 或 root:bind。我仍然收到错误。
这是目录权限
/var/命名
drw-rw-rw- 2 root bind 121 Nov 12 08:53 .
drwxr-xr-x 15 root root 4.0K Nov 11 16:24 ..
-rw------- 1 root root 59 Nov 11 16:48 Kwww.mydomain.com.+157.17183.key
-rw------- 1 root root 165 Nov 11 16:49 Kwww.mydomain.com.+157.17183.private
-rw------- 1 root bind 126 Nov 12 08:53 dnskeys.conf
Run Code Online (Sandbox Code Playgroud)
/etc/绑定
drwxrwsrwx 3 root bind 4.0K Nov 11 17:31 .
drwxr-xr-x 115 root root 8.0K Nov 10 04:59 ..
-rw-r--r-- 1 root root 2.5K Oct 20 10:46 bind.keys
-rw-r--r-- 1 root root 237 Oct 20 10:46 db.0
-rw-r--r-- 1 root root 271 Oct 20 10:46 db.127
-rw-r--r-- 1 root root 237 Oct 20 10:46 db.255
-rw-r--r-- 1 root root 353 Oct 20 10:46 db.empty
-rw-r--r-- 1 root root 270 Oct 20 10:46 db.local
-rw-r--r-- 1 root root 3.0K Oct 20 10:46 db.root
-r--r--r-- 1 root bind 3 Nov 10 05:07 jam.sh
-rw-r--r-- 1 root bind 463 Nov 11 05:15 named.conf
-rw-r--r-- 1 root bind 490 Oct 20 10:46 named.conf.default-zones
-rwxr-xr-x 1 root bind 503 Nov 12 09:01 named.conf.local
-rwxr-xr-x 1 root bind 462 Nov 11 17:30 named.conf.local.bak
-rw-r--r-- 1 root bind 572 Oct 20 10:46 named.conf.options
-rw-r----- 1 bind bind 77 Nov 10 04:59 rndc.key
drw-rwSrw- 2 root bind 109 Nov 12 08:26 zones
-rw-r--r-- 1 root root 1.3K Oct 20 10:46 zones.rfc1918
Run Code Online (Sandbox Code Playgroud)
/etc/bind/zones
drw-rwSrw- 2 root bind 109 Nov 12 08:26 .
drwxrwsrwx 3 root bind 4.0K Nov 11 17:31 ..
-r--r--r-- 1 root bind 402 Nov 11 11:07 mydomain.com.zone
-rw-rw-rw- 1 bind bind 0 Nov 12 08:26 mydomain.com.zone.jnl
-r--r--r-- 1 root bind 377 Nov 11 11:06 rev.241.205.33.66.in-addr.arpa
Run Code Online (Sandbox Code Playgroud)
任何帮助或指导将不胜感激,提前致谢!
And*_*ter 10
这在我看来像是 AppArmor 问题。尝试将其暂时设置为宽松,看看问题是否消失。
默认情况下,绑定/命名守护进程无权写入/etc 中的区域文件。它只能读取它们。因此,nsupdate 进程也不能写入它们。
如果您正在动态更新 DNS,则应将区域文件存储在 /var/lib/bind 中 - https://help.ubuntu.com/14.04/serverguide/dns-configuration.html#dns-primarymaster-configuration
Apt 安装程序应该已经使用正确的权限和 AppArmor 上下文创建了这个目录。
错误消息实际上是不言自明的:
/etc/bind/named.conf.local:9:打开:/var/named/dnskeys.conf:权限被拒绝
该named进程通常以受限用户(可能bind)身份运行,该用户无权访问该文件dnskeys.conf(在当前权限下,该文件只能由该用户访问root):
-rw------- 1 root bind 126 Nov 12 08:53 dnskeys.conf
将该文件的权限更改为 640,以便该组bind具有读取访问权限,
chmod g+r /var/named/dnskeys.conf
Run Code Online (Sandbox Code Playgroud)
或将文件的所有者更改为运行该named进程的用户:
chown bind /var/named/dnskeys.conf
Run Code Online (Sandbox Code Playgroud)
正如其他人指出的那样,您绝对不应该使文件世界可读,更不用说世界可写了。
| 归档时间: |
|
| 查看次数: |
39251 次 |
| 最近记录: |