私はnsupdateを使用してネームサーバーレコードを動的に更新しようとしています。
試行すると、serverfailが発生します。これは、syslogからのものです。
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)
私はこれらのアクセス許可エラーを本当に理解していません。どちらの場合も、ファイルとchown bind:bindまたはroot:bindでchmod 666を試しました。それでもエラーが発生します。
ここにディレクトリの権利があります
/ 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
/ 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
どんな助けや指導でも大歓迎です、事前に感謝します!
エラーメッセージは実際にはかなり自明です:
/etc/bind/named.conf.local:9:open:/ var/named/dnskeys.conf:permission denied
named
プロセスは通常、制限されたユーザー(おそらくbind
)として実行されており、ファイルdnskeys.conf
へのアクセス権がありません(現在の権限では、ファイルにアクセスできるのはユーザーroot
):
-rw------- 1 root bind 126 Nov 12 08:53 dnskeys.conf
そのファイルの permissions を640に変更して、グループbind
が読み取りアクセス権を持つようにします。
chmod g+r /var/named/dnskeys.conf
または、ファイルの所有者をnamed
プロセスを実行しているユーザーに変更します。
chown bind /var/named/dnskeys.conf
他の人が指摘しているように、絶対に[〜#〜]しない[〜#〜]ファイルを誰でも読み取り可能にし、誰でも書き込めないようにしてください。
これはAppArmorの問題のように見えます。一時的にpermissiveに設定してみて、問題が解消するかどうか確認してください。
デフォルトでは、Bind/Namedデーモンには、/ etc内のゾーンファイルへのwrite権限がありません。読むことしかできません。したがって、nsupdateプロセスはそれらに書き込むこともできません。
DNSを動的に更新する場合は、代わりにゾーンファイルを/ var/lib/bindに保存する必要があります- https://help.ubuntu.com/14.04/serverguide/dns-configuration.html#dns- primarymaster-configuration
Aptインストーラーは、適切な権限とAppArmorコンテキストでこのディレクトリをすでに作成しているはずです。
上記のファイルシステムレベルの権限とは別に、allow-update
ディレクティブを使用してこれらのリモート更新を許可するようにバインドを構成する必要があります。