명령어/Linux

[RHEL] audit2why SELinux 거부 원인 설명

jykim23 2026. 7. 17. 18:55
반응형

부제: 왜 막혔는지, 불린인지 정책 부재인지 사람 말로 풀어 준다

ausearch -m avc -ts recent | audit2why    # 최근 거부의 원인 분석
audit2why -a                               # 감사 로그 전체를 분석
    Was caused by:
    The boolean httpd_read_user_content was set incorrectly.
    Description:
    Allow httpd to read user content

    Allow access by executing:
    # setsebool -P httpd_read_user_content 1

audit2whyaudit2allow와 같은 뿌리를 공유하지만 목적이 다르다. audit2allow가 "허용하려면 이 규칙이 필요하다"를 뽑아 준다면, audit2why는 "왜 막혔는가"를 설명한다. 위 출력처럼 원인이 불린 값이면 어떤 불린을 어떻게 켜면 되는지 명령까지 알려 준다. 원인이 정책에 규칙이 아예 없어서라면 그렇게 말해 준다. SELinux 문제를 마주쳤을 때 가장 먼저 돌려 보면 좋은 도구다. 규칙부터 만들기 전에 원인을 알면 불린 토글 하나로 끝날 일을 커스텀 모듈로 키우는 실수를 막는다. 로그가 없으면 Nothing to do만 나온다.

이렇게도 쓴다

부팅 이후 쌓인 거부만 분석한다(-b).

audit2why -b

 

특정 로그 파일을 직접 입력으로 준다(-i).

audit2why -i /var/log/audit/audit.log

 

오늘 발생한 거부만 골라 원인을 본다(조합).

ausearch -m avc -ts today | audit2why

 

커널 dmesg 버퍼의 거부를 분석한다(-d).

audit2why -d

 

원인 분석과 규칙 생성을 나란히 비교한다(조합).

ausearch -m avc -ts recent | tee /tmp/avc | audit2why; audit2allow -i /tmp/avc
반응형