Отключение SELinux в RHEL / CENTOS / FEDORA (Disable SELinux in RHEL / CENTOS / FEDORA)

Немного теории))

SELinux (англ. Security-Enhanced Linux — Linux с улучшенной безопасностью) — реализация системы принудительного контроля доступа, которая может работать параллельно с классической дискреционной системой контроля доступа. Входит в стандартное ядро Linux. Также для функционирования SELinux требуются модифицированные версии некоторых утилит (ps, ls, и тд), которые обеспечивают поддержку новых функций ядра, и поддержка со стороны файловой системы.
Оставаясь в рамках дискреционной системы контроля доступа, Операционная система имеет фундаментальное ограничение в плане разделения доступа процессов к ресурсам — доступ к ресурсам основывается на правах доступа пользователя. Это классические права rwx на трех уровнях — владелец, группа-владелец и остальные.

В SELinux права доступа определяются самой системой при помощи специально определенных политик. Политики работают на уровне системных вызовов и применяются самим ядром (но можно реализовать и на уровне приложения). SELinux действует после классической модели безопасности Linux. Иными словами, через SELinux нельзя разрешить то, что запрещено через права доступа пользователей или групп. Политики описываются при помощи специального гибкого языка описания правил доступа. В большинстве случаев правила SELinux «прозрачны» для приложений, и не требуется никакой их модификации. В состав некоторых дистрибутивов входят готовые политики, в которых права могут определяться на основе совпадения типов процесса (субъекта) и файла (объекта) — это основной механизм SELinux. Две других формы контроля доступа — доступ на основе ролей и на основе многоуровневой системы безопасности (например, «ДСП» (для служебного пользования), «секретно», «совершенно секретно», «ОВ» (особой важности)).

Самый простой для работы и поддержки с точки зрения поддержки тип политики — так называемая «целевая» политика, разработанная в рамках проекта Fedora. В рамках политики описано более 200 процессов, которые могут выполняться в операционной системе. Все, что не описано «целевой» политикой, выполняется в домене (с типом) unconfined_t. Процессы, работающие в этом домене, не защищаются SELinux. Таким образом, все сторонние пользовательские приложения будут без всяких проблем работать в системе с «целевой» политикой в рамках классических разрешений дискреционной системы контроля доступа.

Но, на практике использование SELinux требует достаточно сложных настроек. К тому же SELinux по умолчанию включена, и без настройки блокирует некоторые действия. Это может стать критичным и послужить поводом к ее отключению. При этом нужно понимать и отдавать себе отчет в том, что безопасность будет возложена только на классическую дискреционную систему контроля доступа.

Проверить состояние SELinux можно выполнив команду

# getenforce
# Enforcing

Для временного выключения SELinux выполните setenforce 0

# getenforce
# Enforcing
# setenforce 0
# getenforce
# Permissive

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

# 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 - SELinux is fully disabled
SELINUX=enforcing
# SELINUXTYPE= type of policy in use. Possible values are:
# targeted - Only targeted network daemons are protected.
# strict - Full SELinux protection.
SELINUXTYPE=targeted

Для отключения SELinux устанавливаем параметр SELINUX=disabled.

После этого перезагружаем систему

# reboot

или если перезагрузка по каким-либо причинам невозможна можно воспользоваться

# setenforce 0