Я пытался использовать 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$
Итак, я решил, что это разрешения, поэтому для проверки я дал / 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)
Я действительно не понимаю этих ошибок разрешения, в обоих случаях я пробовал chmod 666 для файлов и chown bind: bind или root: bind. Тем не менее я получаю ошибки.
Вот права каталога
/ var / named
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
/ etc / bind
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
/ и т.д. / привязка / зоны
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
Любая помощь или руководство будут очень благодарны, заранее спасибо!
Мне это кажется проблемой AppArmor. Попробуйте временно установить для него разрешительный режим и посмотрите, исчезнет ли проблема.
По умолчанию демон Bind / Named не имеет разрешения на записывать в файлы зоны в / 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 корень bind 126 Nov 12 08:53 dnskeys.conf
Либо изменить разрешения в этом файле на 640, чтобы группа bind
имеет доступ для чтения,
chmod g+r /var/named/dnskeys.conf
или измените владельца файла на пользователя, запустившего named
обработать:
chown bind /var/named/dnskeys.conf
Как отмечали другие, вам обязательно следует НЕ сделать файл доступным для чтения всем, а тем более - для записи.
Помимо разрешений на уровне файловой системы, которые вы упомянули выше, вам необходимо настроить привязку, чтобы разрешить эти удаленные обновления с помощью allow-update
директива.