5장. SELinux 관련 문제 해결
이전에 비활성화되었거나 비표준 구성에서 서비스를 실행하는 시스템에서 SELinux를 활성화하려는 경우 SELinux에서 잠재적으로 차단하는 상황을 해결해야 할 수 있습니다. 대부분의 경우 SELinux 거부는 잘못된 구성의 신호입니다.
5.1. SELinux 거부 확인
이 절차의 필요한 단계만 따릅니다. 대부분의 경우 1단계를 수행해야 합니다.
절차
SELinux에서 시나리오를 차단하면
/var/log/audit/audit.log
파일이 거부에 대한 자세한 정보를 확인하는 첫 번째 위치입니다. 감사 로그를 쿼리하려면ausearch
툴을 사용합니다. 액세스 허용 또는 허용과 같은 SELinux 의사 결정이 캐시되고 이 캐시를 AVC(Access Vector Cache)로 알려져 있으므로 메시지 유형 매개변수에AVC
및USER_AVC
값을 사용합니다.# ausearch -m AVC,USER_AVC,SELINUX_ERR,USER_SELINUX_ERR -ts recent
일치하는 항목이 없으면 감사 데몬이 실행 중인지 확인합니다. 그렇지 않으면
auditd
를 시작한 후 거부된 시나리오를 반복하고 감사 로그를 다시 확인합니다.auditd
가 실행 중인 경우ausearch
의 출력에 일치하는 항목이 없는 경우systemd
journal에서 제공하는 메시지를 확인합니다.# 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가 시나리오를 차단하는 것과 다른 문제가 있습니다.