W moim systemie działa CentOS 6.4 z apache2.2.15. SElinux wymusza i próbuję połączyć się z lokalną instancją redis poprzez moją aplikację python / wsgi. Otrzymuję błąd 13, odmowa dostępu. Mogę to naprawić za pomocą polecenia:
setsebool -P httpd_can_network_connect
Jednak nie chcę, aby httpd mógł łączyć się ze wszystkimi portami TCP. Jak mogę określić, z którymi portami / sieciami httpd może się łączyć? Gdybym mógł stworzyć moduł pozwalający httpd na połączenie z portem 6379 (redis) lub dowolnym tcp na 127.0.0.1, byłoby to preferowane. Nie jestem pewien, dlaczego moja paranoja jest w tym tak silna, ale hej ...
Ktoś wie?
apache-2.2
redhat
selinux
redis
savagecitizen
źródło
źródło
Odpowiedzi:
Domyślnie polityka SELinux zezwala usługom na dostęp tylko do rozpoznanych portów powiązanych z tymi usługami:
- dodaj port Redis (6379) do polityki SELinux
Możesz także zainstalować
setroubleshoot-server
RPM i uruchomić:sealert -a /var/log/audit/audit.log
- da ci ładny raport z przydatnymi sugestiami (w tym powyższą komendą).Skrypt PHP do testowania połączenia:
źródło
http_port_t
powiodło się, ponieważ port 25 jest już używany (dla innego typu SELinux)ValueError: Port tcp/25 already defined
. Prawidłowym sposobem na zezwolenie httpd na połączenie z portem 25 jest ustawienie odpowiedniej wartości logicznej polityki SELinux na:setsebool -P httpd_can_sendmail on
(patrzgetseebool -a
). (ciąg dalszy w części 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
. To działa!getsebool -a
poleceniu (jeden mnieje
).semanage port -m -t http_port_t -p tcp 25
patrzsemanage port --help
setsebool -P httpd_can_connect_zabbix true
Może być konieczne użycie
Jeśli brakuje semanage, dodaj pakiet policycoreutils-python
źródło
semanage
może byćpolicycoreutils-python-utils
teraz (przynajmniej na Fedorze 23)semanage
wpolicycoreutils-python
.Możesz tymczasowo wprowadzić selinux w tryb zezwolenia i pozwolić httpd połączyć się z redis, a następnie wygenerować i zbudować niestandardowy moduł zasad za pomocą audit2allow
źródło