Linux Labs

Безопасность сервера / Ступень 8 из 10

AppArmor: когда доступ запрещает профиль

Не запущена Запускается обычно ~20 с
Выйти из урока

Шаг 3 из 5 · на машине · 10 мин

Что запрещено и как добавить

Отказ записан в журнал ядра. Строка apparmor="DENIED" называет профиль, действие и путь (все поля):

apparmor="DENIED" operation="open" requested_mask="r"
profile="/usr/local/bin/docsrv"
name="/srv/docs/index.html"

profile — чей это профиль, operation и requested_mask — что программа пыталась сделать (r — прочитать, w — записать), name — к какому пути. Отсюда видно, какой путь добавить в профиль.

Сам профиль пакета не трогают — его перепишет обновление. Нужные пути дописывают в /etc/apparmor.d/local/<имя профиля>: этот файл профиль подключает строкой include if exists <local/...>, и обновление его не трогает. Строка правила — путь и права:

bash
echo '/srv/docs/** r,' \
  | sudo tee /etc/apparmor.d/local/usr.local.bin.docsrv
# перечитать профиль
sudo apparmor_parser -r /etc/apparmor.d/usr.local.bin.docsrv

r — чтение, w — запись, /srv/docs/** — все файлы под каталогом. Сам каталог — список его файлов — правило ** не открывает: для него нужна своя строка /srv/docs/ r, (в Вики). apparmor_parser -r перечитывает профиль, и правило действует сразу, в том числе для работающего процесса. Добавляют ровно нужные пути: всё остальное профиль должен держать закрытым.

Упражнение · сделать

Верни службе её журнал

Служба lab-docs отдаёт страницы, но не может записать журнал запросов /var/log/docsrv/access.log: профиль разрешает другой путь. Добавь нужный путь на запись в /etc/apparmor.d/local/usr.local.bin.docsrv и перечитай профиль, оставив его в enforce. После этого запрос к службе должен появляться в access.log.

Войти и начать Машина доступна после входа

Цели · 0 из 2

  • Разрешить профилю запись в access.log ещё не выполнена
  • Оставить профиль в enforce ещё не выполнена

Цели шага

0 из 2
  • Разрешить профилю запись в access.log — ещё не выполнена
  • Оставить профиль в enforce — ещё не выполнена
Ubuntu 24.04

Цели шага

0 из 2
  • Разрешить профилю запись в access.log — ещё не выполнена
  • Оставить профиль в enforce — ещё не выполнена
Загрузка…