SELinux — это относительно новая подсистема ядра, разработанная агентством национальной безопасности США для улучшения безопасности операционных систем на базе ядра Linux. SELinux создаёт свои атрибуты контроля доступа для файлов и папок, а также позволяет указывать, каким программам можно иметь к ним доступ.
Таким образом, можно обезопасить систему от взлома, даже если злоумышленнику удастся взломать одну из запущенных программ, то он сможет получить доступ только к файлам, которые может открывать уязвимая программа. Так сложилось, что SELinux чаще всего используется в CentOS, а в Ubuntu больше применяется другая система — AppArrmor. Использование SELinux не всегда целесообразно, поскольку настройка системы с включённой системой безопасности усложняется в разы. Поэтому мы в этой статье разберём, как отключить SELinux CentOS 7.
Как отключить SELinux в CentOS
SELinux может работать в нескольких режимах:
- Enforcing — система безопасности запущена и работает, все попытки доступа к файлам, для которых не созданы разрешающие правила, блокируются;
- Permisive — система запущена и работает, но при попытке несанкционированного доступа к файлам, доступ не блокируется, а всего лишь заносится об этом запись в системный журнал. Это режим для отладки правил;
- Disabled — система полностью отключена и не работает.
Также есть несколько политик работы системы безопасности. По умолчанию SELinux в CentOS включена и работает согласно политике targeted. Это значит, что SELinux будет управлять только теми приложениями, для которых созданы правила. Все приложения, для которых правила не созданы, будут работать без ограничений. Этот принцип чем-то похож на работу AppArrmor. Существует также политика strict, это самая строгая политика, которая запрещает доступ ко всему, что не разрешено. Прочитать подробнее обо всём этом можно в статье настройка SELinux.
Сначала необходимо посмотреть текущее состояние SELinux в системе:
sestatus
Здесь мы видим, что SELinux включён (enforcing) и использует политику targeted.
Если у вас используется политика strict, и вы не хотите полностью отключать SELinux, но хотите, чтобы система трогала ваши программы, то можно переключить политику на targeted. Для этого откройте файл /etc/selinux/config и в строке SELINUXTYPE установите значение targeted:
sudo vi /etc/selinux/config
Чтобы изменения применились, систему надо перезагрузить. Переключить SELinux в режим permissive, когда система будет только предупреждать о несанкционированном доступе, можно, выполнив команду в терминале:
sudo setenforce 0
Но она будет действовать только до перезагрузки. Чтобы изменение действовало всегда, нужно изменить режим в конфигурационном файле /etc/selinux/config:
sudo vi /etc/selinux/config
Чтобы отключить SELinux CentOS 7 полностью, откройте файл /etc/selinux/config и замените значение enforcing в параметре SELinux на disabled:
sudo vi /etc/selinux/config
Теперь можно перезагружать компьютер, и SELinux будет отключена. Также можно отключить SELinux через Grub, это может быть полезно, например, если вы не можете загрузить систему из-за неправильно настроенного SELinux. Для этого достаточно добавить параметр ядра selinux=0.
Откройте конфигурационный файл grub — /boot/grub/grub.cfg и найдите там строчку запуска ядра, она начинается с linux… В её конец нужно добавить параметр:
sudo vi /boot/grub/grub.cfg
Этот способ также удобен тем, что вы можете нажать кнопку E в меню Grub и внести все изменения на ходу перед загрузкой системы.