16.7. IBM Z에서 IBM Secure Execution 설정


IBM Z 하드웨어를 사용하여 RHEL 8 호스트를 실행하는 경우 VM에 대한 IBM Secure Execution을 구성하여 VM(가상 시스템)의 보안을 향상시킬 수 있습니다.

IBM Secure Execution(보호된 가상화이라고도 함)을 사용하면 호스트 시스템이 VM의 상태 및 메모리 콘텐츠에 액세스할 수 없습니다. 따라서 호스트가 손상되어도 게스트 운영 체제를 공격하기 위한 벡터로 사용할 수 없습니다. 또한 Secure Execution을 사용하여 신뢰할 수 없는 호스트가 VM에서 중요한 정보를 얻지 못하도록 할 수 있습니다.

다음 절차에서는 IBM Z 호스트의 기존 VM을 보안 VM으로 변환하는 방법을 설명합니다.

사전 요구 사항

  • 시스템 하드웨어는 다음 중 하나입니다.

    • IBM z15 이상
    • IBM LinuxONE III 이상
  • 시스템에 대해 보안 실행 기능이 활성화되어 있습니다. 확인하려면 다음을 사용합니다.

    # grep facilities /proc/cpuinfo | grep 158

    이 명령을 실행하면 CPU가 Secure Execution과 호환됩니다.

  • 커널에는 보안 실행 지원이 포함됩니다. 확인하려면 다음을 사용합니다.

    # ls /sys/firmware | grep uv

    명령이 출력을 생성하는 경우 커널은 보안 실행을 지원합니다.

  • 호스트 CPU 모델에는 압축 해제 기능이 포함되어 있습니다. 확인하려면 다음을 사용합니다.

    # virsh domcapabilities | grep unpack
    <feature policy='require' name='unpack'/>

    명령이 위의 출력을 생성하는 경우 CPU 호스트 모델은 Secure Execution과 호환됩니다.

  • VM의 CPU 모드는 host-model 로 설정되어 있습니다. 이를 확인하려면 다음을 사용하고 vm-name 을 VM 이름으로 바꿉니다.

    # virsh dumpxml vm-name | grep "<cpu mode='host-model'/>"

    명령에서 출력을 생성하는 경우 VM의 CPU 모드가 올바르게 설정됩니다.

  • IBM Z 호스트 키 문서를 얻고 확인했습니다. 이 작업을 수행하는 방법은 IBM 문서 의 호스트 키 문서 확인을 참조하십시오.

절차

호스트에서 다음 단계를 수행합니다.

  1. prot_virt=1 커널 매개 변수를 호스트의 부팅 구성에 추가합니다.

    # grubby --update-kernel=ALL --args="prot_virt=1"
  2. 부팅 메뉴를 업데이트합니다.

    # zipl

  3. virsh edit 를 사용하여 보안하려는 VM의 XML 구성을 수정합니다.
  4. &lt ;launchSecurity type="s390-pv"/ >를 < /devices > 줄 아래에 추가합니다. 예를 들면 다음과 같습니다.

    [...]
        </memballoon>
      </devices>
      <launchSecurity type="s390-pv"/>
    </domain>
  5. 구성의 < devices > 섹션에 virtio-rng 장치( <rng model="virtio"> )가 포함된 경우 <rng> </rng > 블록의 모든 행을 제거하십시오.

보호하려는 VM 의 게스트 운영 체제에서 다음 단계를 수행합니다.

  1. 매개 변수 파일을 생성합니다. 예를 들면 다음과 같습니다.

    # touch ~/secure-parameters
  2. /boot/loader/entries 디렉토리에서 최신 버전으로 부트 로더 항목을 식별합니다.

    # ls /boot/loader/entries -l
    [...]
    -rw-r--r--. 1 root root  281 Oct  9 15:51 3ab27a195c2849429927b00679db15c1-4.18.0-240.el8.s390x.conf
  3. 부트 로더 항목의 커널 옵션 행을 검색합니다.

    # cat /boot/loader/entries/3ab27a195c2849429927b00679db15c1-4.18.0-240.el8.s390x.conf | grep options
    options root=/dev/mapper/rhel-root
    crashkernel=auto
    rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap
  4. 생성된 매개 변수 파일에 options 행의 내용을 추가하고 swiotlb=262144 를 추가합니다.

    # echo "root=/dev/mapper/rhel-root crashkernel=auto rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap swiotlb=262144" > ~/secure-parameters
  5. IBM 보안 실행 이미지를 생성합니다.

    예를 들어 다음은 secure -parameters 파일, /boot/ initramfs-4.18.0 -000201C048.crt 호스트 키 문서를 사용하여 /boot/vmlinuz-4.18.0- img 초기 RAM 디스크 파일을 기반으로 /boot/secure- image 보안 이미지를 생성합니다.

    # genprotimg -i /boot/vmlinuz-4.18.0-240.el8.s390x -r /boot/initramfs-4.18.0-240.el8.s390x.img -p ~/secure-parameters -k HKD-8651-00020089A8.crt -o /boot/secure-image

    genprotimg 유틸리티를 사용하면 커널 매개 변수, 초기 RAM 디스크 및 부팅 이미지가 포함된 보안 이미지를 생성합니다.

  6. VM의 부팅 메뉴를 업데이트하여 보안 이미지에서 부팅합니다. 또한 initrd옵션으로 시작하는 행을 필수가 아니므로 제거합니다.

    예를 들어 RHEL 8.3 VM에서 /boot/loader/entries/ 디렉터리에서 부팅 메뉴를 편집할 수 있습니다.

    # cat /boot/loader/entries/3ab27a195c2849429927b00679db15c1-4.18.0-240.el8.s390x.conf
    title Red Hat Enterprise Linux 8.3
    version 4.18.0-240.el8.s390x
    linux /boot/secure-image
    [...]
  7. 부팅 가능한 디스크 이미지를 생성합니다.

    # zipl -V
  8. 보호되지 않은 원본 파일을 안전하게 제거합니다. 예를 들면 다음과 같습니다.

    # shred /boot/vmlinuz-4.18.0-240.el8.s390x
    # shred /boot/initramfs-4.18.0-240.el8.s390x.img
    # shred secure-parameters

    원래 부팅 이미지, 초기 RAM 이미지 및 커널 매개 변수 파일은 보호되지 않으며 제거되지 않은 경우 Secure Execution이 활성화된 VM은 여전히 해킹 시도 또는 민감한 데이터 수집에 취약해질 수 있습니다.

검증

  • 호스트에서 virsh dumpxml 유틸리티를 사용하여 보안 VM의 XML 구성을 확인합니다. 설정에는 < launchSecurity type="s390-pv"/ > 요소와 <rng model="virtio"> 요소가 포함되어야 합니다.

    # virsh dumpxml vm-name
    [...]
      <cpu mode='host-model'/>
      <devices>
        <disk type='file' device='disk'>
          <driver name='qemu' type='qcow2' cache='none' io='native'>
          <source file='/var/lib/libvirt/images/secure-guest.qcow2'/>
          <target dev='vda' bus='virtio'/>
        </disk>
        <interface type='network'>
          <source network='default'/>
          <model type='virtio'/>
        </interface>
        <console type='pty'/>
        <memballoon model='none'/>
      </devices>
      <launchSecurity type="s390-pv"/>
    </domain>
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.