5.2. SELinux 거부 메시지 분석
SELinux 가 시나리오를 차단하고 있음을 확인한 후 수정 사항을 선택하기 전에 근본 원인을 분석해야 할 수 있습니다.
사전 요구 사항
-
policycoreutils-python-utils
및setroubleshoot-server
패키지가 시스템에 설치됩니다.
절차
sealert
명령을 사용하여 기록된 거부에 대한 세부 정보를 나열합니다. 예를 들면 다음과 같습니다.$ sealert -l "*" SELinux is preventing /usr/bin/passwd from write access on the file /root/test. ***** Plugin leaks (86.2 confidence) suggests ***************************** If you want to ignore passwd trying to write access the test file, because you believe it should not need this access. Then you should report this as a bug. You can generate a local policy module to dontaudit this access. Do # ausearch -x /usr/bin/passwd --raw | audit2allow -D -M my-passwd # semodule -X 300 -i my-passwd.pp ***** Plugin catchall (14.7 confidence) suggests ************************** ... Raw Audit Messages type=AVC msg=audit(1553609555.619:127): avc: denied { write } for pid=4097 comm="passwd" path="/root/test" dev="dm-0" ino=17142697 scontext=unconfined_u:unconfined_r:passwd_t:s0-s0:c0.c1023 tcontext=unconfined_u:object_r:admin_home_t:s0 tclass=file permissive=0 ... Hash: passwd,passwd_t,admin_home_t,file,write
이전 단계에서 얻은 출력에 명확한 제안이 포함되지 않은 경우:
전체 경로 감사를 활성화하여 액세스한 오브젝트의 전체 경로를 확인하고 추가 Linux 감사 이벤트 필드를 표시합니다.
# auditctl -w /etc/shadow -p w -k shadow-write
setroubleshoot
캐시를 지웁니다.# rm -f /var/lib/setroubleshoot/setroubleshoot.xml
- 문제를 재현합니다.
1단계 반복.
프로세스를 완료한 후 전체 경로 감사를 비활성화합니다.
# auditctl -W /etc/shadow -p w -k shadow-write
-
sealert
가catchall
제안만 반환하거나audit2allow
도구를 사용하여 새 규칙을 추가하는 것을 제안하는 경우, 감사 로그의 SELinux 거부에 나열된 예제와 문제와 일치하십시오.
추가 리소스
-
시스템의
sealert(8)
도움말 페이지