Зачем нужен SELinux и как он защищает систему

11.09.2025

SELinux (Security Enhanced Linux) — это механизм контроля доступа, встроенный в RHEL/CentOS, который добавляет второй уровень защиты поверх традиционных прав Unix. Его задача — ограничивать, что может делать процесс или пользователь в случае, если злоумышленнику удалось получить доступ к системе. Это особенно важно для серверов: уязвимость в одном приложении не должна автоматически давать хакеру полный контроль над системой.

Таким образом, даже если сервис скомпрометирован, он не сможет читать или записывать файлы или общаться с другими службами, не входящими в список разрешённых. При этом даже рут-процессам можно задать строгие правила, снижая риски как ошибок, так и злоупотреблений.

Как это работает

SELinux использует так называемые «контексты», присвоенные файлам, процессам и сетевым портам. Контекст выглядит как набор меток (user:role:type:level), но для большинства пользователей важна только часть «type». Политики описывают, какие типы процессов могут обращаться к каким типам файлов или портов.

В упрощённом виде это можно описать так: представьте, что каждому объекту присвоено цветовое обозначение. Политика говорит: синие приложения могут читать только зелёные файлы и отправлять данные на жёлтые порты. При такой схеме, даже если злоумышленник получит доступ к какой-то программе и запустит внутри неё вредоносный код, ущерб, который он потенциально может нанести, будет заметно ограничен.

У этой системы есть три режима:

  • Enforcing — активная работа. Это обычный рабочий режим для защиты;
  • Permissive — действия не блокируются, любые нарушения политик вносятся в журнал. Полезен для отладки и перехода на SELinux без простоев;
  • Disabled — защита отключена. Делать это стоит только при осознанных причинах и с пониманием рисков.

Рекомендации для работы с SELInux

У некоторых приложений при включенном режиме Enforcing могут возникать проблемы. Самый простой способ их решить — это перейти на режим Disabled. Однако не стоит делать из этого привычку, потому что это серьёзно повышает уязвимость системы. Вместо этого лучше переключиться на Permissive и провести диагностику.

Для этого нужно проверить логи: в /var/log/audit и journalctl можно найти подсказки о том, какие именно действия были заблокированы.

Если вы пользуетесь стандартными сервисами, можете смело прибегать к поставляемым политикам — большинство пакетов из репозиториев RHEL/CentOS уже настроены с корректными контекстами и должны сразу работать без проблем. Любые изменения следует документировать, чтобы не терять контроль при обновлениях.

В целом, SELinux — это мощный инструмент, заметно способствующий защите от злонамеренных действий. Он сильно снижает риск эскалации привилегий и распространения атак между службами. Что не менее важно, при правильном использовании сделать это можно с минимальным вмешательством и администрированием. Поэтому его освоение — значимая часть обучения использования RHEL.

Учебный центр РРС
Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.