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