19.7. IBM Z에서 IBM Secure Execution 설정
IBM Z 하드웨어를 사용하여 RHEL 9 호스트를 실행하는 경우 VM(가상 머신)의 보안을 개선할 수 있습니다. VM의 IBM Secure Execution를 구성합니다.
IBM Secure Execution (RM Secure Execution)는 호스트 시스템이 VM의 상태 및 메모리 콘텐츠에 액세스하지 못하도록 합니다. 결과적으로 호스트가 손상된 경우에도 게스트 운영 체제를 공격하기 위한 벡터로 사용할 수 없습니다. 또한 보안 실행을 사용하여 신뢰할 수 없는 호스트가 VM에서 중요한 정보를 얻지 못하도록 할 수 있습니다.
다음 절차에서는 IBM Z 호스트의 기존 VM을 보안 VM으로 변환하는 방법을 설명합니다.
사전 요구 사항
시스템 하드웨어는 다음 중 하나입니다.
- IBM z15 이상
- IBM LinuxONE III 이상
시스템에 대해 보안 실행 기능이 활성화되어 있습니다. 확인하려면 다음을 사용합니다.
grep facilities /proc/cpuinfo | grep 158
# grep facilities /proc/cpuinfo | grep 158
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 명령이 출력을 표시하는 경우 CPU는 Secure Execution와 호환됩니다.
커널에는 보안 실행 지원이 포함되어 있습니다. 확인하려면 다음을 사용합니다.
ls /sys/firmware | grep uv
# ls /sys/firmware | grep uv
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 명령이 출력을 생성하는 경우 커널은 Secure Execution를 지원합니다.
호스트 CPU 모델에는
압축
해제 기능이 포함되어 있습니다. 확인하려면 다음을 사용합니다.virsh domcapabilities | grep unpack
# virsh domcapabilities | grep unpack <feature policy='require' name='unpack'/>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 명령에서 위의 출력을 생성하는 경우 CPU 호스트 모델은 보안 실행과 호환됩니다.
VM의 CPU 모드는
host-model
로 설정되어 있습니다. 이를 확인하려면 다음을 사용하고vm-name
을 VM 이름으로 교체합니다.virsh dumpxml vm-name | grep "<cpu mode='host-model'/>"
# virsh dumpxml vm-name | grep "<cpu mode='host-model'/>"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 명령에서 출력을 생성하면 VM의 CPU 모드가 올바르게 설정됩니다.
genprotimg 패키지가 호스트에 설치되어 있어야 합니다.
dnf install genprotimg
# dnf install genprotimg
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - IBM Z 호스트 키 문서를 가져와서 확인했습니다. 이 작업을 수행하는 방법은 IBM 문서의 호스트 키 문서 확인을 참조하십시오.
프로세스
호스트에서 다음 단계를 수행합니다.
prot_virt=1
커널 매개 변수를 호스트의 부팅 구성에 추가합니다.grubby --update-kernel=ALL --args="prot_virt=1"
# grubby --update-kernel=ALL --args="prot_virt=1"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 부팅 메뉴를 업데이트합니다.
# zipl
-
virsh edit
를 사용하여 보호할 VM의 XML 구성을 수정합니다. <launchSecurity type="s390-pv"/>
를 </devices
> 줄 아래에 추가합니다. 예를 들면 다음과 같습니다.[...] </memballoon> </devices> <launchSecurity type="s390-pv"/> </domain>
[...] </memballoon> </devices> <launchSecurity type="s390-pv"/> </domain>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
구성의 <
devices
> 섹션에virtio-rng
장치( <rng model="virtio"
>)가 포함된 경우 <rng> </rng
> 블록의 모든 행을 제거합니다. 선택 사항: 보안하려는 VM에서 32GiB의 RAM 이상을 사용하는 경우 XML 구성의
<features></features>
섹션에<async-teardown enabled='yes'/>
행을 추가합니다.이렇게 하면 이러한 보안 실행 게스트의 재부팅 또는 중지 성능이 향상됩니다.
보호하려는 VM 의 게스트 운영 체제에서 다음 단계를 수행합니다.
매개 변수 파일을 생성합니다. 예를 들면 다음과 같습니다.
touch ~/secure-parameters
# touch ~/secure-parameters
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /boot/loader/entries
디렉토리에서 최신 버전으로 부트 로더 항목을 식별합니다.ls /boot/loader/entries -l
# ls /boot/loader/entries -l [...] -rw-r--r--. 1 root root 281 Oct 9 15:51 3ab27a195c2849429927b00679db15c1-4.18.0-240.el8.s390x.conf
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 부트 로더 항목의 커널 옵션 행을 검색합니다.
cat /boot/loader/entries/3ab27a195c2849429927b00679db15c1-4.18.0-240.el8.s390x.conf | grep options options root=/dev/mapper/rhel-root rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap
# cat /boot/loader/entries/3ab27a195c2849429927b00679db15c1-4.18.0-240.el8.s390x.conf | grep options options root=/dev/mapper/rhel-root rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap
Copy to Clipboard Copied! Toggle word wrap Toggle overflow options 라인과
swiotlb=262144
의 내용을 생성된 매개변수 파일에 추가합니다.echo "root=/dev/mapper/rhel-root rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap swiotlb=262144" > ~/secure-parameters
# echo "root=/dev/mapper/rhel-root rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap swiotlb=262144" > ~/secure-parameters
Copy to Clipboard Copied! Toggle word wrap Toggle overflow IBM Secure Execution 이미지를 생성합니다.
예를 들어 다음은
/boot/vmlinuz-4.18.0-240.el8.s390x
이미지를 기반으로/boot/secure-image
보안 이미지를 생성합니다.secure-parameters
파일,/boot/initramfs-4.18.0-240.el8.s390x.img
초기 RAM 디스크 파일 및HKD-8651-000201C0411C04.crt
키입니다.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 -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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow genprotimg
유틸리티를 사용하면 커널 매개 변수, 초기 RAM 디스크 및 부팅 이미지가 포함된 보안 이미지를 생성합니다.보안 이미지에서 부팅하도록 VM의 부팅 메뉴를 업데이트합니다. 또한
initrd
및options
로 시작하는 행은 필요하지 않으므로 제거합니다.예를 들어 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 [...]
# 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 [...]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 부팅 가능한 디스크 이미지를 생성합니다.
zipl -V
# zipl -V
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 보호되지 않은 원본 파일을 안전하게 제거하십시오. 예를 들면 다음과 같습니다.
shred /boot/vmlinuz-4.18.0-240.el8.s390x shred /boot/initramfs-4.18.0-240.el8.s390x.img shred secure-parameters
# shred /boot/vmlinuz-4.18.0-240.el8.s390x # shred /boot/initramfs-4.18.0-240.el8.s390x.img # shred secure-parameters
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 원래 부팅 이미지, 초기 RAM 이미지 및 커널 매개 변수 파일은 보호되지 않으며 제거되지 않은 경우 Secure Execution가 활성화된 VM은 해킹 시도 또는 민감한 데이터 검색에 취약해질 수 있습니다.
검증
호스트에서
virsh dumpxml
유틸리티를 사용하여 보안 VM의 XML 구성을 확인합니다. 구성에 <launchSecurity type="s390-pv"/
> 요소가 포함되어야 하며 <rng model="virtio">행이 포함되지 않아야 합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow