Конфигурация и управление SELinux

Руководство по настройке и управлению SELinux на CentOS.
/ Системное администрирование Сервисы CentOS

Конфигурация и управление SELinux: Руководство по настройке и управлению SELinux на CentOS

Security-Enhanced Linux (SELinux) – это механизм усиления безопасности, который интегрируется в ядро Linux и помогает контролировать доступ приложений и пользователей к системным ресурсам. Система SELinux создана для того, чтобы минимизировать последствия, возникающие в случае успешного взлома. В данной статье мы рассмотрим, как настроить и управлять SELinux на CentOS.

Основы SELinux

SELinux использует концепцию политики безопасности, которая определяет, что разрешено и что запрещено в системе. Важно понимать три основных режима работы SELinux:

  1. Enforcing (Принудительный): SELinux активно применяется, и все попытки нарушения политики блокируются и логируются
  2. Permissive (Разрешающий): Политика не применяется, но все нарушения логируются. Этот режим полезен для отладки
  3. Disabled (Отключенный): SELinux полностью отключен

Проверка состояния SELinux

Чтобы проверить текущий статус SELinux, выполните следующую команду:

sestatus

Вы увидите примерно следующее:

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
Max kernel policy version:      31

Включение и отключение SELinux

Настройки SELinux могут быть изменены в конфигурационном файле `/etc/selinux/config`. Используйте редактор текстов, например, `nano` или `vi`, чтобы внести изменения:

sudo vi /etc/selinux/config

Файл будет содержать следующие строки:

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
# SELINUXTYPE= can take one of these three values:
#     targeted - Targeted processes are protected,
#     mls - Multi Level Security protection.

Чтобы изменить режим работы, замените значение `SELINUX=` на одно из `enforcing`, `permissive` или `disabled`.

Перезапуск системы

После изменения конфигурации SELinux потребуется перезапустить систему для применения настроек:

sudo reboot

Управление контекстами SELinux

Контексты SELinux (или метки) определяют, какие домены (процессы) имеют доступ к каким типам (ресурсам). Наиболее часто используемые команды для управления контекстами:

  • Чтобы просмотреть контекст файла:
ls -Z /path/to/file
  • Чтобы изменить контекст файла:
sudo chcon -t httpd_sys_content_t /var/www/html/index.html
  • Чтобы восстановить контекст по умолчанию:
sudo restorecon -v /path/to/file

Утилиты для управления SELinux

CentOS предоставляет несколько утилит для управления SELinux:

  • getsebool и setsebool: Используются для получения и настройки значений boolean параметров SELinux
getsebool httpd_enable_homedirs
sudo setsebool -P httpd_enable_homedirs on
  • semanage: Позволяет управлять различными аспектами SELinux, такими как порты и контексты файлов
sudo semanage port -a -t http_port_t -p tcp 8080
  • audit2allow: Генерация правил на основе логов нарушений
sudo audit2allow -w -a
sudo audit2allow -M mymodule -a
sudo semodule -i mymodule.pp

Заключение

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

Поиск