SELinux를 사용하여 컨테이너 보호

이 페이지에서는 SELinux를 사용 설정하여 컨테이너를 보호하는 방법을 설명합니다. SELinux는 RHEL 및 CentOS에 대해 지원됩니다. 호스트 머신이 RHEL 또는 CentOS를 실행 중이고 클러스터에서 SELinux를 사용 설정하려면 모든 호스트 머신에서 SELinux를 사용 설정해야 합니다. 베어메탈용 GDCV 출시 버전 1.9.0부터 클러스터를 만들거나 업그레이드하기 전후에 SELinux를 사용 설정 또는 중지할 수 있습니다. SELinux가 호스트에서 사용 설정되면 컨테이너 런타임에 대해 사용 설정됩니다.

SELinux가 사용 설정되었는지 확인

SELinux는 기본적으로 RHEL 및 CentOS에서 사용 설정됩니다. 확인하려면 다음을 실행합니다.

$ getenforce

이 명령어는 Enforcing, Permissive, Disabled를 반환합니다. 이 명령어가 Enforcing을 반환하면 클러스터를 업그레이드하거나 만들 수 있습니다.

SELinux 사용 설정

getenforce 명령어가 Permissive를 반환하면 setenforce 명령어를 사용하여 Enforcing 모드로 전환할 수 있습니다. setenforce를 사용하여 Permissive 또는 Enforcing 모드로 전환할 때는 시스템 재부팅이 필요하지 않습니다. 하지만 재부팅 시에도 변경사항이 유지되도록 하려면 /etc/selinux/config 파일을 업데이트해야 합니다.

Enforcing 모드로 전환하려면 다음을 실행합니다.

$ sudo setenforce 1 # temporary
$ sudo sed -i 's/SELINUX=permissive/SELINUX=enforcing/g' /etc/selinux/config # persistent - after reboot

SELinux가 Disabled일 때, 이를 사용 설정하려면 먼저 Permissive 모드에서 사용 설정한 후 시스템을 재부팅하여 시스템이 성공적으로 부팅되는지 확인하는 것이 좋습니다. SELinux 오류가 없으면 SELinux를 Enforcing 모드로 안전하게 전환할 수 있습니다.

  1. 선택사항: Permissive 모드에서 SELinux 사용 설정:

    $ sudo sed -i 's/SELINUX=disabled/SELINUX=permissive/g' /etc/selinux/config
    $ sudo reboot
    
  2. SELinux 오류 없이 시스템이 성공적으로 재부팅되면 Enforcing 모드를 사용 설정할 수 있습니다.

    $ sudo sed -i 's/SELINUX=disabled/SELINUX=enforcing/g' /etc/selinux/config
    $ sudo reboot
    

SELinux가 Enforcing 모드에서 사용 설정되면 SELinux가 컨테이너 런타임을 포함하여 호스트의 모든 프로세스에 사용 설정됩니다.