Как отключить SELinux на Cent OS 6.4

Posted by

При настройке Web сервера Apache на версии 6.4 понадобилось изменить номер порта, на котором будет работать служба. С этим справился, т.к. ничего сложного нет. Но когда сделал перезапуск службы httpd, получил массу негодования в консоли. Поэтому ниже заметка, как и что, сделать, чтобы такого больше не возникало.

[ekzorchik@server ~]$ sudo service httpd restart

Stopping httpd:                                            [FAILED]

Starting httpd: (13)Permission denied: make_sock: could not bind to address [::]:81

(13)Permission denied: make_sock: could not bind to address 0.0.0.0:81

no listening sockets available, shutting down

Unable to open logs [FAILED]

Посмотрим, какие записи есть в журналах систему по этому поводу:

[ekzorchik@server ~]$ sudo bash -c «cat  /var/log/audit/audit.log» | grep ‘sock’

type=AVC msg=audit(1384174680.400:329): avc:  denied  { name_bind } for  pid=2622 comm=»httpd» src=81 scontext=unconfined_u:system_r:httpd_t:s0 tcontext=system_u:object_r:reserved_port_t:s0 tclass=tcp_socket

type=AVC msg=audit(1384174680.401:330): avc:  denied  { name_bind } for  pid=2622 comm=»httpd» src=81 scontext=unconfined_u:system_r:httpd_t:s0 tcontext=system_u:object_r:reserved_port_t:s0 tclass=tcp_socket

type=AVC msg=audit(1384174831.939:341): avc:  denied  { name_bind } for  pid=2639 comm=»httpd» src=81 scontext=unconfined_u:system_r:httpd_t:s0 tcontext=system_u:object_r:reserved_port_t:s0 tclass=tcp_socket

type=AVC msg=audit(1384174831.939:342): avc:  denied  { name_bind } for  pid=2639 comm=»httpd» src=81 scontext=unconfined_u:system_r:httpd_t:s0 tcontext=system_u:object_r:reserved_port_t:s0 tclass=tcp_socket

Решение: нужно отключить использование SELinux в системе, либо правильно настроить( я придерживаюсь пока первого варианта, т.е. отключения)

Для справки: SELinux (Security-Enhanced Linux, переводится как Linux с улучшенной безопасностью) это реализация системы принудительного контроля доступа, которая может работать совместно с классической системой контроля доступа, которая используется в Linux. С помощью SELinux можно задавать правила обращения пользователей или программ объектам системы, таким как файлы и устройства. Таким образом, можно ограничить возможности доступа программ, прописав возможности их поведения в виде политики, а операционная система с помощью SELinux обеспечит соблюдение этих политик.

Однако использование SELinux требует достаточно сложных настроек и, будучи включенной по-умолчанию, SELinux без дополнительной настройки может блокировать действия запускаемых вами программ и служб. Для большинства пользователей сложность и проблемы при настройке SELinux могут стать решающим фактором, даже принимая во внимание все преимущества от его использования. Поэтому, в том случае, если вы считаете, что классической системы контроля доступа в вашем случае достаточно для облечения конфигурирования программ и служб в CentOS 6 можно отключить SELinux.

Отобразить текущий уровень SELinux в системе:

[ekzorchik@server ~]$ sudo bash -c «cat /etc/sysconfig/selinux»

[sudo] password for ekzorchik:

# 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.

 

Для отключения SELinux в CentOS 6:

[ekzorchik@server ~]$ sudo nano /etc/selinux/config

И замените значение переменной SELINUX c enforcing на disabled:

После изменения настроек перезагружаем систему:

[ekzorchik@server ~]$ sudo reboot

Теперь перезапуск служб с измененными параметрами не будет сопровождаться ошибками блокировки.

Вот собственно и всё, с уважением ekzorchik.

 

Leave a Reply

Ваш e-mail не будет опубликован. Обязательные поля помечены *

десять + два =