SELinux 관리

SELinux 관리를 학습합니다. 이 모듈은 SELinux 모드, 파일 컨텍스트, 컨텍스트 복원, 부울 (Boolean) 관리, 거부 (Denial) 문제 해결을 다룹니다. 실습 랩과 실제 시나리오 기반 과제를 통해 이러한 필수 Linux 기술을 숙달하게 됩니다.

DevOps EngineerLinuxDevOps

💡 이 튜토리얼은 영어로 번역되었습니다. 원본을 보려면 영어로 전환

소개

SELinux는 전통적인 Linux 소유권과 권한 위에 정책 기반 제어를 추가합니다. 이 실습 과정에서는 SELinux 자체를 문제로 치부하지 않고 정책 상태를 검사하고, 흔한 불일치를 찾아내며, 서비스 거부 원인을 조사하는 방법을 배웁니다.

Enforcing과 Permissive 모드를 비교하고, 파일 레이블을 추적하며, 잘못된 컨텍스트를 복구하고, 정책이 제공하는 불리언을 활성화하며, AVC 감사 증거를 읽습니다. 마지막 챌린지에서는 Nginx가 8088 포트에 바인딩하지 못하는 이유를 진단하고, 거부 기록에서 범위를 좁힌 정책 모듈을 생성·설치한 뒤 서비스 응답을 검증합니다.

학습 내용

  • SELinux 상태를 검사하고 런타임 모드와 부팅 시 구성을 구분하기
  • 파일 보안 컨텍스트를 읽고 정책에 사용되는 type 필드 식별하기
  • 이동된 파일이 새 위치에 부적합한 레이블을 유지할 수 있는 이유 설명하기
  • 현재 컨텍스트와 예상 컨텍스트를 비교하고 restorecon으로 개별 또는 재귀적 불일치 복구하기
  • 서비스별 SELinux 불리언을 찾아 영구적으로 활성화하고 검증하기
  • Nginx AVC 거부를 찾고 차단된 name_bind 작업 해석하기
  • audit2allow로 거부를 설명하고 사용자 정의 정책 모듈 생성하기
  • 생성한 모듈을 설치하고 비표준 포트의 Nginx 검증하기

추천 대상

이 중급 과정은 일반 Unix 권한을 이해하고 SELinux 운영과 문제 해결을 실습으로 익히려는 Linux 관리자, DevOps 실무자, 보안 학습자를 위한 과정입니다.

선수 지식: Linux 셸, 파일과 권한, sudo, systemctl, 텍스트 편집, 포트 및 기본 웹 서비스 개념에 익숙해야 합니다. 정책 작성 경험은 필요하지 않습니다.

학습 환경: SELinux 명령, 정책 데이터, 감사 증거, Nginx 및 관리자 권한이 준비된 Linux 터미널입니다. 커널이나 컨테이너 제약으로 실제 강제 모드 전환이 불가능할 수 있으므로 일부 거부는 시뮬레이션되지만 같은 검사 및 복구 명령을 연습합니다.

자주 묻는 질문

애플리케이션 실패 시 SELinux를 끄는 방법을 배우나요?

아닙니다. Permissive 모드는 임시 진단 개념으로만 사용합니다. 범위를 좁힌 정책 변경 전에 레이블, 지원되는 불리언, 감사 로그를 먼저 검사하는 데 중점을 둡니다.

어떤 SELinux 복구 방법을 실습하나요?

정책이 정의한 파일 컨텍스트를 복원하고 httpd_can_network_connect를 영구 활성화하며 Nginx 포트 바인딩 거부에서 작은 정책 모듈을 생성하고 설치합니다. 광범위한 SELinux 정책 언어는 다루지 않습니다.

audit2allow를 모든 거부의 해결책으로 제시하나요?

아닙니다. 제안 내용을 검토하고 레이블, 불리언 또는 표준 정책 조정이 더 적절한지 판단합니다. 마지막 챌린지는 생성 모듈을 요구하며 semanage port를 이용한 포트 유형 관리 등의 대안은 실습 범위 밖입니다.

강사

labby
Labby
Labby is the LabEx teacher.