ジャンル不定の日記です。

bind9が起動しない

サーバーOSをUbuntu 16.04LTSから18.04LTSにしようとしたらリリース前の20.04LTSになってしまったわけだが、
bind9が起動しない。

というわけで調べたが、
$ systemctl status bind9.service
  bind9.service - BIND Domain Name Server
     Loaded: loaded (/lib/systemd/system/bind9.service; enabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Tue 2020-01-07 05:19:23 JST; 4s ago
       Docs: man:named(8)
    Process: 39403 ExecStart=/usr/sbin/named $OPTIONS (code=exited, status=1/FAILURE)

Jan 07 05:19:23 www12256ui named[39404]: listening on IPv4 interface eth0, 133.242.163.30#53
Jan 07 05:19:23 www12256ui named[39404]: listening on IPv4 interface eth1, 192.168.1.2#53
Jan 07 05:19:23 www12256ui named[39404]: generating session key for dynamic DNS
Jan 07 05:19:23 www12256ui named[39404]: sizing zone task pool based on 8 zones
Jan 07 05:19:23 www12256ui named[39404]: could not configure root hints from '/usr/share/dns/root.hints': permission denied
Jan 07 05:19:23 www12256ui named[39404]: loading configuration: permission denied
Jan 07 05:19:23 www12256ui named[39404]: exiting (due to fatal error)
Jan 07 05:19:23 www12256ui systemd[1]: bind9.service: Control process exited, code=exited, status=1/FAILURE
Jan 07 05:19:23 www12256ui systemd[1]: bind9.service: Failed with result 'exit-code'.
Jan 07 05:19:23 www12256ui systemd[1]: Failed to start BIND Domain Name Server.
赤文字にした箇所が怪しい。(実際のコンソールでも赤文字の箇所だが)

/var/log/syslog見ると
Jan 7 04:50:56 www12256ui named[11771]: could not configure root hints from '/usr/share/dns/root.hints': permission denied
Jan 7 04:50:56 www12256ui kernel: [ 737.835580] audit: type=1400 audit(1578340256.746:200): apparmor="DENIED" operation="open" profile="/usr/sbin/named" name="/usr/share/dns/root.hints" pid=11771 comm="named" requested_mask="r" denied_mask="r" fsuid=106 ouid=0

permission deniedだからとりあえずパーミッション確認したが、rootで644だった。
とりあえず666と600に変えてみたがダメ。

syslogのnamedが吐いてるエラー行の前後にカーネルが吐いてるログがあってapparmorとか書いてる。
apparmorって確かセキュリティ関連のやつだっけ?

というわけで調べてたが、bind9用の設定は/etc/apparmor.d/usr.sbin.namedの様だった。
これに、
/usr/share/dns/root.hints rw,
追加してみた。

apparmorとbind9を再起動したら無事起動した。

あとphpmyadminがログインできない問題が生じてる。
phpmyadminは毎回な気きがするが、アップグレードの際にエラー吐いてた。
phpmyadminは16.04の状態でもPHP 7.2に対応した関係でとかで使えなくなってた。
使えなくなるような仕様変更が多すぎる・・・

他にも問題あるかもしれないがまだ把握してない。

20.04から下げるのは無理だし、
今回アップしなかったもう一個のサーバーは長時間の停止はできないんで、
今回のサーバーで20.04で不具合が出る箇所を把握してから、そっちも18.04は飛ばすか。

LTS以外の半年周期アップグレードだと1段階ずつアップだった気がするが、LTSだと1段階アップにならないの?