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/*