SELinux: 拒绝对 pid=2174 comm="httpd" path="/etc/httpd/lib/libaprutil-1.so.0.5.3" 执行 { 执行 }

SELinux: 拒绝对 pid=2174 comm="httpd" path="/etc/httpd/lib/libaprutil-1.so.0.5.3" 执行 { 执行 }

我对 SELinux 有疑问。setroubleshoot建议启用它mypol.pp以便semodule -i mypol.ppapache 可以运行。

运行建议的命令后,我不断收到:

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 启动。这是因为较早的(现在允许的)拒绝不再掩盖较晚的拒绝。每次只需重复上述过程即可。

相关内容