개념
SELinux(Security-Enhanced Linux)는 관리자가 시스템 액세스 권한을 효과적으로 제어할 수 있게 하는 Linux® 시스템용 보안 아키텍처입니다. 이는 원래 미국 국가안보국(NSA)이 LSM(Linux Security Module)을 사용하는 Linux 커널에 대한 일련의 패치로 개발한 것입니다.
SELinux는 2000년에 오픈소스 커뮤니티에 릴리스되어 2003년에 업스트림 Linux 커널로 통합되었습니다.
DAC(Discretionary Access Control)와 MAC(Mandatory Access Control) 비교
전통적으로 Linux와 UNIX 시스템은 DAC를 사용해왔습니다. SELinux는 Linux용 MAC 시스템의 예입니다.
DAC의 경우에는 파일과 프로세스에 소유자가 있습니다. 사용자 또는 그룹이 파일을 소유하도록 할 수 있으며 누구든지 소유자가 될 수 있습니다. 사용자는 소유한 파일의 권한을 변경할 수 있습니다.
루트 사용자는 DAC 시스템으로 전체 액세스 제어 권한을 갖습니다. 루트 액세스 권한이 있는 경우, 다른 모든 사용자의 파일에 액세스하거나 시스템에서 원하는 작업을 모두 수행할 수 있습니다.
그러나 SELinux와 같은 MAC 시스템에서는 액세스 관련 관리 정책이 설정되어 있습니다. 홈 디렉터리의 DAC 설정이 변경되더라도 다른 사용자나 프로세스가 디렉터리에 액세스하지 못하도록 하는 SELinux 정책을 통해 시스템을 안전하게 보호할 수 있습니다.
SELinux 정책을 사용하여 사용자를 특정할 수 있을 뿐만 아니라 수많은 프로세스를 처리할 수 있습니다. SELinux로 변경을 수행하여 사용자, 파일, 디렉토리 등 액세스를 제한할 수 있습니다.
SELinux 오류를 처리하는 방법
SELinux에서 오류가 발생하는 경우 해결해야 하는 사항이 있습니다. 다음의 4가지 일반적인 문제 중 하나일 수 있습니다.
- 레이블이 잘못된 경우: 레이블이 올바르지 않은 경우 툴을 사용하여 레이블을 수정할 수 있습니다.
- 정책 수정이 필요한 경우: 변경 사항에 대해 SELinux에 알려야 하거나 정책을 조정해야 할 수도 있습니다. 부울 또는 정책 모듈을 사용하여 이를 해결할 수 있습니다.
- 정책에 버그가 있는 경우: 정책에 해결해야 하는 버그가 존재할 수 있습니다.
- 시스템이 침입을 당한 경우: 대부분의 경우 SELinux가 시스템을 보호할 수는 있으나 시스템 손상이 일어날 가능성은 여전히 존재합니다. 이런 상황이 의심되는 경우 즉시 조치를 취해야 합니다.
부울이란?
부울(boolean)이란 SELinux의 기능에 대한 활성화/비활성화 설정입니다. SELinux 기능을 켜거나 끌 수 있는 수백 가지 설정이 있으며 이 중 다수는 이미 사전 정의되어 있습니다. getsebool -a를 실행하여 시스템에 이미 설정된 부울을 찾을 수 있습니다.
SELinux 솔루션 가이드
Red Hat Enterprise Linux는 글로벌 업계를 선도하는 오픈소스 Linux 플랫폼으로서 리스크를 완화하고 보안 구성 및 정책을 강화하며 컴플라이언스 전략을 간소화합니다.
Red Hat Enterprise Linux 시스템 롤은 일관된 워크플로우와 수동 작업 실행 간소화를 보장하는 Ansible® 롤을 지원하는 컬렉션입니다. 시스템 롤은 팀이 보안 워크플로우를 자동화하고, 시의 적절하고 규모에 적합하게 최소한의 리소스로 유지 관리하며, 거버넌스 및 규정 준수 요구 사항을 간소화하도록 지원합니다. SELinux 시스템 롤을 사용하면 SELinux의 배포 및 관리를 자동화할 수 있습니다.
- 기능과 특징은 다음과 같습니다. 강제 모드 또는 허용 모드로 SELinux를 활성화하여 제어의 일관성을 보장합니다.
- 요구 사항을 충족하도록 SELinux 정책 부울(booleans), 파일 컨텍스트, 포트 및 로그인을 사용자 정의할 수 있습니다.
- 시스템 롤을 활용하여 지정된 파일 또는 디렉터리의 파일 컨텍스트를 조정합니다.