SELinux 문제를 해결하는 방법은 무엇입니까?

SELinux 문제를 해결하는 방법은 무엇입니까?

내 SELinux 구성에 문제가 있는 것 같습니다. 비활성화 selinux를 사용하면 문제가 사라졌습니다 setenforce 0. 저는 아무런 수정 없이 기본 전략을 사용하고 있습니다.

SELinux 구성에서 정확한 문제를 어떻게 정확히 찾아낼 수 있나요?

답변1

SELinux 문제는 일반적으로 감사 로그에 기록됩니다 /var/log/audit/audit.log. auditd가 시스템에 설치되어 있지 않으면 SELinux 오류 메시지가 커널 링 버퍼에 인쇄되어 사용될 수 있습니다 dmesg.

SELinux AVC(액세스 벡터 캐시) 메시지의 형식은 다음과 같습니다. [원천]:

type=AVC msg=audit(1220706212.937:70): avc:  denied  { getattr } for  pid=1904 comm="httpd" path="/var/www/html/testfile" dev=sda5 ino=247576 scontext=unconfined_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:samba_share_t:s0  tclass=file

오류 메시지가 없을 수도 있습니다. SELinux 정책에는 다음이 포함될 수 있습니다.감사 없음특정 액세스에 대한 로깅을 억제하는 규칙입니다.탕타감사규칙은 다음과 같은 방법으로 비활성화할 수 있습니다 semanage.

semanage dontaudit off

(다음으로 전환하고 싶을 수도 있습니다.감사 없음문제를 해결한 후 규칙을 다시 활성화하여 로그 노이즈를 줄이세요. )

액세스 거부 AVC 메시지를 설명하면 가능한 원인을 좁힐 수 있습니다. 문제 해결을 위해 AVC 메시지의 유용한 필드는 다음과 같습니다.의사소통,,원천그리고표적 문맥:의사소통프로세스의 명령줄 이름을 포함합니다.(파일의 경우) 어떤 파일에 액세스하고 있는지,원천그리고목표 상황보안 라벨.

오류 메시지를 구문 분석하면 audit2why사람이 읽을 수 있는 오류 메시지 설명을 제공할 수 있습니다. 기본 정책의 일반적인 문제는 위 메시지에 표시된 것처럼 잘못된 보안 컨텍스트로 인해 발생하며 다음 두 단계로 조사할 수 있습니다.

  • 소스 및 대상 컨텍스트가 정확합니까?

    SELinux 규칙 매핑은 소스와 대상 보안 컨텍스트 간의 액세스를 허용합니다. 이러한 규칙이 없으면 액세스가 거부됩니다. 경우에 따라 컨텍스트가 올바르지 않아 액세스가 거부될 수 있습니다.

    잘못된 대상 컨텍스트

    예를 들어, 파일이 이동된 경우 파일에 잘못된 보안 컨텍스트가 있을 수 있습니다(원래 보안 컨텍스트는 유지됨). restorecon파일에 기본 보안 레이블을 적용하는 데 사용됩니다 .

    파일의 기본 위치를 사용하지 않는 경우 다음 명령을 사용하여 파일 컨텍스트 데이터베이스에 파일 레이블 규칙을 추가하고 semanage나중에 실행해야 합니다. restorecon자세한 내용은 다음 질문을 참조하세요.데몬이 기본 위치가 아닌 위치에 있는 파일을 사용할 수 있도록 SELinux를 어떻게 구성합니까?

    대상 유형이 파일이나 디렉터리(예: 네트워크 포트)가 아닌 경우 대상 컨텍스트는 를 사용할 수 있습니다 semanage.

    소스 컨텍스트가 잘못되었습니다.

    대부분의 시스템 데몬은 등과 같은 제한된 도메인(소스 컨텍스트)에서 실행됩니다 httpd_.smbd_t

    데몬이 init_t도메인에서 실행 중인 경우 해당 데몬에 대한 대상 정책이 없거나 정책 모듈이 활성화되지 않았거나 레이블이 잘못 지정된 실행 파일(진입점)이 있는 것입니다. 프로세스가 unconfined_t도메인에서 실행 중인 경우 init 시스템이 아닌 사용자가 시작한 것입니다. 두 경우 모두 두 도메인 모두 거의 제한이 없으므로 일반적으로 오류가 없습니다.

    제한된 도메인에 있는 프로세스의 오류 소스 컨텍스트는 SELinux 정책 모듈 누락으로 인해 실행 파일에 잘못된 파일 레이블이 있음을 나타냅니다.

  • 컨텍스트 수정: 정책에 따라 액세스가 허용되지 않습니다.

    액세스를 허용하려면 정책을 수정해야 합니다. 일반적인 구성은 이미 부울 옵션으로 처리되었을 수 있습니다. audit2allow그러한 부울 값이 존재하는지 확인하거나 액세스를 허용하는 데 필요한 정책 모듈을 생성하는 것이 가능합니다.

추가 읽기

관련 정보