Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

4.4. SELinux 상태 및 모드의 영구 변경

1.4절. “SELinux 상태 및 모드” 에서 설명한 대로 SELinux를 활성화하거나 비활성화할 수 있습니다. 활성화되는 경우 SELinux에는 강제 및 허용 모드의 두 가지 모드가 있습니다.
getenforce 또는 sestatus 명령을 사용하여 SELinux가 실행 중인 모드를 확인합니다. getenforce 명령은 Enforcing,Permissive 또는 Disabled 를 반환합니다.
sestatus 명령은 SELinux 상태 및 사용 중인 SELinux 정책을 반환합니다.
~]$ 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
Max kernel policy version:      30
참고
시스템이 허용 모드에서 SELinux를 실행하는 경우 사용자는 파일에 잘못 레이블을 지정할 수 있습니다. SELinux가 비활성화된 상태에서 생성된 파일에는 레이블이 전혀 지정되지 않습니다. 이 동작은 파일에 잘못 레이블되거나 레이블이 전혀 레이블되지 않았으므로 강제 모드로 변경할 때 문제가 발생합니다. 레이블이 잘못 지정되고 레이블이 지정되지 않은 파일의 문제가 발생하지 않도록 하려면 비활성화 상태에서 허용 또는 강제 모드로 변경할 때 파일 시스템에 자동으로 레이블이 다시 지정됩니다.

4.4.1. SELinux 활성화

활성화되면 SELinux를 강제 또는 허용 모드의 두 가지 모드 중 하나로 실행할 수 있습니다. 다음 섹션에서는 이러한 모드로 영구적으로 변경하는 방법을 보여줍니다.
이전에 비활성화한 시스템에서 SELinux를 활성화하는 동안 시스템 부팅 또는 프로세스 실패와 같은 문제를 방지하려면 다음 절차를 따르는 것이 좋습니다.
  1. 허용 모드에서 SELinux를 활성화합니다. 자세한 내용은 4.4.1.1절. “허용 모드” 의 내용을 참조하십시오.
  2. 시스템을 재부팅합니다.
  3. SELinux 거부 메시지가 있는지 확인합니다. 자세한 내용은 11.3.5절. “거부 검색 및 보기” 의 내용을 참조하십시오.
  4. 거부가 없는 경우 강제 모드로 전환합니다. 자세한 내용은 4.4.1.2절. “강제 모드” 의 내용을 참조하십시오.
SELinux를 강제 모드로 사용자 지정 애플리케이션을 실행하려면 다음 시나리오 중 하나를 선택하십시오.

4.4.1.1. 허용 모드

SELinux가 허용 모드로 실행 중이면 SELinux 정책이 적용되지 않습니다. 시스템이 작동 상태로 남아 있으며 SELinux는 작업을 거부하지 않고 AVC 메시지만 기록합니다. 그러면 문제 해결, 디버깅 및 SELinux 정책 개선에 사용할 수 있습니다. 각 AVC는 이 경우 한 번만 로깅됩니다.
모드를 허용으로 영구적으로 변경하려면 다음 절차를 따르십시오.

절차 4.2. 허용 모드로 변경

  1. 다음과 같이 /etc/selinux/config 파일을 편집합니다.
    # This file controls the state of SELinux on the system.
    # SELINUX= can take one of these three values:
    #       enforcing - SELinux security policy is enforced.
    #       permissive - SELinux prints warnings instead of enforcing.
    #       disabled - No SELinux policy is loaded.
    SELINUX=permissive
    # SELINUXTYPE= can take one of these two values:
    #       targeted - Targeted processes are protected,
    #       mls - Multi Level Security protection.
    SELINUXTYPE=targeted
  2. 시스템을 재부팅합니다.
    ~]# reboot

4.4.1.2. 강제 모드

SELinux가 강제 모드에서 실행 중인 경우 SELinux 정책을 적용하고 SELinux 정책 규칙에 따라 액세스를 거부합니다. Red Hat Enterprise Linux에서는 SELinux를 사용하여 처음 시스템을 설치할 때 강제 모드가 기본적으로 활성화됩니다.
SELinux가 비활성화된 경우 아래 절차에 따라 모드를 강제 모드로 다시 변경합니다.

절차 4.3. 강제 모드로 변경

이 절차에서는 selinux-policy-targeted,selinux- policy,libselinux,libselinux -python,libselinux-utils,policycoreutilspolicycoreutils-python 패키지가 설치되어 있다고 가정합니다. 패키지가 설치되었는지 확인하려면 다음 명령을 사용합니다.
rpm -q package_name
  1. 다음과 같이 /etc/selinux/config 파일을 편집합니다.
    # This file controls the state of SELinux on the system.
    # SELINUX= can take one of these three values:
    #       enforcing - SELinux security policy is enforced.
    #       permissive - SELinux prints warnings instead of enforcing.
    #       disabled - No SELinux policy is loaded.
    SELINUX=enforcing
    # SELINUXTYPE= can take one of these two values:
    #       targeted - Targeted processes are protected,
    #       mls - Multi Level Security protection.
    SELINUXTYPE=targeted
  2. 시스템을 재부팅합니다.
    ~]# reboot
    다음 부팅 시 SELinux는 시스템 내의 모든 파일과 디렉터리의 레이블을 다시 지정하고 SELinux가 비활성화될 때 생성된 파일과 디렉토리에 대해 SELinux 컨텍스트를 추가합니다.
참고
강제 모드로 변경한 후 SELinux는 올바르지 않거나 누락된 SELinux 정책 규칙으로 인해 일부 작업을 거부할 수 있습니다. SELinux 거부 작업을 보려면 root로 다음 명령을 입력합니다.
~]# ausearch -m AVC,USER_AVC,SELINUX_ERR -ts today
또는 setroubleshoot-server 패키지가 설치된 상태에서 root로 다음 명령을 입력합니다.
~]# grep "SELinux is preventing" /var/log/messages
SELinux에서 일부 작업을 거부하는 경우 문제 해결에 대한 정보는 11장. 문제 해결 을 참조하십시오.
모드의 일시적인 변경 사항은 1.4절. “SELinux 상태 및 모드” 에서 다룹니다.