logrotateにSELinuxの問題があることがわかりました。なぜ私は報告されて/var/log/messages
いるのか、そして報告されないのか疑問に思います/var/log/audit/audit.log
。すべてのSELinuxの問題はaudit.logに記録されると仮定します。誰でも理由を説明できますか?
RHEL 8システムでこの動作が発生しました。メッセージ内のアイテムを見つけます。
Nov 22 03:23:14 itsrv2489 setroubleshoot[2468163]: SELinux is preventing logrotate from read access on the directory /var/www/html/g6. For complete SELinux messages run: sealert -l 2c99b2ca-3bf0-486d-b1c3-54bc6e87105e
Nov 22 03:23:14 itsrv2489 platform-python[2468163]: SELinux is preventing logrotate from read access on the directory /var/www/html/g6.#012#012***** Plugin catchall (100. confidence) suggests **************************#012#012If you believe that logrotate should be allowed read access on the g6 directory by default.#012Then you should report this as a bug.#012You can generate a local policy module to allow this access.#012Do#012allow this access for now by executing:#012# ausearch -c 'logrotate' --raw | audit2allow -M my-logrotate#012# semodule -X 300 -i my-logrotate.pp#012
上記の2行は私がフォーマットしたものです。
Nov 22 03:23:14 itsrv2489 setroubleshoot[2468163]: SELinux is preventing logrotate from read access on the directory /var/www/html/g6.
For complete SELinux messages run:
sealert -l 2c99b2ca-3bf0-486d-b1c3-54bc6e87105e
Nov 22 03:23:14 itsrv2489 platform-python[2468163]: SELinux is preventing logrotate from read access on the directory /var/www/html/g6.
***** Plugin catchall (100. confidence) suggests **************************
If you believe that logrotate should be allowed read access on the g6 directory by default.
Then you should report this as a bug.
You can generate a local policy module to allow this access.
allow this access for now by executing:
# ausearch -c 'logrotate' --raw | audit2allow -M my-logrotate
# semodule -X 300 -i my-logrotate.pp
通常私はそこにいるでしょう/var/log/audit/audit.log
。
修正する:最後に、audit.logがそれ自体で回転し、非常に大きいので、いくつかのレコードが削除されることがわかりました。これが、これらの監査ログファイルに「logrotate」キーワードが見つからない理由です。回転を無効にするように修正しまし/etc/audit/auditd.conf
た。
答え1
audit.log
もともとSELinux拒否メッセージを受け取りましたが、これは本当です。
ただし、表示されているメッセージはSELinux自体から直接生成されません。代わりに、setroubleshoot
SELinux監査ログメッセージを後処理し、人がより読みやすい高水準の解釈を提供するPythonツールによって記録されます。
監査ログは監査サブシステム専用です。監査ログはsetroubleshoot
監査サブシステムの実際の部分ではないため、メッセージを他の場所に記録する必要があります。だからそれは記録されます/var/log/messages
。