47. List and Identify SELinux File and Process Contexts
개요
SELinux는 파일과 프로세스에 보안 컨텍스트를 통해 세밀한 접근 제어를 적용하여 Linux 보안을 강화합니다. 전통적인 파일 권한이 기본적인 제한을 제공하는 반면, "SELinux는 고도로 세밀한 접근 제어를 가능하게 하는 고급 보안 컨텍스트를 도입하여 이 격차를 해소합니다."
SELinux 보안 컨텍스트 구성요소
일반적인 SELinux 컨텍스트 레이블에는 4가지 요소가 포함됩니다:
- SELinux 사용 자 (예:
unconfined_u) - 역할(Role) (예:
object_r) - 타입(Type) (예:
user_home_t) - 레벨(Level) (예:
s0)
예시: unconfined_u:object_r:user_home_t:s0
의사결정 프로세스
SELinux는 순차적 검증을 통해 접근을 강제합니다:
- 사용자 매핑 – Linux 로그인 이름과 다를 수 있는 SELinux 사용자 할당 확인
- 역할 검증 – 사용자가 특정 역할을 맡을 수 있는지 확인
- 타입 기반 접근 제어 – 할당된 타입을 기반으로 가장 세밀한 보안 제한 적용
- 보안 레벨 – 등급 기반 조직을 위한 다중 레벨 보안 지원
SELinux 컨텍스트 확인
파일 컨텍스트: ls -lZ로 표준 권한과 함께 보안 레이블 표시
ls -lZ /usr/sbin/sshd
프로세스 컨텍스트: ps axZ로 프로세스 보안 컨텍스트 확인
ps axZ | grep sshd
사용자 컨텍스트: id -Z로 현재 SELinux 사용자, 역할, 타입 확인
id -Z
강제 상태 확인
getenforce로 SELinux 운영 모드 확인:
getenforce
| 모드 | 설명 |
|---|---|
| Enforcing | 미승인 작업을 적극적으로 차단 |
| Permissive | 차단 없이 위반 사항을 로깅 |
| Disabled | SELinux 비활성화 |