9장. 컨테이너에 대한 SELinux 정책 생성
Red Hat Enterprise Linux는 udica
패키지를 사용하여 컨테이너에 대한 SELinux 정책을 생성하는 툴을 제공합니다. udica
를 사용하면 컨테이너가 스토리지, 장치 및 네트워크와 같은 호스트 시스템 리소스에 액세스하는 방법을 보다 효과적으로 제어하기 위한 맞춤형 보안 정책을 생성할 수 있습니다. 이를 통해 보안 위반에 대해 컨테이너 배포를 강화할 수 있으며 규정 준수의 달성 및 유지 관리를 단순화할 수 있습니다.
9.1. udica SELinux 정책 생성기 소개 링크 복사링크가 클립보드에 복사되었습니다!
사용자 지정 컨테이너의 새 SELinux 정책 생성을 단순화하기 위해 RHEL 10에서는 udica
유틸리티를 제공합니다. 이 도구를 사용하여 Linux-capabilities, 마운트 지점 및 포트 정의가 포함된 JSON(Container JavaScript Object Notation) 파일을 검사하는 정책을 생성할 수 있습니다. 결과적으로 이 툴은 지정된 SELinux CIL(Common Intermediate Language) 블록에서 상속된 규칙과 함께 검사 결과를 사용하여 생성된 규칙을 결합합니다.
udica
를 사용하여 컨테이너에 대한 SELinux 정책을 생성하는 프로세스에는 다음 세 가지 주요 부분이 있습니다.
- JSON 형식으로 컨테이너 사양 파일 구문 분석
- 첫 번째 파트의 결과에 따라 적절한 허용 규칙 검색
- 최종 SELinux 정책 생성
구문 분석 단계에서 udica
는 Linux 기능, 네트워크 포트 및 마운트 지점을 찾습니다.
결과를 기반으로 udica
는 컨테이너에서 필요한 Linux 기능을 감지하고 이러한 모든 기능을 허용하는 SELinux 규칙을 만듭니다. 컨테이너가 특정 포트에 바인딩되면 udica
는 SELinux 사용자 공간 라이브러리를 사용하여 검사된 컨테이너에서 사용하는 포트의 올바른 SELinux 레이블을 가져옵니다.
나중에 udica
는 호스트의 컨테이너 파일 시스템 네임 스페이스에 마운트되는 디렉터리를 감지합니다.
CIL의 블록 상속 기능을 사용하면 udica
에서 SELinux의 템플릿을 생성할 수 있습니다. 예를 들면 다음과 같습니다.
- 홈 디렉터리에 액세스 허용
- 로그 파일에 액세스 허용
- Xserver와의 통신을 허용합니다.
이러한 템플릿을 블록이라고 하며 최종 SELinux 정책은 블록을 병합하여 생성됩니다.