Debian Ubuntu установка и настройка apparmor

Установка
# apt-get install apparmor apparmor-profiles apparmor-utils

Проверяем статус
# /etc/init.d/apparmor status

Если выводится ошибка AppArmor not available as kernel LSM.. failed! В файле /etc/default/grub добавляем в переменную GRUB_CMDLINE_LINUX_DEFAULT, значение apparmor=1  security=apparmor

Пример
# vi /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quiet apparmor=1 security=apparmor"

Обновляем GRUB и перезапускаемся
# update-grub
# init 6

После перезапуска, проверяем статус
# /etc/init.d/apparmor status
AppArmor available in kernel.
25 profiles are loaded.
3 profiles are in enforce mode.
   /usr/lib/chromium-browser/chromium-browser//browser_java
   /usr/lib/chromium-browser/chromium-browser//browser_openjdk
   /usr/lib/chromium-browser/chromium-browser//sanitized_helper
22 profiles are in complain mode.
   /bin/ping
   /sbin/klogd
   /sbin/syslog-ng
   /sbin/syslogd
   /usr/lib/chromium-browser/chromium-browser
   /usr/lib/chromium-browser/chromium-browser//chromium_browser_sandbox
   /usr/lib/dovecot/deliver
   /usr/lib/dovecot/dovecot-auth
   /usr/lib/dovecot/imap
   /usr/lib/dovecot/imap-login
   /usr/lib/dovecot/managesieve-login
   /usr/lib/dovecot/pop3
   /usr/lib/dovecot/pop3-login
   /usr/sbin/avahi-daemon
   /usr/sbin/dnsmasq
   /usr/sbin/dovecot
   /usr/sbin/identd
   /usr/sbin/mdnsd
   /usr/sbin/nmbd
   /usr/sbin/nscd
   /usr/sbin/smbd
   /usr/{sbin/traceroute,bin/traceroute.db}
0 processes have profiles defined.
0 processes are in enforce mode.
0 processes are in complain mode.
0 processes are unconfined but have a profile defined.

У Apparmor есть два режима контроля приложений:
1. Еnforce - контроль работы приложения в рамках профиля. Apparmor сообщает о попытках нарушения правил профиля

2. Сomplain - работа приложения не ограничивается. Посылаются уведомления о нарушении правил.
В примере, вывод команды status показывает, что в режиме enforce 3 приложения, а в complain - 22.
Процессы в статусе unconfined имеют профили, но apparmor для них не используется.

Использование профилей.
Например мы хотим использовать apparmor для демона sshd.
Из директории профилей копируем файл-профиль демона
# cp /usr/share/doc/apparmor-profiles/extras/usr.sbin.sshd  /etc/apparmor.d

Перезапускаем apparmor и проверяем используемые профили
# /etc/init.d/apparmor restart
# /etc/init.d/apparmor status
AppArmor available in kernel.
30 profiles are loaded.
8 profiles are in enforce mode.
   /usr/lib/chromium-browser/chromium-browser//browser_java
   /usr/lib/chromium-browser/chromium-browser//browser_openjdk
   /usr/lib/chromium-browser/chromium-browser//sanitized_helper
   /usr/sbin/sshd
   /usr/sbin/sshd//AUTHENTICATED
   /usr/sbin/sshd//EXEC
   /usr/sbin/sshd//PRIVSEP
   /usr/sbin/sshd//PRIVSEP_MONITOR

Переключение режимов enforce/complain
sshd демон в режиме enforce, переключаем в complain
# aa-complain usr.sbin.sshd
Setting /etc/apparmor.d/usr.sbin.sshd to complain mode.

Переключение в режим enforce
# aa-enforce usr.sbin.sshd
Setting /etc/apparmor.d/usr.sbin.sshd to enforce mode.

Переключение режимов для всех профилей
# aa-complain /etc/apparmor.d/*
# aa-enforce /etc/apparmor.d/*

Дополнительная информация