web-dev-qa-db-ja.com

SELinux:監査エラーはありませんがnginxパーミッションエラー

Nging/muninでSELinuxの問題を切り分けようとしています。 「/var/log/nging/error.log」に次のエラーメッセージが表示されます。

[クリティカル] 8802#0:* 55アップストリームへの接続中にunix:/var/run/munin/fcgi-html.sockへのconnect()が失敗しました(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ソケットエラーは常に存在します。 「setenforce0」を使用すると、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;
2
Lutz Reinhardt

私は解決策を見つけました->すべてのaudit.logエントリを表示するには「dontaudit」を無効にする必要があることを学びました...

semodule --disable_dontaudit --build

それで、私は機能するSELinuxモジュールを作成することができました!

2
Lutz Reinhardt