보안 컨텍스트
Security Context
SELinux 는 모든 프로세스와 객체마다 보안 컨텍스트(Security Context), 또는 보안 레이블(Security Label) 이라고 부르는 정보를 부여하여 관리하고 있습니다. 이 정보는 접근 권한을 확인하는데 사용되고 있으며 SELinux 를 이해하기 위한 핵심 요소로 다음 4가지 구성 요소로 이루어져 있습니다.
요소 | 설명 |
---|---|
사용자 | 시스템의 사용자와는 별도의 SELinux 사용자로 역할이나 레벨과 연계하여 접근 권한을 관리하는데 사용. |
역할(Role) | 하나 혹은 그 이상의 타입과 연결되어 SELinux 의 사용자의 접근을 허용할 지 결정하는데 사용. |
타입(Type) | Type Enforcement의 속성중 하나로 프로세스의 도메인이나 파일의 타입을 지정하고 이를 기반으로 접근 통제를 수행. |
레이블(Label) | 레이블은 MLS(Multi Level System)에 필요하며 강제 접근 통제보다 더 강력한 보안이 필요할 때 사용하는 기능으로 |
보안 컨텍스트 구성 요소
보안 컨텍스트에서 가장 중요하고 꼭 알아야 할 부분은 타입이라는 레이블(식별자)로 SELinux 는 모든 파일이나 디렉터리등의 객체와 httpd 프로세스등의 주체에 대해 레이블을 붙여서 구분하고 있으며 객체에 붙일 경우 타입, 주체에 붙일 경우 도메인(Domain) 이라고 부릅니다.
ls, ps, cp 등 정보를 조회하거나 파일을 다루는 명령어는 SELinux 를 위해 -Z(--context) 옵션이 추가 되었으므로 ls 에 -Z 옵션을 주고 실행하면 객체의 보안 컨텍스트를 조회할 수 있습니다.