Ubuntu 16.04: AppArmorにsbin.dhclientプロファイルを適用する

sbin.dhclientプロファイルを修正して適用します。

1 AppArmorのインストール

こちらの手順でAppArmorをインストールします。

2 sbin.dhclientプロファイルの修正と適用

/usr/share/doc/apparmor-profiles/extras/sbin.dhclientを利用します。

$ sudo cp /usr/share/doc/apparmor-profiles/extras/sbin.dhclient \
       /etc/apparmor.d/

/etc/apparmor.d/sbin.dhclientに対して以下のパッチを適用します。以下のパッチはDENIEDされたものに対して権限を与えるものです。

ただし、name="run/systemd/journal/dev-log"に対するDENIEDは回避できていません(プロファイルにrun/systemd/journal/dev-logと書いてもAppArmorはシンタックスエラーとみなす為)。

$ cd /etc/apparmor.d/
$ cat <<EOF | sudo patch -p1
--- a/sbin.dhclient       2017-03-16 10:11:02.000000000 +0900
+++ b/sbin.dhclient       2017-06-14 23:41:28.360129670 +0900
@@ -74,7 +74,9 @@
   /etc/sysconfig/network/scripts/functions r,
   /sbin/ip mrix,
   /usr/lib/NetworkManager/nm-dhcp-client.action mrix,
+  /usr/lib/NetworkManager/nm-dhcp-helper ix,
   /var/lib/dhcp/* rw,
   /{,var/}run/nm-dhclient-*.conf r,
-
+  /{,var/}run/NetworkManager/private-dhcp rw,
+  /{,var/}run/systemd/journal/dev-log w,
 }
EOF

プロファイルをEnforceにします。

$ sudo aa-enforce /etc/apparmor.d/sbin.dhclient