Computer >> 컴퓨터 >  >> 시스템 >> Linux

SELinux(보안 강화 리눅스)란? 핵심 개념부터 3가지 동작 모드까지 총정리

SELinux(Security-Enhanced Linux, 보안 강화 리눅스)는 리눅스 보안 커널의 핵심 구성 요소로, 서버에서 보호 에이전트처럼 작동합니다. SELinux는 시스템 관리자가 설정한 규칙과 정책에 따라 사용자의 권한을 제한하는 강제 접근 제어(MAC, Mandatory Access Control) 방식에 기반합니다.

MAC과 DAC의 차이점

MAC은 일반적인 임의 접근 제어(DAC, Discretionary Access Control)보다 한 단계 높은 수준의 접근 제어 방식입니다. DAC에서는 파일 소유자가 직접 권한을 지정하는 반면, MAC은 관리자가 사전에 승인한 파일만 처리하도록 제한하기 때문에 보안 위협으로부터 시스템을 훨씬 효과적으로 보호할 수 있습니다.

SELinux의 탄생 배경

SELinux는 처음에 레드햇(Red Hat)과 미국 국가안보국(NSA)이 협력하여 공동으로 개발·공개했습니다. 새로운 리눅스 배포판이 출시될 때마다 주기적인 업데이트와 기능 추가가 이루어지고 있으며, SELinux 커널은 정책(policy)과 의사 결정(decision)을 커널 내부에서 분리하여 다층적인 보호 수준을 제공하고 전체 시스템이 한 번에 뚫리는 치명적인 보안 사고를 예방합니다.

최소 권한 모델

SELinux는 최소 권한(Least-Privilege) 모델로 작동합니다. 즉, 관리자가 특정 작업을 허용하는 정책을 명시적으로 작성하지 않는 한, 어떠한 접근도 허용되지 않습니다. 이를 통해 불필요한 권한 남용을 원천적으로 차단할 수 있습니다.

SELinux의 3가지 동작 모드

SELinux에는 세 가지 동작 모드가 있습니다.

  • Enforcing(강제) 모드: SELinux 설치 시 기본값으로 설정되는 모드입니다. 시스템에 보안 정책을 강제로 적용하며, 정책 위반 시 접근을 차단하고 해당 활동을 로그로 기록합니다.
  • Permissive(허용) 모드: SELinux 문제를 해결할 때 가장 많이 사용되는 모드입니다. 보안 정책은 활성화되지만 실제로 강제 적용되지는 않으며, 정책에 어긋나는 동작이 발생하면 차단 대신 경고를 표시하고 시스템 관리자에게 로그를 남깁니다.
  • Disabled(비활성화) 모드: SELinux가 완전히 꺼진 상태로, 보안 정책이 서버를 더 이상 보호하지 않습니다.