Linux Labs

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

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

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

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

Профиль поверх прав

Права на файл служба проходит — её останавливает отдельная проверка. Это AppArmor: поверх обычных прав он разрешает конкретной программе только то, что записано в её профиле.

Профиль службы — файл в /etc/apparmor.d/: путь к программе и список путей, которые ей можно читать и писать. У профиля два режима:

  • enforce — всё, чего в профиле нет, запрещается;
  • complain — ничего не запрещается, нарушения только пишутся в журнал.

sudo aa-status показывает загруженные профили и их режимы. Переключают режим две команды:

bash
# только логировать (отладка)
sudo aa-complain /etc/apparmor.d/usr.local.bin.docsrv
# снова запрещать
sudo aa-enforce /etc/apparmor.d/usr.local.bin.docsrv

В complain служба работает, даже если профиль не разрешает путь, — так видно, чего ей не хватает, не ломая доступ насовсем.

Внимание

complain оставляют только на время отладки: в нём профиль ничего не защищает. Разобрался — верни enforce.

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

Переведи профиль в complain

Переведи профиль службы docsrv (/etc/apparmor.d/usr.local.bin.docsrv) в режим complain, не трогая сам профиль. После этого служба должна отдавать index.html по http://127.0.0.1:8097/index.html.

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

Цели · 0 из 2

  • Перевести профиль docsrv в complain ещё не выполнена
  • Добиться, чтобы служба отдавала страницу ещё не выполнена
Проверь себя 1 вопрос

Профиль docsrv ты перевёл в complain, и служба отдаёт страницы из /srv/docs. Путь в профиль ты не добавлял. Что будет, если вернуть профиль в enforce?

  • Служба запускается при любом режиме профиля; в enforce ей лишь отказывают в непрописанном пути. systemctl is-active lab-docs останется active.

  • sudo aa-enforce переключает профиль в любую сторону. После него aa-status покажет docsrv в enforce.

  • complain ничего не добавляет в профиль, только логирует. В enforce непрописанный /srv/docs снова закрыт: curl вернёт «Permission denied».

В enforce непрописанный путь /srv/docs снова закрыт — complain профиль не менял.

Цели шага

0 из 2
  • Перевести профиль docsrv в complain — ещё не выполнена
  • Добиться, чтобы служба отдавала страницу — ещё не выполнена
Ubuntu 24.04

Цели шага

0 из 2
  • Перевести профиль docsrv в complain — ещё не выполнена
  • Добиться, чтобы служба отдавала страницу — ещё не выполнена
Загрузка…