Security-Enhanced Linux (SELinux) - это механизм управления доступом на уровне ядра, разработанный NSA и Red Hat. Он добавляет ещё один уровень защиты поверх традиционной модели прав доступа в Linux и дает системе возможность жестко контролировать, кто и что может делать в ОС, даже если у процесса уже есть root-доступ.
SELinux реализует модель Mandatory Access Control (MAC) - обязательного управления доступом. В отличие от Discretionary Access Control (DAC), где владелец объекта определяет права, MAC применяет централизованные политики, которым обязаны следовать все процессы и пользователи.
Каждому процессу и файлу присваивается контекст безопасности. Контекст включает в себя:
📍 тип объекта (например, httpd_sys_content_t)
📍 роль и домен процесса (например, httpd_t)
SELinux определяет, может ли процесс с данным контекстом взаимодействовать с файлом по текущей политике. Если нет - доступ будет заблокирован, даже если пользователь - root.
▪️ Режимы работы SELinux:
Enforcing - политика активна, запрещенные действия блокируются
Permissive - действия не блокируются, но журналируются
Disabled - SELinux отключен
Проверить режим можно так:
getenforce
Или через:
sestatus
▪️ Когда стоит включать SELinux?
🟩 SELinux особенно полезен на серверах с публичным доступом - веб-серверы, почтовики, базы данных. Он помогает изолировать процессы, минимизировать последствия уязвимостей и сдерживать вредоносные действия.
🔲 Но SELinux имеет крутую кривую обучения. Он может мешать "работать как привыкли", если не понимать, как он устроен. Ошибки конфигурации могут блокировать нужные процессы, а диагностика требует навыков чтения журналов (/var/log/audit/audit.log).
🌟 Совет: На старте используйте Permissive режим, чтобы изучить логи и не получить «белый экран» от nginx. Постепенно можно перейти в Enforcing, когда все отлажено.
Если безопасность - ваш приоритет, SELinux однозначно стоит включать. Но как и с любым инструментом, важно сначала его понять.
#SELinux #security
🧑💻 NetworkAdmin