Profile picture

[Linux] SELinux 비활성화

JaehyoJJAng2023년 06월 10일

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

Loading script...