На CentOS Linux у вас ceilings везде отключен или активен
Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
SELinux в CentOS: состояние по умолчанию и управление
В CentOS (и его производных, таких как RHEL, Rocky Linux, AlmaLinux) SELinux (Security-Enhanced Linux) по умолчанию активен и работает в режиме enforcing, начиная с версий CentOS 4 и выше. Это важный элемент безопасности, обеспечивающий принудительный контроль доступа (Mandatory Access Control - MAC), который дополняет стандартные разрешения Unix. Ниже я подробно разберу текущее состояние, режимы работы и способы управления SELinux.
Три режима работы SELinux
enforcing(принудительный): Политика безопасности активно применяется. Все действия, нарушающие политику, блокируются и регистрируются в журнале аудита (/var/log/audit/audit.log) и, часто, в/var/log/messages.permissive(разрешающий): Политика не применяется для блокировки действий, но все нарушения регистрируются. Это режим отладки, полезный для настройки правил перед переходом вenforcing.disabled(отключен): Модуль ядра SELinux полностью выгружен. Не рекомендуется для рабочих систем, так как оставляет систему без этого слоя защиты. Для обратного включения может потребоваться перезагрузка и, возможно, полная переразметка контекстов файлов.
Как проверить текущее состояние и режим
Вы можете проверить статус с помощью команды getenforce или sestatus:
# Краткий вывод текущего режима (Enforcing, Permissive, Disabled)
getenforce
# Подробная информация о статусе, режиме, имени политики и её версии
sestatus
Пример вывода sestatus в CentOS 8 с активным SELinux:
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: enforcing
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Memory protection checking: actual (secure)
Max kernel policy version: 33
Управление режимом SELinux (без перезагрузки)
Чтобы временно изменить режим (до следующей перезагрузки), используйте setenforce:
# Переключить в режим enforcing
sudo setenforce 1
# Переключить в режим permissive
sudo setenforce 0
Важно: Команда setenforce не работает, если SELinux находится в состоянии disabled. Для перехода из disabled требуется изменение конфигурационного файла и перезагрузка.
Постоянная настройка режима через конфигурационный файл
Для установки режима, который сохранится после перезагрузки, необходимо отредактировать файл /etc/selinux/config:
sudo vi /etc/selinux/config
Найдите строку SELINUX= и установите одно из трёх значений:
SELINUX=enforcing
# ИЛИ
SELINUX=permissive
# ИЛИ
SELINUX=disabled
После изменения этого файла требуется перезагрузка системы для применения нового режима.
Практические рекомендации для DevOps-инженера
- Никогда не отключайте SELinux в production-среде. Вместо этого настройте его. Отключение — это грубое решение, которое снижает безопасность.
- Используйте режим
permissiveдля диагностики. Если служба не работает, переключитесь вpermissive, воспроизведите проблему и проанализируйте логи (sudo ausearch -m avc -ts recentилиsudo sealert -a /var/log/audit/audit.log). Утилитаsealert(пакетsetroubleshoot-server) предоставляет удобные для чтения отчёты. - Корректируйте политику с помощью правильных инструментов. Для постоянного разрешения нарушений используйте:
* `semanage fcontext` — для управления контекстами файлов и каталогов.
* `semanage port` — для управления контекстами сетевых портов.
* `semanage boolean` — для управления переключателями политики.
* `restorecon` — для применения изменённых контекстов к файловой системе.
- Пример: Если ваш веб-сервер (httpd) не может получить доступ к файлам в каталоге
/srv/webcontent, выполните:# 1. Установите правильный контекст для каталога (аналогично контексту по умолчанию для /var/www) sudo semanage fcontext -a -t httpd_sys_content_t "/srv/webcontent(/.*)?" # 2. Примените новый контекст рекурсивно sudo restorecon -Rv /srv/webcontent
Вывод
Таким образом, в CentOS Linux SELinux активен (enabled) и находится в режиме принудительного применения (enforcing) по умолчанию. Это осознанный выбор дистрибутива, направленный на повышение безопасности. Задача инженера — не отключать его, а научиться грамотно диагностировать (permissive, audit2allow, sealert) и корректировать политику под нужды конкретных приложений, используя стандартные утилиты управления SELinux.