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

Security-Enhanced Linux (SELinux) — это дополнительный уровень безопасности системы, определяющий, какие процессы могут получать доступ к тем или иным файлам, каталогам и портам. Эти разрешения определены в политиках SELinux. Политика — это набор правил, которыми руководствуется механизм безопасности SELinux.

SELinux имеет два возможных состояния:

  1. Включено.

  2. Выключено.

Когда SELinux включен, он содержит два режима:

  1. Принудительный.

  2. Разрешающий.

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

В разрешающем режиме SELinux не применяет загруженные политики. SELinux не запрещает доступ, но сообщает о действиях, нарушающих правила, в журнал /var/log/audit/audit.log. Разрешающий режим является режимом по умолчанию во время установки. Разрешающий режим также полезен, например, при устранении неполадок.

Обеспечение требуемого состояния SElinux#

По умолчанию SELinux работает в принудительном режиме.

Примечание

Рекомендуем поддерживать систему в принудительном режиме. В целях отладки установите SELinux в разрешающий режим.

Чтобы изменить состояние и режим SELinux в системе, следуйте сценарию:

  1. Отобразите текущий режим SELinux:

    getenforce
    
  2. Чтобы временно установить SELinux:

    • Для принудительного режима:

      setenforce
      
    • Для разрешающего режима:

      setenforce Permissive
      

Примечание

После перезагрузки режим SELinux устанавливается на значение, указанное в файле конфигурации /etc/selinux/config.

Настройка политики для SELinux, функционирующего в принудительном режиме#

В следующих разделах описываются файлы конфигурации и политики SELinux, а также связанные файловые системы, расположенные в каталоге /etc/.

Конфигурационный файл /etc/sysconfig/selinux#

Существует два способа настроить SELinux: с помощью средства настройки уровня безопасности (system-config-securitylevel) и вручную отредактировать файл конфигурации (/etc/sysconfig/selinux).

Файл /etc/sysconfig/selinux является основным конфигурационным файлом для включения или отключения SELinux, а также для настройки того, какую политику применять в системе и каким образом.

Примечание

Файл /etc/sysconfig/selinux содержит символическую ссылку на фактический файл конфигурации /etc/selinux/config.

Параметры конфигурации, доступные для настройки:

  • SELINUX=<enforcing|permissive> — определяет состояние SELinux верхнего уровня в системе:

    • enforcing — политика безопасности SELinux применяется принудительно;

    • permissive — система SELinux выводит предупреждения, но не применяет политику. Это полезно для целей отладки и устранения неполадок. В разрешающем режиме будет регистрироваться больше отказов, так как субъекты смогут продолжить действия, в противном случае запрещенные в принудительном режиме. Например, обход дерева каталогов приведет к появлению нескольких сообщений avc: denied для каждого прочитанного уровня каталога, где ядро в принудительном режиме остановило бы начальный обход и предотвратило появление дальнейших сообщений об отказе;

    Примечание

    Действия, выполняемые при отключенном SELinux, могут привести к тому, что файловая система больше не будет иметь надлежащего контекста безопасности, определенного политикой. Запуск fixfiles relabel перед включением SELinux приведет к переименованию файловой системы, чтобы SELinux работал правильно при включении. Дополнительные пробелы в конце строки конфигурации или в виде дополнительных строк в конце файла могут привести к неожиданному поведению. На всякий случай удалите ненужные пробелы.

  • SELINUXTYPE=<targeted|strict> — указывает, какая политика в данный момент применяется SELinux:

    • targeted — защищены только целевые сетевые демоны;

      Примечание

      Cледующие демоны защищены целевой политикой по умолчанию: dhcpd, httpd, named, nscd, ntpd, portmap, snmpd, squid, и syslogd. Остальная часть системы работает в домене unconfined_t.

      Файлы политик для этих демонов можно найти в файле /etc/selinux/targeted/src/policy/domains/program.

      Принудительное применение политики для этих демонов можно включить или выключить, используя логические значения, управляемые средством настройки уровня безопасности (system-config-securitylevel). Переключение логического значения для целевого демона отключает переход политики для демона, который предотвращает, например, init переход dhcpd из домена unconfined_t в домен, указанный в dhcpd. Домен unconfined_t позволяет субъектам и объектам с этим контекстом безопасности работать под стандартной защитой SberLinux OS Core.

    • strict — полная защита SELinux для всех демонов. Контексты безопасности определяются для всех субъектов и объектов, и каждое отдельное действие обрабатывается сервером принудительного применения политики.

Каталог /etc/selinux/#

Каталог /etc/selinux/ является основным местом расположения всех файлов политики, а также основного файла конфигурации. Пример содержимого каталога /etc/selinux/:

-rw-r--r-- 1 root root 448 Sep 22 17:34 config
drwxr-xr-x 5 root root 4096 Sep 22 17:27 strict
drwxr-xr-x 5 root root 4096 Sep 22 17:28 targeted

Два подкаталога, strict/ и targeted/, являются конкретными каталогами, в которых содержатся файлы политики с одинаковыми именами (strict и targeted). Политика strict защищает основные системные сервисы, например, веб-сервер, DHCP, DNS, но не трогает все остальные программы. Политика targeted - управляет не только сетевыми службами, но и программами пользователя.

Чтобы режим SELinux сохранялся при перезагрузке, измените переменную SELINUX в файле конфигурации /etc/selinux/config. Пример строки для переключения SELinux в принудительный режим:

SELINUX=enforcing

Внимание

Отключение SELinux снижает безопасность системы. Вместо этого отключите SELinux, добавив параметр selinux=0 в командную строку ядра.