web-dev-qa-db-ja.com

Openntpdがubuntu 16.04で起動しない

Ubuntu 16.04.2 x64にOpenntpdをインストールすると問題が発生します(他のバージョンでも発生する可能性があります)。サービスopenntpは、私が見るログで開始したくない:

Apr 14 12:00:00 my-Host kernel: [24.6] type=1400 audit(1.2:1): apparmor="DENIED" operation="open" parent=1 profile="/usr/sbin/ntpd" name="/etc/openntpd/ntpd.conf" pid=1526 comm="ntpd" requested_mask="r" denied_mask="r" fsuid=0 ouid=0
2
Alex

読者の利益のために:

この問題は、パッケージntpの以前のインストールに起因しています。 ntpopenntpdに置き換えると、いくつかの構成ファイルが残ります。これは/etc/apparmor.d/usr.sbin.ntpdです。これにより、openntpdが正常に実行されなくなります。 ntpは通常デフォルトでインストールされるため、通常、これはopenntpdがアクティブなときにapparmorをインストールした後に常に発生します。

解決策は次のとおりです。

Sudo apt-get purge ntp
Sudo /etc/init.d/apparmor reload
Sudo /etc/init.d/openntpd restart

apparmoropenntpdと共に使用したい場合(おそらく、より安全なものにするためにopenntpdに切り替えたのでしょうか?)、ここに/etc/apparmor.d/openntpdとして追加したものがあります(これが完了したかどうかわかりません。これまでのところ):

# vim:syntax=apparmor

#include <tunables/global>

/usr/sbin/ntpd {
  #include <abstractions/base>
  #include <abstractions/nameservice>
  #include <abstractions/user-tmp>

  /etc/openntpd/ntpd.conf r,
  /var/lib/openntpd/run/ntpd.sock rw,
  /var/lib/openntpd/db/ntpd.drift rw,

  capability sys_time,
  capability sys_Nice,
  capability sys_chroot,
  capability setgid,
  capability setuid,
  capability kill,
}

openntpd/etc/apparmor.d/usr.sbin.ntpdではないのはなぜですか?

ntpはリソースモンスターであるためです。それは、openntpdには必要ない許可のトレインロードを必要とします。正しいことは、openntpdが必要なものではなく、ntpを必要なものに制限することです。

ところで、おそらく最良の解決策は、Canonicalに適切な/etc/apparmor.d/usr.sbin.ntpdをパッケージopenntpdに追加させ、それがntpから残った設定をオーバーライドすることです。これはUbuntu 16.04のバグと考えることができます。

1
Tino