У меня проблема с SELinux. setroubleshoot
предложил включить mypol.pp
с участием semodule -i mypol.pp
так что apache мог работать.
после запуска предложенной команды я продолжаю получать:
type=AVC msg=audit(1388119964.806:11): avc: denied { execute } for pid=2174 comm="httpd" path="/etc/httpd/lib/libaprutil-1.so.0.5.3" dev=md0 ino=2228931 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:httpd_config_t:s0 tclass=file
**** Invalid AVC allowed in current policy ***
type=AVC msg=audit(1388120085.792:29): avc: denied { execute } for pid=2298 comm="httpd" path="/etc/httpd/lib/libaprutil-1.so.0.5.3" dev=md0 ino=2228931 scontext=unconfined_u:system_r:httpd_t:s0 tcontext=system_u:object_r:httpd_config_t:s0 tclass=file
**** Invalid AVC allowed in current policy ***
type=AVC msg=audit(1388120159.57:37): avc: denied { execute } for pid=2330 comm="httpd" path="/etc/httpd/lib/libaprutil-1.so.0.5.3" dev=md0 ino=2228931 scontext=unconfined_u:system_r:httpd_t:s0 tcontext=system_u:object_r:httpd_config_t:s0 tclass=file
**** Invalid AVC allowed in current policy ***
type=AVC msg=audit(1388121088.955:65): avc: denied { name_connect } for pid=2331 comm="httpd" dest=8080 scontext=unconfined_u:system_r:httpd_t:s0 tcontext=system_u:object_r:http_cache_port_t:s0 tclass=tcp_socket
**** Invalid AVC allowed in current policy ***
found 0 alerts in /var/log/audit/audit.log
Ниже показано, что у вас проблема с перемаркировкой.
type=AVC msg=audit(1388119964.806:11): avc: denied { execute } for pid=2174 comm="httpd" path="/etc/httpd/lib/libaprutil-1.so.0.5.3" dev=md0 ino=2228931 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:httpd_config_t:s0 tclass=file
Является /etc/httpd/lib
символическая ссылка на другое место? Обычно вы не помещаете сюда свои библиотеки, но только как символическую ссылку. Если так работает restorecon -Rv /usr/lib{,64}
здесь может быть полезно.
Чтобы вторая проблема, указанная ниже, работала, вам необходимо убедиться, что SELinux знает, какого поведения вы ожидаете от службы httpd.
type=AVC msg=audit(1388121088.955:65): avc: denied { name_connect } for pid=2331 comm="httpd" dest=8080 scontext=unconfined_u:system_r:httpd_t:s0 tcontext=system_u:object_r:http_cache_port_t:s0 tclass=tcp_socket
Включите логическое значение httpd_can_network_relay
бегом setsebool -P httpd_can_network_relay 1
.
Я не знаю о **** Invalid AVC allowed in current policy ***
сообщение, но у нас есть Вопросы и ответы об этом здесь уже
Запуск предоставленного вами текста audit2allow предлагает
#============= httpd_t ==============
allow httpd_t http_cache_port_t:tcp_socket name_connect;
allow httpd_t httpd_config_t:file execute;
так что вы можете попробовать использовать grep, чтобы вытащить соответствующие сообщения об отказе AVC во временный файл, а затем передать его в audit2allow
grep denied: audit.log | grep httpd >temp.log
cat temp.log | audit2allow -M myHTTPD
******************** IMPORTANT ***********************
To make this policy package active, execute:
semodule -i myHTTPD.pp
После установки myHTTPD.pp вы все еще можете обнаружить, что SElinux останавливает запуск httpd. Это связано с тем, что более ранние (теперь разрешенные) отказы больше не маскируют более поздние. Просто повторяйте описанный выше процесс каждый раз.