Введение в Ubuntu Apparmor и настройку профилей |

Введение в Ubuntu Apparmor и настройку профилей

Мануал

AppArmor является мандатной системой контроля доступа или MAC.

Он использует модуль безопасности Linux для ограничения программ.

AppArmor создает набор профилей приложений по умолчанию для защиты сервисов Linux.

Вы также можете защитить любые другие приложения, запущенные в вашей системе, самостоятельно создав файлы профилей.

В Ubuntu приложение AppArmor установлено и включено по умолчанию.

Профили apparmor загружаются при запуске системы.

AppArmor работает в следующих двух типах режимов профиля:

  1. Enforce – В режиме Enforce  система начинает применять правила и сообщать о попытках нарушения в syslog или auditd (только если auditd установлен), и операция не будет разрешена.
  2. Complain – режиме Complain система не применяет никаких правил. Она будет только регистрировать  попытки нарушения.

Дополнительные профили можно найти в пакете apparmor-profiles.

Просмотр статуса Apparmor

Вы можете просмотреть текущее состояние apparmor и всех загруженных профилей, как показано ниже:

$ sudo apparmor_status
apparmor module is loaded.
5 profiles are loaded.
5 profiles are in enforce mode.
   /sbin/dhclient
   /usr/lib/NetworkManager/nm-dhcp-client.action
   /usr/lib/connman/scripts/dhclient-script
   /usr/sbin/mysqld
   /usr/sbin/tcpdump
0 profiles are in complain mode.
2 processes have profiles defined.
2 processes are in enforce mode.
   /sbin/dhclient (585)
   /usr/sbin/mysqld (799)
0 processes are in complain mode.
0 processes are unconfined but have a profile defined.

Если мы проверим вышеприведенный вывод, мы увидим, что 5 профилей находятся в режиме Enforce.

Он также указывает на то, что в настоящее время выполняются два процесса в режиме принудительного исполнения (из-за профилей).

Например, /sbin/dhclient с PID 585 работает в режиме enforce

Изменить режим профиля

Чтобы установить профиль в режиме complain, сначала установите пакет apparmor-utils, если он еще не установлен.

apt-get install apparmor-utils

Используйте команду aa-complain, чтобы настроить профиль в режиме complain.

Например, для включения режима complain для mysqld выполните следующие действия.

$ sudo aa-complain /usr/sbin/mysqld
Setting /usr/sbin/mysqld to complain mode.

Теперь, когда вы выполните apparmor_status, вы увидите mysqld в режиме complain

$ sudo apparmor_status
apparmor module is loaded.
5 profiles are loaded.
4 profiles are in enforce mode.
   /sbin/dhclient
   /usr/lib/NetworkManager/nm-dhcp-client.action
   /usr/lib/connman/scripts/dhclient-script
   /usr/sbin/tcpdump
1 profiles are in complain mode.
   /usr/sbin/mysqld
2 processes have profiles defined.
1 processes are in enforce mode.
   /sbin/dhclient (585)
1 processes are in complain mode.
   /usr/sbin/mysqld (799)
0 processes are unconfined but have a profile defined.

Вы можете изменить профиль обратно в режим enforce, используя команду aa-enforce, как показано ниже.

$ sudo aa-enforce /usr/sbin/mysqld
Setting /usr/sbin/mysqld to enforce mode.

Файлы профилей AppArmor

Профили AppArmor – это текстовые файлы, расположенные в каталоге /etc/apparmor.d/.

Файлы названы по имени полного пути к исполняемому файлу, но они заменяют «/» на «.».

Например, команда ping находится в /bin/ping.

Аналогичный файл профиля AppArmor будет называться bin.ping

Ниже приведен файл профиля Apparmor для usr.sbin.mysqld. /usr/sbin/mysqld – это абсолютный путь бинарника, для которого применяется этот профиль.

# cat usr.sbin.mysqld
# vim:syntax=apparmor
# Last Modified: Tue Jun 19 17:37:30 2007
#include <tunables/global>
/usr/sbin/mysqld {
  #include <abstractions/base>
  #include <abstractions/nameservice>
  #include <abstractions/user-tmp>
  #include <abstractions/mysql>
  #include <abstractions/winbind>
  capability dac_override,
  capability sys_resource,
  capability setgid,
  capability setuid,
  network tcp,
  /etc/hosts.allow r,
  /etc/hosts.deny r,
  /etc/mysql/*.pem r,
  /etc/mysql/conf.d/ r,
  /etc/mysql/conf.d/* r,
  /etc/mysql/*.cnf r,
  /usr/lib/mysql/plugin/ r,
  /usr/lib/mysql/plugin/*.so* mr,
  /usr/sbin/mysqld mr,
  /usr/share/mysql/** r,
  /var/log/mysql.log rw,
  /var/log/mysql.err rw,
  /var/lib/mysql/ r,
  /var/lib/mysql/** rwk,
  /var/log/mysql/ r,
  /var/log/mysql/* rw,
  /var/run/mysqld/mysqld.pid rw,
  /var/run/mysqld/mysqld.sock w,
  /run/mysqld/mysqld.pid rw,
  /run/mysqld/mysqld.sock w,
  /sys/devices/system/cpu/ r,
  # Site-specific additions and overrides. See local/README for details.
  #include <local/usr.sbin.mysqld>
}

В файле профиля комментарии всегда идут с знаком #. #include строки загружают файл.

Ниже приведены различные типы правил, которые используются в профилях.

  • Элементы пути. Это информация о файлах, к которым приложение имеет доступ.
  • Записи Capability : определяет привилегии, которые разрешены ограниченному процессу.
  • Сетевые записи: определяет тип подключения. Например: tcp. Для сети пакетного анализатора может быть raw или packet  и т. д.

Внутри фигурных скобок {} у нас есть другие операторы include, а также включает разрешения / режимы доступа [read (r) / write (w) / execute (x) (k) lock (требуется r или w, в AppArmor 2.1 и более поздняя версия)], чтобы различные файлы и каталоги, которые включают регулярное выражение, включающее агенты include с фигурными фигурными скобками {}, помогают загружать компоненты профилей Novell AppArmor.

Отключение AppArmor

# /etc/init.d/apparmor stop
 * Clearing AppArmor profiles cache  [OK]

Выполнение указанной команды приведет к очистке кеша профилей.

Чтобы отключить настройки профиля, выполните следующую команду.

# /etc/init.d/apparmor teardown
 * Unloading AppArmor profiles [OK]

 

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий