SELinux
SELinux(Security Enhanced Linux)는 관리자와 사용자가 액세스 제어를 더 많이 제어할 수 있는 Linux 커널 보안 모듈이다.
SELinux 정책 규칙에 따라 액세스가 가능하다.
파일을 여는 프로세스와 같은 액세스를 명시적으로 허용하는 SELinux 정책 규칙이 없으면 액세스가 거부된다.
SELinux에는 다음과 같은 세 가지 모드가 존재한다.
Enforcing
: SELinux를 사용하면 SELinux 정책 규칙에 따라 액세스 가능Permissive
: SELinux는 시행 모드에서 실행 중인 경우 거부되었을 작업만 기록함Disabled
: 로드된 SELinux 정책이 없음
기본적으로 CentOS 7은 SELinux가 사용 가능하고 디폴트가 Enforcing(적용)모드이다.
기본적으로 SELinux를 적용 모드로 유지하는 것이 보안에 좋지만 경우에 따라 허용 모드로 설정하거나 완전히 비활성화(Disabled)해야 할 수도 있다.
SELinux의 경우 현업에서도 통상적으로 꺼놓는다고 한다.
SELinux 상태 확인
현재 서버에서 SELinux의 상태 및 정책을 보려면 sestatus
명령을 사용한다.
$ sestatus
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: enforcing
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Memory protection checking: actual (secure)
Max kernel policy version: 33
SELinux 비활성화
다음 명령을 사용하여 일시적으로 SELinux 모드를 'targeted'에서 'permission'으로 변경할 수 있다.
$ sudo setenforce 0
그러나 위 명령은 현재 런타임 세션에만 유효하다.
시스템에서 SELinux를 영구적으로 비활성화하려면 다음 명령어를 수행한다.
$ sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
/etc/selinux/config 파일을 열고 SELinux mod를 disabled로 설정
시스템 재부팅
$ sudo shutdown -r now
변경사항 확인
$ sestatus