AppArmor (Application Armor)

AppArmor (Application Armor) – це система безпеки Linux, яка обмежує можливості програм через профілі безпеки.

Простими словами

Уявіть, що ви наймаєте працівника (програму). AppArmor – це його посадова інструкція, яка чітко описує:

  • ✅ До яких файлів він може звертатися
  • ✅ Які мережеві з’єднання може робити
  • ✅ Які системні ресурси може використовувати
  • ❌ Що йому категорично заборонено

Як це працює

Приклад профілю

Режими роботи

1. Enforce (Примусовий)

2. Complain (Скарга)

3. Disabled (Вимкнено)

Основні команди

Де знаходяться профілі

AppArmor і Docker

Docker автоматично створює профіль docker-default для контейнерів:

Що обмежує для Docker:

Проблема з Docker

Чому виникає помилка “cannot stop container”?

Причина: AppArmor блокує деякі системні виклики Docker.

Рішення:

Варіант 1: Тимчасово вимкнути (для дебагу)

Варіант 2: Видалити “зламані” профілі

Варіант 3: Запустити Docker без AppArmor

Варіант 4: Створити власний профіль (найбезпечніше)

AppArmor vs SELinux

AppArmor SELinux
Ubuntu, Debian, SUSE Red Hat, CentOS, Fedora
Працює з шляхами файлів Працює з мітками (labels)
Простіше налаштувати Складніше, але потужніше
Профілі в текстових файлах Binary політики

Логи AppArmor

Приклад логу:

Коли використовувати AppArmor?

✅ Використовуйте:

  • Production середовище
  • Мультитенант системи
  • Високий рівень безпеки
  • Обмеження для ненадійного коду

⚠️ Можна вимкнути:

  • Розробка на локальній машині
  • Тестове середовище
  • Конфлікти з Docker (як тимчасове рішення)

Альтернативи

  1. SELinux – для RedHat систем
  2. Seccomp – фільтрування системних викликів
  3. Capabilities – обмеження привілеїв
  4. Namespaces – ізоляція ресурсів
  5. cgroups – обмеження ресурсів

Практичний приклад

Висновок

AppArmor – це охоронець вашої системи. Він:

  • 🛡️ Захищає від зловмисного коду
  • 🔒 Обмежує можливості програм
  • 📝 Логує підозрілу активність
  • ⚖️ Балансує між безпекою та зручністю

Для Docker розробки:

  • Development: можна вимкнути
  • Production: обов’язково увімкнути з правильними профілями
Опубліковано в Linux

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *