Отключить SELinux на CentOS, Fedora
Отключить SELinux на CentOS, Fedora
SELinux (Security-Enhanced Linux) — это система принудительного контроля доступа, она может работать параллельно со стандартной классической системой контроля доступа в linux. SELinux может создавать правила обращения пользователям или программам, что дает возможность ограничить некоторые возможности доступа им. В данной материале описано как задать различные режимы работы подсистемы защиты или просто выключить её в ОС Linux.
Статус SELinux
Команды /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 возвращается, когда SELinux включен. Current mode: enforcing возвращается, когда SELinux включен в принудительном enforced режиме. Policy from config file: targeted возвращается, когда используется политика SELinux targeted.Управление 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:
- 
Используйте команду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. Следующие пакеты опционально: policycoreutils-gui, setroubleshoot, selinux-policy-devel, и mcstrans.package-name
- 
Перед тем, как SELinux включится, каждый файл файловой системы должен быть промаркирован контекстом SELinux. До того, как это произойдёт, ограниченным доменам может быть отказано в доступе, что приведёт к некорректной загрузке операционной системы. Для того , чтобы не допустить этого, настройтеSELINUX=permissiveв файле/etc/selinux/config:  
- 
От имени пользователя 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 минут.
- 
В разрешительном режиме, политика SELinux принудительно не назначена, но запреты заносятся в журнал как действия, которые были бы запрещены в принудительном режиме. Перед тем как перейти в принудительный режим, от пользователя root выполните командуgrep "SELinux is preventing" /var/log/messages, для того, чтобы убедиться, что SELinux не запрещает действия во время последний загрузки. Если SELinux не запрещает действия во время последней загрузки, то данная команда не вернёт никакого вывода.
- 
Если не обнаружено сообщений о запретах в/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 
- 
Перезагрузите ОС. После перезагрузки, удостоверьтесь, что командаgetenforceвозвращает значениеEnforcing:# /usr/sbin/getenforce Enforcing 
- 
От пользователя 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:/usr/sbin/semanage user -a -S targeted -P user -R «unconfined_r system_r» -r s0-s0:c0.c1023 unconfined_u
/usr/sbin/semanage login -m -S targeted -s «unconfined_u» -r s0-s0:c0.c1023 __default__
/usr/sbin/semanage login -m -S targeted -s «unconfined_u» -r s0-s0:c0.c1023 root
/usr/sbin/semanage user -a -S targeted -P user -R guest_r guest_u
/usr/sbin/semanage user -a -S targeted -P user -R xguest_r xguest_u
 
	
			
0