Eu encontrei a solução - > Eu aprendi que eu preciso desativar "dontaudit" para ver todas as entradas audit.log ...
semodule --disable_dontaudit --build
Então, com isso, consegui criar um módulo SELinux que funcionou!
Eu tento isolar um problema do SELinux com o nging / munin. Eu vejo essa mensagem de erro em "/var/log/nging/error.log":
[crit] 8802#0: *55 connect() to unix:/var/run/munin/fcgi-html.sock failed (13: Permission denied) while connecting to upstream, client: 1.2.3.5, server: , request: "GET /munin/ HTTP/1.1", upstream: "fastcgi://unix:/var/run/munin/fcgi-html.sock:", host: "1.2.3.4"
Então eu tentei audit2allow para corrigir permissões de selinux:
# cat /var/log/audit/audit.log | audit2allow -M nginx-munin-socket
# semodule -i nginx-munin-socket
As mensagens audit.log sumiram, mas os erros do soquete nginx estão sempre lá. Quando eu uso "setenforce 0", então eu não tenho mensagens de erro de soquete nginx. Então eu acredito que meu problema é definitivamente selinux. Mas eu não sei como isolar o problema agora!?
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;