8장. 사용자 지정 SELinux 정책 작성
SELinux에 의해 제한된 애플리케이션을 실행하려면 사용자 지정 정책을 작성하고 사용해야 합니다.
8.1. 사용자 지정 SELinux 정책 및 관련 도구
SELinux 보안 정책은 SELinux 규칙 컬렉션입니다. 정책은 SELinux의 핵심 구성 요소이며 SELinux 사용자 공간 툴에 의해 커널로 로드됩니다. 커널은 SELinux 정책을 사용하여 시스템의 액세스 요청을 평가합니다. 기본적으로 SELinux는 로드된 정책에 지정된 규칙에 해당하는 요청을 제외하고 모든 요청을 거부합니다.
각 SELinux 정책 규칙은 프로세스와 시스템 리소스 간의 상호 작용을 설명합니다.
ALLOW apache_process apache_log:FILE READ;
이 예제 규칙은 다음과 같습니다. Apache 프로세스는 로깅 파일을 읽을 수 있습니다. 이 규칙에서 apache_process
및 apache_log
는 레이블입니다. SELinux 보안 정책은 프로세스에 레이블을 할당하고 시스템 리소스에 대한 관계를 정의합니다. 이렇게 하면 정책에서 운영 체제 엔터티를 SELinux 계층에 매핑합니다.
SELinux 레이블은 ext2
와 같은 파일 시스템의 확장 속성으로 저장됩니다. getfattr
유틸리티 또는 ls -Z
명령을 사용하여 나열할 수 있습니다. 예를 들면 다음과 같습니다.
$ ls -Z /etc/passwd
system_u:object_r:passwd_file_t:s0 /etc/passwd
system_u
는 SELinux 사용자이고, object_r
은 SELinux 역할의 예입니다. passwd_file_t
는 SELinux 도메인입니다.
selinux-policy
패키지에서 제공하는 기본 SELinux 정책에는 Red Hat Enterprise Linux 8의 일부이고 리포지토리의 패키지에서 제공하는 애플리케이션 및 데몬에 대한 규칙이 포함되어 있습니다. 이 배포 정책에 설명되지 않은 애플리케이션은 SELinux에 의해 제한되지 않습니다. 이를 변경하려면 추가 정의 및 규칙이 포함된 정책 모듈을 사용하여 정책을 수정해야 합니다.
Red Hat Enterprise Linux 8에서는 sepolicy
툴을 사용하여 설치된 SELinux 정책을 쿼리하고 새 정책 모듈을 생성할 수 있습니다. sepolicy
가 정책 모듈과 함께 생성하는 스크립트에는 항상 restorecon
유틸리티를 사용하는 명령이 포함되어 있습니다. 이 유틸리티는 파일 시스템의 선택된 부분에서 레이블 지정 문제를 해결하기 위한 기본 도구입니다.
추가 리소스
-
sepolicy(8)
및getfattr(1)
매뉴얼 페이지 - 빠른 시작 사용자 지정 SELinux 정책 지식 베이스 문서