본문 바로가기

퍼블릭 클라우드

Amazon Linux 2023에서 SELinux를 비활성화하는 방법

728x90

Amazon Linux 2023에서 SELinux를 비활성화하는 방법

  • SELinux를 비활성화할 때 고려해야 할 몇 가지 추가 사항입니다.
    • SELinux를 비활성화하면 시스템의 보안이 저하될 수 있습니다.
    • SELinux를 비활성화한 후 다시 활성화하면 변경 사항을 적용하기 위해 시스템을 재부팅해야 할 수도 있습니다.
    • SELinux에 의존하는 애플리케이션을 사용하는 경우 SELinux를 비활성화한 후 제대로 작동하지 않을 수 있습니다.

테스트 환경

$ cat /etc/os-release | grep PRETTY_NAME
PRETTY_NAME="Amazon Linux 2023"

 

1. selinux config 파일 확인

cat /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.
# See also:
# https://docs.fedoraproject.org/en-US/quick-docs/getting-started-with-selinux/#getting-started-with-selinux-selinux-states-and-modes
#
# NOTE: In earlier Fedora kernel builds, SELINUX=disabled would also
# fully disable SELinux during boot. If you need a system with SELinux
# fully disabled instead of SELinux running with no policy loaded, you
# need to pass selinux=0 to the kernel command line. You can use grubby
# to persistently set the bootloader to boot with selinux=0:
#
#    grubby --update-kernel ALL --args selinux=0
#
# To revert back to SELinux enabled:
#
#    grubby --update-kernel ALL --remove-args selinux
#
SELINUX=permissive
# SELINUXTYPE= can take one of these three values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

 

2. SELinux 상태 확인

sudo sestatus
$ sudo sestatus
SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   permissive
Mode from config file:          permissive
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Memory protection checking:     actual (secure)
Max kernel policy version:      33

 

sudo getenforce
$ sudo getenforce
Permissive

 

3. SELinux 비활성화

sudo setenforce 0
  • SELinux 상태 확인
$ sudo sestatus
SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   permissive
Mode from config file:          permissive
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Memory protection checking:     actual (secure)
Max kernel policy version:      33

 

4. 변경 사항을 영구적으로 유지하며 /etc/selinux/config 파일을 수정해야 합니다.

sed -i 's/SELINUX=permissive/SELINUX=disabled/g' /etc/selinux/config
$ cat /etc/selinux/config | grep "^SELINUX="
SELINUX=disabled

 

5. 시스템을 재부팅합니다.

 

6. SELinux 비활성화 후 상태 확인

sudo sestatus
$ sudo sestatus
SELinux status:                 disabled

 

sudo getenforce
$ sudo getenforce
Disabled

 

"grubby --update-kernel ALL --args selinux=0" 명령어는 GRUB 구성 파일을 업데이트하여 SELinux를 비활성화한 상태로 커널을 부팅합니다. 이는 SELinux에 문제가 있거나 SELinux가 비활성화된 환경으로 부팅해야 하는 경우 유용합니다.

 

명령어를 사용하려면 root 또는 sudo 권한이 있어야 합니다. 필요한 권한이 있으면 터미널을 열고 다음 명령어를 입력합니다.

grubby --update-kernel ALL --args selinux=0

 

이 명령어는 모든 커널의 GRUB 구성 파일을 업데이트합니다. 특정 커널의 구성 파일만 업데이트하려면 -k 옵션을 사용하여 커널 이름을 지정할 수 있습니다. 예를 들어, kernel-5.10.0-1001.1라는 이름의 커널의 구성 파일을 업데이트하려면 다음 명령어를 사용합니다.

grubby --update-kernel kernel-5.10.0-1001.1 --args selinux=0

GRUB 구성 파일을 업데이트한 후에는 변경 사항을 적용하려면 시스템을 재부팅해야 합니다.

 

다음은 명령어에 대한 자세한 설명입니다.

 

  • grubby는 GRUB 구성 파일을 관리하는 데 사용되는 GRUB 유틸리티의 이름입니다.
  • --update-kernel은 커널의 GRUB 구성 파일을 업데이트하는 명령어입니다.
  • ALL은 명령어가 모든 커널에 적용되어야 함을 나타내는 특수 키워드입니다.
  • --args는 부팅 시 커널에 전달해야 하는 추가 인수를 지정하는 옵션입니다.
  • selinux=0은 SELinux를 비활성화하는 인수입니다.

 

참고URL

- https://docs.fedoraproject.org/en-US/quick-docs/getting-started-with-selinux/#getting-started-with-selinux-selinux-states-and-modes

 

728x90