SELinux & AppArmor
Тема дорожной карты · Linux & Unix Fundamentals
SELinux и AppArmor представляют собой фреймворки Mandatory Access Control (MAC), которые ограничивают доступ к ресурсам независимо от UID. Эти инструменты играют ключевую роль в обеспечении безопасности операционной системы, предотвращая несанкционированный доступ к данным и ресурсам. Понимание и правильная настройка этих фреймворков являются неотъемлемой частью обеспечения безопасности Linux.
Как это работает
SELinux метит каждый файл, порт и процесс в системе, что позволяет ему строго контролировать доступ к ресурсам. Политика SELinux поставляется с готовыми правилами, которые можно изменять и настраивать с помощью инструментов, таких как semanage и restorecon. Отказы SELinux записываются в журнал /var/log/audit/audit.log, где их можно анализировать с помощью инструментов ausearch и audit2allow.
AppArmor использует path-based профили, которые определяют, какие файлы и ресурсы могут быть доступны для определенных процессов. Эти профили находятся в директории /etc/apparmor.d/, и их можно управлять с помощью команд aa-status, aa-complain, и aa-enforce.
Оба фреймворка являются важной частью многоуровневой защиты (defense in depth), которая включает в себя обновленное ядро и пакеты, запуск сервисов под непривилегированными пользователями, использование SSH-ключей и отключение root-login, включение firewalls (ufw, firewalld), аудит через auditd, защиту от вторжений через fail2ban, использование сильных алгоритмов для хеширования паролей, а также регулярное создание бэкапов до того, как они потребуются.
Когда применять
Для интернет-ориентированных сервисов рекомендуется использовать только HTTPS, использовать SSH-ключи, а не пароли, активировать fail2ban, а также настроить автоматические обновления безопасности (unattended-upgrades на Debian, dnf-automatic на RHEL). Для многопользовательских систем, таких как серверы, SELinux или AppArmor являются оптимальными решениями. Для одноназначных устройств стандартные настройки обычно достаточно.
Типичные ошибки
Типичные ошибки при использовании SELinux и AppArmor включают в себя мысль, что SELinux "мешает", и использование команды setenforce 0 навсегда, что убирает последний слой MAC-защиты. Также распространены ошибки, такие как включение SSH-авторизации паролями, что делает систему уязвимой для атак brute-force. Не ротация SSH-ключей для ушедших пользователей, а также использование повторяющихся паролей между "внутренними" сервисами могут привести к проблемам с later movement. Откладывание обновлений ядра из-за страха, что они "сломаются", также является распространенной ошибкой, так как это точно произойдет позже, когда CVE будет эксплуатирован.