Включение и Отключение SELinux Fedora

Команды /usr/sbin/getenforce или /usr/sbin/sestatus используются для проверки статуса SELinux. Команда getenforce возвращает значение Enforcing, Permissive, или Disabled. Команда getenforce возвращает Enforcing когда SELinux активирован (правила политики SELinux принудительные):

$ /usr/sbin/getenforce
Enforcing
Команда getenforce возвращает Permissive когда SELinux активирован, но правила политики SELinux не принудительные enforced, и используются только правила DAC. Команда getenforce возвращает Disabled, если SELinux отключен.
Команда sestatus возвращает статус SELinux и используемой политики SELinux:
$ /usr/sbin/sestatus
SELinux status:                 enabled
SELinuxfs mount:                /selinux
Current mode:                   enforcing
Mode from config file:          enforcing
Policy version:                 23
Policy from config file:        targeted
Значение SELinux status: enabled возвращается, когда SELinux включен. Current mode: enforcing возвращается, когда SELinux включен в принудительном enforced режиме. Policy from config file: targeted возвраещается, когда используется политика SELinux targeted.

5.4.1. Включение SELinux

В операционных системах с отключенным SELinux, сконфигурирована опция SELINUX=disabled в /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.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
#       targeted - Targeted processes are protected,
#       mls - Multi Level Security protection.
SELINUXTYPE=targeted
Также, команда getenforce возвращает значение Disabled:
$ /usr/sbin/getenforce
Disabled
Для включения SELinux:
  1. Используйте команду rpm -qa | grep selinux, rpm -q policycoreutils, и rpm -qa | grep setroubleshoot для проверки инсталляции пакетов SELinux. Это руководство предполагает, что инсталлированы следующие пакеты: selinux-policy-targeted, selinux-policy, libselinux, libselinux-python, libselinux-utils, policycoreutils, setroubleshoot, setroubleshoot-server, setroubleshoot-plugins. Если эти пакеты не установлены, установите их от имени пользователя root с помощью команды yum install package-name. Следующие пакеты опциональны: policycoreutils-gui, setroubleshoot, selinux-policy-devel, и mcstrans.
  2. Перед тем, как SELinux включится, каждый файл файловой системы должен быть промаркирован контекстом SELinux. До того, как это произойдёт, ограниченным доменам может быть отказано в доступе, что приведёт к некорректной загрузке операционной системы. Для того , чтобы не допустить этого, сконфигурируйте SELINUX=permissive в файле /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.
    SELINUX=permissive
    # SELINUXTYPE= can take one of these two values:
    #       targeted - Targeted processes are protected,
    #       mls - Multi Level Security protection.
    SELINUXTYPE=targeted
    
  3. От имени пользователя root, выполните команду reboot для перезагрузки операционной системы. Во время следующей загрузки файловые системы будут промаркированы. Процесс маркирования расставляет метки для всех файлов в контексте SELinux:
    *** Warning -- SELinux targeted policy relabel is required.
    *** Relabeling could take a very long time, depending on file
    *** system size and speed of hard drives.
    ****
    
    Каждый символ * в последней строке обозначает 1000 файлов, которые были промаркированы. В примере, приведенном выше, четыре символа * означают, что 4000 файлов были промаркированы. Общее время маркирования всех файлов зависит от общего количества файлов и скорости жёстких дисков. На современных системах, этот процесс занимает чуть меньше 10 минут.
  4. В разрешительном режиме, политика SELinux принудительно не назначена, но запреты журналируются как действия, которые были бы запрещены в принудительном режиме. Перед тем как перейти в принудительный режим, от имени пользователя root выполните команду grep "SELinux is preventing" /var/log/messages, для того, чтобы убедиться, что SELinux не запрещает действия во время последний загрузки. Если SELinux не запреащает действия во время последней загрузки, то данная команда не вернёт никакого вывода. В соотвстетствии с Глава 7, Поиск и устранение неисправностей информацией о поиске и устранении проблем, в случае, если SELinux запрещает доступ в процессе загрузки.
  5. Если не обнаружено сообщений о запретах в /var/log/messages, то сконфигурируйте SELINUX=enforcing в /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.
    SELINUX=enforcing
    # SELINUXTYPE= can take one of these two values:
    #       targeted - Targeted processes are protected,
    #       mls - Multi Level Security protection.
    SELINUXTYPE=targeted
    
  6. Перезагрузите операционную систему. После перезагрузки, удостоверьтесь, что команда getenforce возвращает значение Enforcing:
    $ /usr/sbin/getenforce
    Enforcing
    
  7. От имени пользователя root, выполните команду /usr/sbin/semanage login -l для просмотра отображений между SELinux и пользователями Linux. Вывод команды должен быть такой, как показано ниже:
    Login Name                SELinux User              MLS/MCS Range
    
    __default__               unconfined_u              s0-s0:c0.c1023
    root                      unconfined_u              s0-s0:c0.c1023
    system_u                  system_u                  s0-s0:c0.c1023
    
Если это не так, то выполните команду от root пользователя для исправления ошибок в отображениях пользователей. Безопаснее проигнорировать предупреждения SELinux-user username is already defined, если они появляются, где username может быть unconfined_u, guest_u, или xguest_u:
  1. /usr/sbin/semanage user -a -S targeted -P user -R "unconfined_r system_r" -r s0-s0:c0.c1023 unconfined_u
    
  2. /usr/sbin/semanage login -m -S targeted -s "unconfined_u" -r s0-s0:c0.c1023 __default__
    
  3. /usr/sbin/semanage login -m -S targeted -s "unconfined_u" -r s0-s0:c0.c1023 root
    
  4. /usr/sbin/semanage user -a -S targeted -P user -R guest_r guest_u
    
  5. /usr/sbin/semanage user -a -S targeted  -P user -R xguest_r xguest_u
    

Важно

Когда система запущена с SELinux в режиме permissive или disabled, у пользователей есть права некорректно маркировать файлы. Также, файлы созданные во время того, как SELinux отключен, не маркируются. Это вызывает проблемы, когда режим переводится в состояние enforcing. Для того, чтобы предотвратить некорректную маркировку или появление немаркированных файлов, файловые системы автоматически перемаркируются при изменению с disabled на permissive или enforcing режим.
Запись опубликована в рубрике *Unix,*Linux. Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не спамер This plugin created by Alexei91