Linux 보호 VM 템플릿 디스크 만들기

적용 대상: Windows Server 2022, Windows Server 2019

이 항목에서는 하나 이상의 테넌트 VM을 인스턴스화하는 데 사용할 수 있는 Linux 보호 VM용 템플릿 디스크를 준비하는 방법을 설명합니다.

필수 조건

Linux 보호 VM을 준비하고 테스트하려면 다음 리소스를 사용할 수 있어야 합니다.

  • Windows Server 버전 1709 이상을 실행하는 가상화 기능이 있는 서버
  • Hyper-V 관리자를 실행 중인 VM의 콘솔에 연결할 수 있는 두 번째 컴퓨터(Windows 10 또는 Windows Server 2016)
  • 지원되는 Linux 보호 VM OS 중 하나에 대한 ISO 이미지:
    • 4.4 커널이 있는 Ubuntu 16.04 LTS
    • Red Hat Enterprise Linux 7.3
    • SUSE Linux Enterprise Server 12 서비스 팩 2
  • lsvmtools 패키지 및 OS 업데이트를 다운로드하기 위한 인터넷 액세스

Important

이전 Linux OS의 최신 버전에는 보호된 VM으로 성공적으로 프로비전되지 않는 알려진 TPM 드라이버 버그가 포함될 수 있습니다. 수정 사항을 사용할 수 있게 될 때까지 템플릿 또는 보호된 VM을 최신 릴리스로 업데이트하지 않는 것이 좋습니다. 위의 지원되는 OS 목록은 업데이트가 공개되면 업데이트됩니다.

Linux VM 준비

보호된 VM은 보안 템플릿 디스크에서 만들어집니다. 템플릿 디스크에는 배포 전에 핵심 OS 구성 요소가 수정되지 않도록 /boot 및 /root 파티션의 디지털 서명을 포함하여 VM 및 메타데이터에 대한 운영 체제가 포함됩니다.

템플릿 디스크를 만들려면 먼저 이후 보호된 VM에 대한 기본 이미지로 준비할 일반(차단되지 않은) VM을 만들어야 합니다. 설치한 소프트웨어 및 이 VM에 대한 구성 변경 내용은 이 템플릿 디스크에서 만든 모든 보호된 VM에 적용됩니다. 이러한 단계에서는 템플릿을 위한 Linux VM을 준비하기 위한 최소 요구 사항을 안내합니다.

참고 항목

Linux 디스크 암호화는 디스크가 분할될 때 구성됩니다. 즉, dm-crypt를 사용하여 미리 암호화된 새 VM을 만들어 Linux 보호 VM 템플릿 디스크를 만들어야 합니다.

  1. 가상화 서버에서 관리자 권한 PowerShell 콘솔에서 다음 명령을 실행하여 Hyper-V 및 호스트 보호 Hyper-V 지원 기능이 설치되어 있는지 확인합니다.

    Install-WindowsFeature Hyper-V, HostGuardian -IncludeManagementTools -Restart
    
  2. 신뢰할 수 있는 원본에서 ISO 이미지를 다운로드하여 가상화 서버 또는 가상화 서버에서 액세스할 수 있는 파일 공유에 저장합니다.

  3. Windows Server 버전 1709를 실행하는 관리 컴퓨터에서 다음 명령을 실행하여 보호된 VM 원격 서버 관리istration Tools를 설치합니다.

    Install-WindowsFeature RSAT-Shielded-VM-Tools
    
  4. 관리 컴퓨터에서 Hyper-V 관리자를 열고 가상화 서버에 연결합니다. "서버에 커넥트..."를 클릭하여 이 작업을 수행할 수 있습니다. 작업 창에서 또는 Hyper-V 관리자를 마우스 오른쪽 단추로 클릭하고 "서버에 커넥트..."를 선택하여 Hyper-V 서버의 DNS 이름과 필요한 경우 연결하는 데 필요한 자격 증명을 제공합니다.

  5. Hyper-V 관리자 를 사용하여 Linux VM이 인터넷에 액세스하여 업데이트를 받을 수 있도록 가상화 서버에서 외부 스위치 를 구성합니다.

  6. 다음으로, Linux OS를 설치할 새 가상 머신을 만듭니다. 작업 창에서 새>가상 머신을 클릭하여 마법사를 표시합니다. VM에 친숙한 이름(예: "템플릿 이전 Linux")을 제공하고 다음을 클릭합니다.

  7. 마법사의 두 번째 페이지에서 2세대를 선택하여 VM이 UEFI 기반 펌웨어 프로필로 프로비전되었는지 확인합니다.

  8. 기본 설정에 따라 마법사의 나머지 부분을 완료합니다. 이 VM에 차이점 디스크를 사용하지 마세요. 보호된 VM 템플릿 디스크는 차이점 디스크를 사용할 수 없습니다. 마지막으로, OS를 설치할 수 있도록 이전에 다운로드한 ISO 이미지를 이 VM의 가상 DVD 드라이브에 연결합니다.

  9. Hyper-V 관리자에서 새로 만든 VM을 선택하고 작업 창에서 커넥트...를 클릭하여 VM의 가상 콘솔에 연결합니다. 표시되는 창에서 시작을 클릭하여 가상 머신을 켭니다.

  10. 선택한 Linux 배포에 대한 설정 프로세스를 진행합니다. 각 Linux 배포판은 다른 설치 마법사를 사용하지만 Linux 보호 VM 템플릿 디스크가 될 VM의 경우 다음 요구 사항을 충족해야 합니다.

    • GPT(GUID 분할 테이블) 레이아웃을 사용하여 디스크를 분할해야 합니다.
    • 루트 파티션은 dm-crypt로 암호화해야 합니다. 암호는 암호(모두 소문자)로 설정해야 합니다. 이 암호는 임의로 지정되고 보호된 VM이 프로비전될 때 파티션이 다시 암호화됩니다.
    • 부팅 파티션은 ext2 파일 시스템을 사용해야 합니다.
  11. Linux OS가 완전히 부팅되고 로그인한 후에는 Linux-가상 커널 및 연결된 Hyper-V 통합 서비스 패키지를 설치하는 것이 좋습니다. 또한 보호된 VM에 액세스하기 위해 SSH 서버 또는 기타 원격 관리 도구를 설치하려고 합니다.

    Ubuntu에서 다음 명령을 실행하여 이러한 구성 요소를 설치합니다.

    sudo apt-get install linux-virtual linux-tools-virtual linux-cloud-tools-virtual linux-image-extra-virtual openssh-server
    

    RHEL에서 다음 명령을 대신 실행합니다.

    sudo yum install hyperv-daemons openssh-server
    sudo service sshd start
    

    그리고 SLES에서 다음 명령을 실행합니다.

    sudo zypper install hyper-v
    sudo chkconfig hv_kvp_daemon on
    sudo systemctl enable sshd
    
  12. Linux OS를 원하는 대로 구성합니다. 설치하는 모든 소프트웨어, 추가한 사용자 계정 및 시스템 전체 구성 변경 내용은 이 템플릿 디스크에서 만든 모든 향후 VM에 적용됩니다. 비밀 또는 불필요한 패키지를 디스크에 저장하지 않아야 합니다.

  13. System Center Virtual Machine Manager를 사용하여 VM을 배포하려는 경우 VMM 게스트 에이전트를 설치하여 VMM이 VM 프로비전 중에 OS를 특수화할 수 있도록 합니다. 특수화를 사용하면 다양한 사용자 및 SSH 키, 네트워킹 구성 및 사용자 지정 설정 단계를 사용하여 각 VM을 안전하게 설정할 수 있습니다. VMM 설명서에서 VMM 게스트 에이전트를 가져오고 설치하는 방법을 알아봅니다.

  14. 다음으로, 패키지 관리자에 Microsoft Linux 소프트웨어 리포지토리를 추가합니다.

  15. 패키지 관리자를 사용하여 Linux 보호 VM 부팅 로더 shim, 프로비전 구성 요소 및 디스크 준비 도구가 포함된 lsvmtools 패키지를 설치합니다.

    # Ubuntu 16.04
    sudo apt-get install lsvmtools
    
    # SLES 12 SP2
    sudo zypper install lsvmtools
    
    # RHEL 7.3
    sudo yum install lsvmtools
    
  16. Linux OS 사용자 지정이 완료되면 시스템에서 lsvmprep 설치 프로그램을 찾아 실행합니다.

    # The path below may change based on the version of lsvmprep installed
    # Run "find /opt -name lsvmprep" to locate the lsvmprep executable
    sudo /opt/lsvmtools-1.0.0-x86-64/lsvmprep
    
  17. VM을 종료합니다.

  18. VM의 검사포인트(Windows 10 Fall Creators Update를 사용하여 Hyper-V에서 만든 자동 검사포인트 포함)를 수행한 경우 계속하기 전에 삭제해야 합니다. 검사점은 템플릿 디스크 마법사에서 지원하지 않는 차이점 디스크(.avhdx)를 만듭니다.

    검사포인트를 삭제하려면 Hyper-V 관리자를 열고 VM을 선택하고 검사점 창에서 맨 위 검사 지점을 마우스 오른쪽 단추로 클릭한 다음 검사점 하위 트리 삭제를 클릭합니다.

    Delete all checkpoints for your template VM in Hyper-V manager

템플릿 디스크 보호

이전 섹션에서 준비한 VM은 Linux 보호 VM 템플릿 디스크로 사용할 준비가 거의 완료되었습니다. 마지막 단계는 템플릿 디스크 마법사를 통해 디스크를 실행하는 것입니다. 이 마법사는 루트 및 부팅 파티션의 현재 상태를 해시하고 디지털 서명합니다. 해시 및 디지털 서명은 보호된 VM이 프로비전될 때 확인되어 템플릿 생성과 배포 사이에 두 파티션에 대한 무단 변경이 수행되지 않았는지 확인합니다.

디스크에 서명할 인증서 가져오기

디스크 측정값에 디지털 서명하려면 템플릿 디스크 마법사를 실행할 컴퓨터에서 인증서를 가져와야 합니다. 인증서는 다음 요구 사항을 충족해야 합니다.

Certificate 속성 필수 값
키 알고리즘 RSA
최소 키 크기 2048비트
서명 알고리즘 SHA256(권장)
키 사용 디지털 서명

이 인증서에 대한 세부 정보는 테넌트가 보호 데이터 파일을 만들고 신뢰할 수 있는 디스크에 권한을 부여할 때 표시됩니다. 따라서 사용자와 테넌트가 상호 신뢰하는 인증 기관에서 이 인증서를 가져오는 것이 중요합니다. 호스트 및 테넌트인 엔터프라이즈 시나리오에서는 엔터프라이즈 인증 기관에서 이 인증서를 발급하는 것이 좋습니다. 이 인증서를 소유한 모든 사용자가 인증 디스크와 동일하게 신뢰할 수 있는 새 템플릿 디스크를 만들 수 있으므로 이 인증서를 신중하게 보호합니다.

테스트 랩 환경에서 다음 PowerShell 명령을 사용하여 자체 서명된 인증서를 만들 수 있습니다.

New-SelfSignedCertificate -Subject "CN=Linux Shielded VM Template Disk Signing Certificate"

템플릿 디스크 마법사 cmdlet을 사용하여 디스크 처리

Windows Server 버전 1709를 실행하는 컴퓨터에 템플릿 디스크 및 인증서를 복사한 다음, 다음 명령을 실행하여 서명 프로세스를 시작합니다. 매개 변수에 -Path 제공하는 VHDX는 업데이트된 템플릿 디스크로 덮어쓰여지므로 명령을 실행하기 전에 복사본을 만들어야 합니다.

Important

Windows Server 2016 또는 Windows 10에서 사용할 수 있는 원격 서버 관리istration Tools는 Linux 보호 VM 템플릿 디스크를 준비하는 데 사용할 수 없습니다. Windows Server, 버전 1709 또는 Windows Server 2019에서 사용할 수 있는 원격 서버 관리istration Tools에서 사용 가능한 Protect-TemplateDisk cmdlet만 사용하여 Linux 보호 VM 템플릿 디스크를 준비합니다.

# Replace "THUMBPRINT" with the thumbprint of your template disk signing certificate in the line below
$certificate = Get-Item Cert:\LocalMachine\My\THUMBPRINT

Protect-TemplateDisk -Path 'C:\temp\MyLinuxTemplate.vhdx' -TemplateName 'Ubuntu 16.04' -Version 1.0.0.0 -Certificate $certificate -ProtectedTemplateTargetDiskType PreprocessedLinux

이제 템플릿 디스크를 사용하여 Linux 보호 VM을 프로비전할 준비가 되었습니다. System Center Virtual Machine Manager를 사용하여 VM을 배포하는 경우 이제 VHDX를 VMM 라이브러리에 복사할 수 있습니다.

VHDX에서 볼륨 서명 카탈로그를 추출할 수도 있습니다. 이 파일은 서명 인증서, 디스크 이름 및 버전에 대한 정보를 템플릿을 사용하려는 VM 소유자에게 제공하는 데 사용됩니다. 서명 인증서를 소유한 템플릿 작성자인 사용자에게 권한을 부여하려면 이 파일을 데이터 파일 보호 마법사로 가져와서 이 디스크와 향후 템플릿 디스크를 만들어야 합니다.

볼륨 서명 카탈로그를 추출하려면 PowerShell에서 다음 명령을 실행합니다.

Save-VolumeSignatureCatalog -TemplateDiskPath 'C:\temp\MyLinuxTemplate.vhdx' -VolumeSignatureCatalogPath 'C:\temp\MyLinuxTemplate.vsc'