Моя система работает под управлением CentOS 6.4 с apache2.2.15. SElinux работает принудительно, и я пытаюсь подключиться к локальному экземпляру redis через мое приложение python / wsgi. Я получаю ошибку 13, в доступе отказано. Я мог бы исправить это с помощью команды:
setsebool -P httpd_can_network_connect
Однако я не хочу, чтобы httpd мог подключаться ко всем портам TCP. Как я могу указать, к каким портам / сетям httpd разрешено подключаться? Если бы я мог сделать модуль, позволяющий httpd подключаться к порту 6379 (redis) или любому tcp на 127.0.0.1, это было бы предпочтительнее. Не уверен, почему моя паранойя так сильна в этом, но эй ...
Кто-нибудь знает?
apache-2.2
redhat
selinux
redis
savagecitizen
источник
источник
Ответы:
По умолчанию политика SELinux разрешает сервисам доступ только к распознанным портам, связанным с этими сервисами:
- добавить порт Redis (6379) в политику SELinux
Вы также можете установить
setroubleshoot-server
RPM и запустить:sealert -a /var/log/audit/audit.log
- он даст вам хороший отчет с полезными советами (включая команду выше).PHP скрипт для проверки соединения:
источник
http_port_t
терпит неудачу , потому что порт 25 уже используется (для другого типа SELinux)ValueError: Port tcp/25 already defined
. Правильный способ разрешить httpd подключаться к порту 25 - установить соответствующую логическую политику SELinux:setsebool -P httpd_can_sendmail on
(см.getseebool -a
). (продолжение в части 2)sealert -b; sealert -a /var/log/audit/audit.log; grep perl /var/log/audit/audit.log | audit2allow -M mypol; semodule -v -i mypol.pp
. Тогда это работает!getsebool -a
команде (на один меньшеe
).semanage port -m -t http_port_t -p tcp 25
смотритеsemanage port --help
setsebool -P httpd_can_connect_zabbix true
Вам может понадобиться использовать
Если semanage отсутствует, добавьте пакет policycoreutils-python
источник
semanage
может бытьpolicycoreutils-python-utils
сейчас (по крайней мере, на Fedora 23)semanage
в себяpolicycoreutils-python
.Вы можете временно перевести selinux в разрешающий режим и позволить httpd подключиться к redis, а затем сгенерировать и построить модуль пользовательской политики с помощью audit2allow.
источник