我尝试使用 nging/munin 隔离 SELinux 问题。我在“/var/log/nging/error.log”中看到该错误消息:
[crit] 8802#0:*55 connect() 到 unix:/var/run/munin/fcgi-html.sock 失败(13:权限被拒绝)连接到上游,客户端:1.2.3.5,服务器:,请求:“GET /munin/HTTP/1.1”,上游:“fastcgi://unix:/var/run/munin/fcgi-html.sock:”,主机:“1.2.3.4”
然后我尝试 audit2allow 来修复 selinux 权限:
# cat /var/log/audit/audit.log | audit2allow -M nginx-munin-socket
# semodule -i nginx-munin-socket
audit.log 消息消失了,但 nginx 套接字错误始终存在。当我使用“setenforce 0”时,没有 nginx 套接字错误消息。所以我相信我的问题肯定是 selinux。但我现在不知道如何隔离问题!?
nginx-munin-socket.te
module nginx-munin-socket 1.0;
require {
type httpd_t;
type init_t;
type munin_var_run_t;
class sock_file write;
class unix_stream_socket connectto;
}
#============= httpd_t ==============
allow httpd_t init_t:unix_stream_socket connectto;
allow httpd_t munin_var_run_t:sock_file write;
答案1
我找到了解决方案->我了解到我需要禁用“dontaudit”才能查看所有audit.log条目...
semodule --disable_dontaudit --build
因此,我能够创建一个可以工作的 SELinux 模块!