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
위의 두 줄은 내가 포맷한 것입니다.
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
다음날 audit.log에서 "logrotate"를 찾을 수 있었습니다(하루에 한 번 cron 작업에 의해 트리거됨).
답변1
audit.log
원래 SELinux 거부 메시지를 받았는데 이는 사실입니다.
그러나 보고 있는 메시지는 SELinux 자체에서 직접 생성되지 않습니다. 대신, setroubleshoot
SELinux 감사 로그 메시지를 사후 처리하고 사람이 더 읽기 쉬운 상위 수준 해석을 제공하는 Python 도구에 의해 기록 됩니다 .
감사 로그는 감사 하위 시스템 전용입니다. 감사 로그는 setroubleshoot
감사 하위 시스템의 실제 부분이 아니기 때문에 메시지를 다른 곳에 기록해야 합니다. 그래서 그것은 기록될 것입니다 /var/log/messages
.