4 эффективных метода для временного или постоянного отключения SELinux

Мы предоставляем услуги удаленного администрирования серверов

4 эффективных метода для временного или постоянного отключения SELinux

Поделиться

В некоторых дистрибутивах Linux SELinux включен по умолчанию, что может вызвать некоторые нежелательные проблемы, если вы не понимаете, как работает SELinux, и основные сведения о том, как его настроить. Я настоятельно рекомендую вам понять SELinux и реализовать его в своей среде. Но, пока вы не поймете детали реализации SELinux, вы можете захотеть отключить его, чтобы избежать некоторых ненужных проблем.

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

SELinux будет применять политики безопасности, включая обязательные меры контроля доступа, определенные Министерством обороны США, с использованием модуля безопасности Linux (LSM), определенного в ядре Linux. Все файлы и процессы в системе будут помечены специальными метками, которые будут использоваться SELinux. Вы можете использовать ls -Z и просмотреть эти метки, как показано ниже.

# ls -Z /etc/
-rw-r--r--  root root  system_u:object_r:etc_t:s0       a2ps.cfg
-rw-r--r--  root root  system_u:object_r:adjtime_t:s0   adjtime
-rw-r--r--  root root  system_u:object_r:etc_aliases_t:s0 aliases
drwxr-x---  root root  system_u:object_r:auditd_etc_t:s0 audit
drwxr-xr-x  root root  system_u:object_r:etc_runtime_t:s0 blkid
drwxr-xr-x  root root  system_u:object_r:bluetooth_conf_t:s0 bluetooth
drwx------  root root  system_u:object_r:system_cron_spool_t:s0 cron.d
-rw-rw-r--  root disk  system_u:object_r:amanda_dumpdates_t:s0 dumpdates

Способ 1: временно отключить SELinux

Чтобы временно отключить SELinux, вы должны изменить файл /selinux/enforce, как показано ниже. Обратите внимание, что этот параметр пропадет после перезагрузки системы.

# cat /selinux/enforce
1

# echo 0 > /selinux/enforce

# cat /selinux/enforce
0

Вы также можете использовать команду setenforce, как показано ниже, чтобы отключить SELinux. Возможные параметры для команды setenforce: Enforcing, Permissive, 1 (включить) или 0 (отключить).

# setenforce 0

Способ 2: постоянное отключение SELinux

Чтобы навсегда отключить SELinux, измените /etc/selinux/config и установите SELINUX=disabled, как показано ниже. Когда вы внесете какие-либо изменения в /etc/selinux/config, перезагрузите сервер, чтобы изменения были учтены.

# cat /etc/selinux/config
SELINUX=disabled
SELINUXTYPE=targeted
SETLOCALDEFS=0

Ниже приведены возможные значения для SELinux переменной в /etc/selinux/config файл

  • enforcing — Политика безопасности всегда поддерживается
  • permissive — Это просто имитирует принудительную политику, печатая только предупреждающие сообщения и не применяя SELinux. Это хорошо, чтобы сначала увидеть, как работает SELinux, а затем выяснить, какие политики следует применять.
  • disabled — полностью отключить SELinux

Ниже приведены возможные значения переменной SELINUXTYPE в файле /etc/selinux/config . Это указывает тип политик, которые можно использовать для SELinux.

  • targeted — эта политика защищает только определенные целевые сетевые демоны.
  • strict — это для максимальной защиты SELinux.

Метод 3: Отключить SELinux из загрузчика Grub

Если вы не можете найти файл /etc/selinux/config в своей системе, вы можете передать отключение SELinux, передав его в качестве параметра загрузчику Grub, как показано ниже.

# cat /boot/grub/grub.conf
default=0
timeout=5
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
hiddenmenu
title Enterprise Linux Enterprise Linux Server (2.6.18-92.el5PAE)
root (hd0,0)
kernel /boot/vmlinuz-2.6.18-92.el5PAE ro root=LABEL=/ rhgb quiet selinux=0
initrd /boot/initrd-2.6.18-92.el5PAE.img
title Enterprise Linux Enterprise Linux Server (2.6.18-92.el5)
root (hd0,0)
kernel /boot/vmlinuz-2.6.18-92.el5 ro root=LABEL=/ rhgb quiet selinux=0
initrd /boot/initrd-2.6.18-92.el5.img

Способ 4: отключить только определенную службу в SELinux — HTTP / Apache

Если вы не заинтересованы в отключении всего SELinux, вы также можете отключить SELinux только для определенной службы. Например, отключите SELinux для службы HTTP / Apache, измените переменную httpd_disable_trans в файле /etc/selinux/target/booleans .

Установите для переменной httpd_disable_trans значение 1, как показано ниже.

# grep httpd /etc/selinux/targeted/booleans
httpd_builtin_scripting=1
httpd_disable_trans=1
httpd_enable_cgi=1
httpd_enable_homedirs=1
httpd_ssi_exec=1
httpd_tty_comm=0
httpd_unified=1

Установите логическое значение SELinux с помощью команды setsebool, как показано ниже. Обязательно перезапустите службу HTTP после этого изменения.

# setsebool httpd_disable_trans 1
# service httpd restart
 2019-2020 © linuxadmins all rights reserved

Facebook Twitter Vkontakte