Centos
SELinux:沒有審計錯誤但 nginx 權限錯誤
我嘗試用 nging/munin 隔離 SELinux 問題。我在“/var/log/nging/error.log”中看到該錯誤消息:
$$ crit $$8802#0: *55 connect() to 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;
我找到了解決方案 -> 我了解到我需要禁用“dontaudit”才能查看所有 audit.log 條目……
semodule --disable_dontaudit --build
因此,我能夠創建一個有效的 SELinux 模組!