На 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.
Похожие вопросы
- Как организован процесс автоматизации сборки и деплоя приложений
- Три основных типа сервисов для предоставления сетевого доступа в Kubernetes
- Что такое DMZ в роутерах?
- Зачем нужны Terraform модули?
- Как в Jenkins сделать нотификацию об неуспешном билде
- Как сделать перенаправление алертов в конкретные каналы в Alertmanager Prometheus
- С какими проблемами в Kubernetes сталкивался
- Какие знаешь виды связей в БД?
- Как решить проблему нехватки ресурсов в кластере?
- Как организовать доступ к контейнеру извне в Kubernetes
- На каких языках писали команды для сборки
- Как прикрутить авторизацию кластеру
- Твои действия во время деплоя
- Как разворачивать pod в Kubernetes
- Сколько написали строк terraform за последний месяц?
- Как заставить процесс отпустить файловые дескрипторы
- Какие есть типы томов в контексте хранения данных?
- Какие инструменты в основе Docker лежат в Linux
- Как сервисы соединяются между собой
- Как обеспечить доступ команды разработчиков к AWS