18.4. 가상 머신 사용자가 수행할 수 있는 작업 제한

경우에 따라 RHEL 9에서 호스팅되는 VM(가상 머신) 사용자가 기본적으로 수행할 수 있는 조치로 인해 보안 위험이 발생할 수 있습니다. 이 경우 호스트 시스템에서 polkit 정책 툴킷을 사용하도록 libvirt 데몬을 구성하여 VM 사용자가 사용할 수 있는 작업을 제한할 수 있습니다.

절차

  1. 선택 사항: libvirt 와 관련된 시스템의 polkit 제어 정책이 기본 설정에 따라 설정되어 있는지 확인합니다.

    1. /usr/share/polkit-1/actions//usr/share/polkit-1/rules.d/ 디렉토리에서 모든 libvirt 관련 파일을 찾습니다.

      # ls /usr/share/polkit-1/actions | grep libvirt
      # ls /usr/share/polkit-1/rules.d | grep libvirt
    2. 파일을 열고 규칙 설정을 검토합니다.

      polkit 제어 정책의 구문을 읽는 방법에 대한 자세한 내용은 man polkit 을 사용합니다.

    3. libvirt 제어 정책을 수정합니다. 이를 위해 다음을 수행합니다.

      1. /etc/polkit-1/ rules. d/ 디렉터리에 새 .rules 파일을 만듭니다.
      2. 이 파일에 사용자 지정 정책을 추가하고 저장합니다.

        libvirt 제어 정책의 자세한 내용 및 예는 libvirt 업스트림 문서를 참조하십시오.

  2. polkit 에 의해 결정된 액세스 정책을 사용하도록 VM을 구성합니다.

    이를 위해 /etc/libvirt/ 디렉토리에서 가상화 드라이버의 모든 구성 파일을 찾고 access_drivers = [ "polkit" ] 줄의 주석을 제거하십시오.

    # find /etc/libvirt/ -name virt*d.conf -exec sed -i 's/#access_drivers = \[ "polkit" \]/access_drivers = \[ "polkit" \]/g' {} +
  3. 이전 단계에서 수정한 각 파일에 대해 해당 서비스를 다시 시작합니다.

    예를 들어 /etc/libvirt/virtqemud.conf 를 수정한 경우 virtqemud 서비스를 다시 시작합니다.

    # systemctl try-restart virtqemud

검증

  • 제한하려는 VM 작업이 있는 사용자로 제한된 작업 중 하나를 수행합니다.

    예를 들어 권한이 없는 사용자가 시스템 세션에서 생성된 VM을 볼 수 없는 경우 다음을 실행합니다.

    $ virsh -c qemu:///system list --all
    Id   Name           State
    -------------------------------

    시스템에 하나 이상의 VM이 있어도 이 명령에 VM이 나열되지 않은 경우 polkit 은 권한이 없는 사용자에 대한 작업을 성공적으로 제한합니다.

문제 해결

추가 리소스