[linux] SELinux 보안 기능

SELinux은 Security-Enhanced Linux의 약자로 리눅스 시스템의 보안을 강화하는 데 사용되는 기능이다. SELinux는 Linux 커널 모듈과 보안 정책을 통해 시스템에 대한 접근 제어 및 권한 부여를 관리한다.

SELinux의 주요 기능

  1. 강제 접근 제어: SELinux는 접근 제어 규칙을 적용하여 프로세스가 파일, 포트, 소켓 등에 접근하는 것을 허용 또는 거부한다.
  2. 관리자 정책 설정: 시스템 관리자는 SELinux 정책을 사용하여 시스템 자원에 대한 접근을 제한하고 보안을 강화할 수 있다.
  3. 다중 보안 정책 지원: SELinux는 MAC(Mandatory Access Control)을 기반으로 다양한 보안 정책을 지원한다.

SELinux 설정 및 관리

SELinux 정책은 enforcing, permissive, disabled 등의 모드로 설정할 수 있다. enforcing 모드에서는 정책을 엄격히 적용하고, permissive 모드에서는 접근을 허용하면서도 오류를 기록한다. disabled 모드는 SELinux를 비활성화한다.

SELinux 정책을 관리하기 위해서는 semanage, setsebool, getsebool 등의 명령어를 사용한다.

$ getenforce
Enforcing

$ semanage permissive -a httpd_t
$ setsebool -P httpd_can_network_connect 1
$ getsebool httpd_can_network_connect
httpd_can_network_connect --> on

SELinux의 이점

SELinux를 사용하면 시스템의 취약성을 줄이고 보안을 향상시킬 수 있다. 또한 다양한 보안 정책을 적용하여 시스템 리소스에 대한 접근을 제어할 수 있어 시스템의 안전성을 보장한다.

참고 문헌: