При настройке Web сервера Apache на Cent OS версии 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.

SELINUXTYPE=targeted

 

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

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

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

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

[ekzorchik@server ~]$ sudo reboot

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

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

 

От ekzorchik

Всем хорошего дня, меня зовут Александр. Я под ником - ekzorchik, являюсь автором всех написанных, разобранных заметок. Большинство вещей с которыми мне приходиться разбираться, как на работе, так и дома выложены на моем блоге в виде пошаговых инструкции. По сути блог - это шпаргалка онлайн. Каждая новая работа где мне случалось работать вносила новые знания и нюансы работы и соответственно я расписываю как сделать/решить ту или иную задачу. Это очень помогает. Когда сам разбираешь задачу, стараешься ее приподнести в виде структурированной заметки чтобы было все наглядно и просто, то процесс усвоения идет в гору. Также прошу на https://win.ekzorchik.ru https://lin.ekzorchik.ru https://net.ekzorchik.ru https://voip.ekzorchik.ru https;//home.ekzorchik.ru