我对 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
答案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 ***
消息,但我们有一个点击此处进行问答已经
运行您提供的文本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 启动。这是因为较早的(现在允许的)拒绝不再掩盖较晚的拒绝。每次只需重复上述过程即可。