Многие из вас наверняка слышали о AppArmor, работая с системами на базе Debian, в частности, Ubuntu.
Однако, поскольку это не приложение, отображаемое в графическом интерфейсе, некоторые пользователи могут быть с ним не знакомы.
Application Armor, сокращенно AppArmor, – это модуль безопасности в системах Linux.
Он представляет собой систему мандатного контроля доступа (Mandatory Access Control, MAC), используемую ядром Linux для ограничения возможностей программы в соответствии с ее профилями.
Эти профили могут разрешать или запрещать такие возможности, как доступ к сети, доступ к сырым сокетам, разрешения на чтение, запись и выполнение файлов и т.д.
Эти профили обычно загружаются в ядро при загрузке системы.
Профили AppArmor существуют в двух режимах – enforcement и complain.
Режим enforcement обеспечивает выполнение политики, определенной в профиле, а также сообщает о попытках нарушения политики с помощью syslog или аудита.
Режим жалобы, напротив, не обеспечивает соблюдение политики, а только сообщает о попытках ее нарушения.
Технология AppArmor существует уже некоторое время.
Впервые она была замечена в Immunix, а затем интегрирована в системы Novell/SUSE, Mandriva и Ubuntu.
AppArmor рассматривается как замена SELinux, который иногда считается сложным в настройке и обслуживании.
В отличие от SELinux, работа которого заключается в наложении меток на файлы, AppArmor работает с путями к файлам.
Сторонники AppArmor утверждают, что он менее сложен и прост в настройке, чем SELinux.
AppArmor и SELinux: Всестороннее сравнение | (itsecforu.ru)
В сегодняшнем руководстве мы познакомимся со шпаргалкой по AppArmor для системных администраторов Linux.
- 1. Проверка состояния AppArmor
- 2. Просмотр профилей AppArmor
- 3. Включение/отключение профилей AppArmor
- Включение профилей AppArmor
- Отключение профилей AppArmor
- 4. Создание профилей AppArmor
- Создание профиля из шаблона
- 5. Модификация профиля из журналов
- 6. Просмотр журналов
- 7. Управление службой AppArmor
- Заключение
1. Проверка состояния AppArmor
AppArmor установлен по умолчанию в системах Ubuntu и загружается автоматически при загрузке системы.
Чтобы проверить его состояние, выполните следующую команду:
Пример вывода:
Приведенный выше вывод показывает загруженные профили и режим AppArmor.
2. Просмотр профилей AppArmor
AppArmor имеет несколько предварительно загруженных профилей, которые находятся в каталоге “/etc/apparmor.d/”.
Некоторые из профилей отключены, другие активны.
Чтобы проверить все профили, можно выполнить команду:
Профили имеют определенный синтаксис именования.
Например, профиль для /usr/bin/man будет находиться в файле /etc/apparmor.d/usr.bin.man.
Отключенные профили находятся в каталоге “/etc/apparmor.d/disable”.
3. Включение/отключение профилей AppArmor
Хотя AppArmor позволяет иметь несколько профилей, они включаются или выключаются по отдельности.
Чтобы включить или отключить профиль, необходимо установить apparmor-utils.
Сначала обновите и модернизируйте систему, чтобы избежать ошибок “Segmentation fault”.
Теперь установите необходимую утилиту
Включение профилей AppArmor
Теперь перейдите к включению отключенного профиля с помощью команды с приведенным ниже синтаксисом:
Например, чтобы включить профиль Rsyslogd, мы можем выполнить команду:
Еще один пример включения профиля HTTPD.
Отключение профилей AppArmor
Чтобы отключить профиль, достаточно перевести его в режим complain с помощью:
Например:
4. Создание профилей AppArmor
AppArmor позволяет пользователям создавать собственные профили для защиты приложений.
Профиль обычно содержит несколько конфигураций и переменных для вашего приложения.
AppArmor избавляет от этой мороки, позволяя начать работу с шаблона или в интерактивном режиме.
При интерактивном способе он проверяет действия, выполняемые бинарным файлом, и позволяет вам решить, какие действия вам нравятся – запретить или разрешить.
Для этого необходимо выполнить команду с приведенным ниже синтаксисом:
Пример:
Updating AppArmor profiles in /etc/apparmor.d.
Writing updated profile for /usr/bin/scp.
Setting /usr/bin/scp to complain mode.
Before you begin, you may wish to check if a
profile already exists for the application you
wish to confine. See the following wiki page for
more information:
https://gitlab.com/apparmor/apparmor/wikis/Profiles
Profiling: /usr/bin/scp
Please start the application to be profiled in
another window and exercise its functionality now.
Once completed, select the "Scan" option below in
order to scan the system logs for AppArmor events.
For each AppArmor event, you will be given the
opportunity to choose whether the access should be
allowed or denied.
[(S)can system log for AppArmor events] / (F)inish
Теперь откройте отдельный терминал и выполните все действия, которые может выполнить бинарный файл.
Например:
После выполнения задачи нажмите S в окне профилирования AppArmor.
В записанных действиях установите, игнорировать, разрешить и т.д.
[(S)can system log for AppArmor events] / (F)inish
Reading log entries from /var/log/syslog.
Profile: /usr/bin/scp
Execute: /usr/bin/ssh
Severity: unknown
(I)nherit / (C)hild / (P)rofile / (N)amed / (U)nconfined / (X) ix On / (D)eny / Abo(r)t / (F)inish
После завершения нажмите “S” для сохранения изменений.
The following local profiles were changed. Would you like to save them?
[1 - /usr/bin/scp]
(S)ave Changes / Save Selec(t)ed Profile / [(V)iew Changes] / View Changes b/w (C)lean profiles / Abo(r)t
Теперь нажмите “f”, и профиль будет сохранен как /etc/apparmor.d/path.to.binary. (в данном случае /etc/apparmor.d/usr.bin.scp)
Выше приведен пример профиля AppArmor, созданного мной для SCP.
Создание профиля из шаблона
Вы можете создать скелет профиля App.
Начните с установки необходимого пакета:
Теперь создайте шаблон с помощью команды:
Образец вывода:
# vim:syntax=apparmor
# AppArmor policy for binary
# ###AUTHOR###
# ###COPYRIGHT###
# ###COMMENT###
#include <tunables/global>
# No template variables specified
"/path/to/binary" {
#include <abstractions/base>
# No abstractions specified
# No policy groups specified
# No read paths specified
# No write paths specified
}
После этого вы можете продолжить редактирование профиля по своему усмотрению.
Для приведения профиля в действие используйте:
Существует множество других команд для управления профилями AppArmor:
5. Модификация профиля из журналов
Можно также модифицировать профиль из логов.
Утилита считывает журналы и запрашивает, нужно ли разрешить некоторые запрещенные действия.
Для этого воспользуйтесь командой:
Затем можно перемещаться с помощью клавиш со стрелками и выбирать нужный профиль.
6. Просмотр журналов
Журналы AUDIT и DENIED можно просмотреть в файле /var/log/audit/audit.log.
Установите необходимый пакет:
Приступайте к работе и просматривайте журналы:
7. Управление службой AppArmor
Службой Tha AppArmor можно управлять так же, как и любой другой системной службой.
Чтобы остановить службу, выполните следующие действия:
Чтобы перезапустить службу, выполните следующие действия:
Проверьте состояние сервиса:
Заключение
На этом мы заканчиваем данное руководство по использованию шпаргалки AppArmor для системных администраторов Linux.
Существует еще несколько команд и шпаргалок, которые не были рассмотрены здесь, пожалуйста, поделитесь ими в комментариях ниже.