보안 컨텍스트


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 옵션을 주고 실행하면 객체의 보안 컨텍스트를 조회할 수 있습니다.