5장. SELinux와 관련된 문제 해결
이전에 비활성화된 시스템에서 SELinux를 활성화하거나 비표준 구성에서 서비스를 실행하려는 경우 SELinux에서 잠재적으로 차단된 상황을 해결해야 할 수 있습니다. 대부분의 경우 SELinux 거부는 잘못된 구성의 기호입니다.
5.1. SELinux 거부 식별
이 절차의 필수 단계에만 따릅니다. 대부분의 경우 1단계만 수행해야 합니다.
절차
SELinux에서 시나리오를 차단하면
/var/log/audit/audit.log
파일이 거부에 대한 자세한 정보를 확인하는 첫 번째 위치입니다. 감사 로그를 쿼리하려면ausearch
툴을 사용합니다. SELinux 결정(예: 액세스 허용 또는 허용하지 않음)은 캐시되고 이 캐시는 AVC(액세스 벡터 캐시)라고 하며 메시지 유형 매개 변수에 대해AVC
및USER_AVC
값을 사용합니다.# ausearch -m AVC,USER_AVC,SELINUX_ERR,USER_SELINUX_ERR -ts recent
일치하는 항목이 없으면 감사 데몬이 실행 중인지 확인합니다. 그렇지 않으면
auditd
를 시작한 후 거부된 시나리오를 반복하고 감사 로그를 다시 확인합니다.auditd
가 실행 중이지만ausearch
출력에 일치하는 항목이 없는 경우systemd
저널에서 제공하는 메시지를 확인합니다.# journalctl -t setroubleshoot
SELinux가 활성 상태이고 감사 데몬이 시스템에서 실행되지 않는 경우
dmesg
명령의 출력에서 특정 SELinux 메시지를 검색합니다.# dmesg | grep -i -e type=1300 -e type=1400
이전 세 번의 확인 이후에도 아무것도 찾을 수 없습니다. 이 경우
dontaudit
규칙으로 인해 AVC 거부를 음소거할 수 있습니다.dontaudit
규칙을 일시적으로 비활성화하려면 모든 거부를 허용하십시오.# semodule -DB
거부된 시나리오를 다시 실행하고 이전 단계를 사용하여 거부 메시지를 찾은 후 다음 명령을 실행하면 정책에서
dontaudit
규칙을 다시 활성화합니다.# semodule -B
4개의 이전 단계를 모두 적용하고 문제를 여전히 식별하지 않은 경우 SELinux가 실제로 시나리오를 차단하는지 고려하십시오.
허용 모드로 전환:
# setenforce 0 $ getenforce Permissive
- 시나리오를 반복합니다.
문제가 계속 발생하는 경우 SELinux와는 다른 것이 시나리오를 차단하는 것입니다.