我的 SELinux 有問題。setroubleshoot
建議啟用mypol.pp
withsemodule -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
答案1
下面的內容向我表明您遇到了重新標記問題。
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
。
答案2
我不知道這個
**** Invalid AVC allowed in current policy ***
消息,但我們有一個關於它的問答在這裡已經
運行您提供的文本審核2允許建議
#============= 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 啟動。這是因為早期(現在允許)的否認不再掩蓋後來的否認。每次只需重複上述過程即可。