0コメント

【権威DNS】nsd のログが出ん( Permission denied )

nsd[72101]: error: Cannot open /var/log/nsd/nsd.log for appending (Permission denied), logging to stderr
皆さんこのログに悩まされたのではないでしょうか。
権威DNSサーバ(ネームサーバ)であるnsdを使った時、nsd.logの所有権をnsd:nsdにしても拒否られるという。
それについての解決策が見つかったので、共有。
ただ、セキュリティ的な問題とかその辺り全く考えてないので、危険因子の可能性もあるから注意

serviceファイルをいじる

まず、
sudo vi /lib/systemd/system/nsd.service
でサービスファイルを開く。
スクリーンショット 2025-02-18 020615.png
seesaaブログ、コードブロックに滅茶苦茶弱いからそろそろちゃんとしたい・・・
ProtectSystem=strict
の箇所を
ProtectSystem=full
に変えてください。
そして
sudo systemctl daemon-reload
nsdのサービスファイルはとにかく項目が多くて、ProtectとかPrivateとか書いてある奴を総当たりでつっかかって、ようやく突き止めた。
offにするとエラーは出ないが出力されないらしい。うちの環境じゃ検証してないけど。

logファイルのパーミッション

次に、logファイルのパーミッション。うちの環境だと
/var/log/nsd/nsd.log
に設定しているが、パーミッションはこんな感じ
$ ls -al /var/log/nsd/nsd.log
-rw-rw-rw- 1 nsd nsd 13121 Feb 18 02:10 /var/log/nsd/nsd.log
これについても自分でよく分かってないため危険因子と言ったのだが、
パーミッションが「644」でも「664」でもPermission deniedになるのである。「666」じゃないと通らない。
なら所有権nsd:nsdにしなくても通りそうだなこれ
あと試してないけどread権限もいらない?
sudo systemctl restart nsd
で、statusにエラーが出てないかを確認。
スクリーンショット 2025-02-18 021558.png
これが
スクリーンショット 2025-02-18 021637.png
こう!!エラーが出てない!!おわり!!!
結局よく分からないことだらけなので、応急処置的な感じで。これに苦しんでる人結構いるっぽいんだけど情報が無かったので共有を。

試したこと

試したこととして、別ディレクトリへの書き込み。
「/etc/nsd」とか「/tmp」とか、書き込めるんだよね。「/var/log」だけこのサービスファイル編集とかしないとダメだった。なんで。
それと、私が最初に疑ったのがapparmorの存在。
nsdを開発しているNLnet labsが出しているフルリゾルバ「Unbound」では、ログファイルをapparmorのホワイトリストに追加しておかないと出力できないという経験があった。
なのでnsdもあるんじゃね?と思って探した
ls /etc/apparmor.d
したら、nsdは無かった・・・
おわり。
0

この記事へのコメント