AppArmorの使い方について記載します。
Table of Contents
1 AppArmorのインストール
こちらの手順でAppArmorをインストールします。
2 usr.sbin.sshdプロファイルの修正と適用
/usr/share/doc/apparmor-profiles/extras/usr.sbin.sshdを利用します。
$ sudo cp /usr/share/doc/apparmor-profiles/extras/usr.sbin.sshd \
/etc/apparmor.d/
/etc/apparmor.d/usr.sbin.sshdに対して以下のパッチを適用します。以下のパッチはssh接続時にDENIEDされたものに対して権限を与えるものです。
$ cd /etc/apparmor.d/
$ cat <<EOF | sudo patch -p1
--- a/usr.sbin.sshd 2017-03-16 10:11:02.000000000 +0900
+++ b/usr.sbin.sshd 2017-06-14 13:38:47.862170542 +0900
@@ -21,6 +21,7 @@
#include <abstractions/consoles>
#include <abstractions/nameservice>
#include <abstractions/wutmp>
+ #include <abstractions/dbus>
capability sys_chroot,
capability sys_resource,
@@ -32,6 +33,8 @@
capability setgid,
capability setuid,
capability audit_control,
+ capability audit_write,
+ capability net_admin,
capability dac_override,
capability dac_read_search,
@@ -51,10 +54,16 @@
/var/log/btmp r,
/{,var/}run w,
/{,var/}run/sshd{,.init}.pid wl,
+ /{,var/}run/systemd/notify w,
+
+ ptrace,
@{PROC}/@{pid}/fd/ r,
- @{PROC}/@{pid}/loginuid w,
+ @{PROC}/@{pid}/loginuid rw,
@{PROC}/@{pid}/limits r,
+ @{PROC}/@{pid}/uid_map r,
+ @{PROC}/@{pid}/environ r,
+ @{PROC}/cmdline r,
# should only be here for use in non-change-hat openssh
# duplicated from EXEC hat
@@ -85,6 +94,7 @@
# duplicated from AUTHENTICATED
/etc/motd r,
/{,var/}run/motd{,.new} rw,
+ /{,var/}run/motd.dynamic{,.new} rw,
/tmp/ssh-*/agent.[0-9]* rwl,
/tmp/ssh-*[0-9]*/ w,
EOF
プロファイルをEnforceにします。
$ sudo aa-enforce /etc/apparmor.d/usr.sbin.sshd