Membuat disk templat VM terlindungi Linux

Berlaku untuk: Windows Server 2022, Windows Server 2019

Topik ini menjelaskan cara menyiapkan disk templat untuk VM terlindung Linux yang dapat digunakan untuk membuat instans satu atau beberapa VM penyewa.

Prasyarat

Untuk menyiapkan dan menguji VM terlindungi Linux, Anda akan memerlukan sumber daya berikut yang tersedia:

  • Server dengan kemampuan virtualisasi yang menjalankan Windows Server, versi 1709 atau yang lebih baru
  • Komputer kedua (Windows 10 atau Windows Server 2016) yang mampu menjalankan Hyper-V Manager untuk terhubung ke konsol VM yang sedang berjalan
  • Gambar ISO untuk salah satu OS VM terlindungi Linux yang didukung:
    • Ubuntu 16.04 LTS dengan kernel 4.4
    • Red Hat Enterprise Linux 7.3
    • SUSE Linux Enterprise Server 12 Service Pack 2
  • Akses internet untuk mengunduh paket lsvmtools dan pembaruan OS

Penting

Versi yang lebih baru dari OS Linux sebelumnya dapat mencakup bug driver TPM yang diketahui yang akan mencegah mereka berhasil memprovisikan sebagai VM terlindungi. Tidak disarankan agar Anda memperbarui templat atau VM terlindungi ke rilis yang lebih baru hingga perbaikan tersedia. Daftar OS yang didukung di atas akan diperbarui ketika pembaruan dibuat publik.

Menyiapkan VM Linux

VM terlindungi dibuat dari disk templat yang aman. Disk templat berisi sistem operasi untuk VM dan metadata, termasuk tanda tangan digital partisi /boot dan /root, untuk memastikan komponen OS inti tidak dimodifikasi sebelum penyebaran.

Untuk membuat disk templat, Anda harus terlebih dahulu membuat VM reguler (tanpa kaca) yang akan Anda siapkan sebagai gambar dasar untuk VM terlindungi di masa mendatang. Perangkat lunak yang Anda instal dan perubahan konfigurasi yang Anda buat pada VM ini akan berlaku untuk semua VM terlindung yang dibuat dari disk templat ini. Langkah-langkah ini akan memanah Anda melalui persyaratan minimum kosong untuk menyiapkan VM Linux untuk templatisasi.

Catatan

Enkripsi disk Linux dikonfigurasi ketika disk dipartisi. Ini berarti Anda harus membuat VM baru yang telah dienkripsi sebelumnya menggunakan dm-crypt untuk membuat disk templat VM terlindung Linux.

  1. Di server virtualisasi, pastikan bahwa Hyper-V dan fitur Dukungan Hyper-V Host Guardian diinstal dengan menjalankan perintah berikut di konsol PowerShell yang ditingkatkan:

    Install-WindowsFeature Hyper-V, HostGuardian -IncludeManagementTools -Restart
    
  2. Unduh gambar ISO dari sumber tepercaya dan simpan di server virtualisasi Anda, atau pada berbagi file yang dapat diakses oleh server virtualisasi Anda.

  3. Pada komputer manajemen Anda yang menjalankan Windows Server versi 1709, instal Alat Administrasi Server Jarak Jauh VM Terlindungi dengan menjalankan perintah berikut:

    Install-WindowsFeature RSAT-Shielded-VM-Tools
    
  4. Buka Hyper-V Manager di komputer manajemen Anda dan sambungkan ke server virtualisasi Anda. Anda dapat melakukan ini dengan mengklik "Koneksi ke Server..." di panel Tindakan atau dengan mengklik kanan Pada Hyper-V Manager dan memilih "Koneksi ke Server..." Berikan nama DNS untuk server Hyper-V Anda dan, jika perlu, kredensial yang diperlukan untuk menyambungkannya.

  5. Menggunakan Hyper-V Manager, konfigurasikan sakelar eksternal di server virtualisasi Anda sehingga VM Linux dapat mengakses Internet untuk mendapatkan pembaruan.

  6. Selanjutnya, buat komputer virtual baru untuk menginstal OS Linux. Di panel Tindakan, klik Komputer Virtual Baru>untuk memunculkan wizard. Berikan nama yang mudah diingat untuk VM Anda, seperti "Linux pra-templat" dan klik Berikutnya.

  7. Pada halaman kedua Wizard, pilih Generasi 2 untuk memastikan VM disediakan dengan profil firmware berbasis UEFI.

  8. Selesaikan wizard lainnya sesuai dengan preferensi Anda. Jangan gunakan disk yang berbeda untuk VM ini; disk templat VM terlindungi tidak dapat menggunakan disk yang berbeda. Terakhir, sambungkan gambar ISO yang Anda unduh sebelumnya ke drive DVD virtual untuk VM ini sehingga Anda dapat menginstal OS.

  9. Di Hyper-V Manager, pilih VM yang baru dibuat dan klik Koneksi... di panel Tindakan untuk melampirkan ke konsol virtual VM. Di jendela yang muncul, klik Mulai untuk mengaktifkan komputer virtual.

  10. Lanjutkan melalui proses penyiapan untuk distribusi Linux yang Anda pilih. Meskipun setiap distribusi Linux menggunakan wizard penyiapan yang berbeda, persyaratan berikut harus dipenuhi untuk VM yang akan menjadi disk templat VM terlindungi Linux:

    • Disk harus dipartisi menggunakan tata letak GUID Partitioning Table (GPT)
    • Partisi akar harus dienkripsi dengan dm-crypt. Frase sandi harus diatur ke frase sandi (semua huruf kecil). Frase sandi ini akan diacak dan partisi dienkripsi ulang ketika VM terlindungi disediakan.
    • Partisi boot harus menggunakan sistem file ext2
  11. Setelah OS Linux Anda sepenuhnya boot dan Anda telah masuk, disarankan agar Anda menginstal kernel virtual linux dan paket layanan integrasi Hyper-V terkait. Selain itu, Anda ingin menginstal server SSH atau alat manajemen jarak jauh lainnya untuk mengakses VM setelah dilindungi.

    Di Ubuntu, jalankan perintah berikut untuk menginstal komponen-komponen ini:

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

    Di RHEL, jalankan perintah berikut sebagai gantinya:

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

    Dan di SLES, jalankan perintah berikut:

    sudo zypper install hyper-v
    sudo chkconfig hv_kvp_daemon on
    sudo systemctl enable sshd
    
  12. Konfigurasikan OS Linux Anda sesuai keinginan. Perangkat lunak apa pun yang Anda instal, akun pengguna yang Anda tambahkan, dan perubahan konfigurasi di seluruh sistem yang Anda buat akan berlaku untuk semua VM mendatang yang dibuat dari disk templat ini. Anda harus menghindari menyimpan rahasia atau paket yang tidak perlu ke disk.

  13. Jika Anda berencana menggunakan System Center Virtual Machine Manager untuk menyebarkan VM Anda, instal agen tamu VMM untuk mengaktifkan VMM untuk mengkhianatkan OS Anda selama provisi VM. Spesialisasi memungkinkan setiap VM disiapkan dengan aman dengan berbagai pengguna dan kunci SSH, konfigurasi jaringan, dan langkah-langkah penyiapan kustom. Pelajari cara mendapatkan dan menginstal agen tamu VMM dalam dokumentasi VMM.

  14. Selanjutnya, tambahkan Repositori Perangkat Lunak Microsoft Linux ke manajer paket Anda.

  15. Dengan menggunakan manajer paket Anda, instal paket lsvmtools yang berisi shim bootloader VM terlindung Linux, komponen provisi, dan alat persiapan disk.

    # Ubuntu 16.04
    sudo apt-get install lsvmtools
    
    # SLES 12 SP2
    sudo zypper install lsvmtools
    
    # RHEL 7.3
    sudo yum install lsvmtools
    
  16. Setelah selesai menyesuaikan OS Linux, temukan program penginstalan lsvmprep pada sistem Anda dan jalankan.

    # 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. Matikan VM Anda.

  18. Jika Anda mengambil titik pemeriksaan VM Anda (termasuk titik pemeriksaan otomatis yang dibuat oleh Hyper-V dengan Windows 10 Fall Creators Update), pastikan untuk menghapusnya sebelum melanjutkan. Titik pemeriksaan membuat disk yang berbeda (.avhdx) yang tidak didukung oleh Wizard Disk Templat.

    Untuk menghapus titik pemeriksaan, buka Hyper-V Manager, pilih VM Anda, klik kanan titik pemeriksaan paling atas di panel Titik Pemeriksaan, lalu klik Hapus Subtree Titik Pemeriksaan.

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

Lindungi disk templat

VM yang Anda siapkan di bagian sebelumnya hampir siap digunakan sebagai disk templat VM terlindungi Linux. Langkah terakhir adalah menjalankan disk melalui Wizard Disk Templat, yang akan hash dan menandatangani status partisi root dan boot saat ini. Hash dan tanda tangan digital diverifikasi ketika VM terlindungi disediakan untuk memastikan bahwa tidak ada perubahan yang tidak sah yang dilakukan pada dua partisi di antara pembuatan templat dan penyebaran.

Mendapatkan sertifikat untuk menandatangani disk

Untuk menandatangani pengukuran disk secara digital, Anda harus mendapatkan sertifikat di komputer tempat Anda akan menjalankan Wizard Disk Templat. Sertifikat harus memenuhi persyaratan berikut:

Properti Sertifikat Nilai yang diperlukan
Algoritma Kunci RSA
Ukuran kunci minimum 2048 bit
Algoritma tanda tangan SHA256 (Disarankan)
Penggunaan Kunci Tanda Tangan Digital

Detail tentang sertifikat ini akan ditampilkan kepada penyewa ketika mereka membuat file data perisai mereka dan mengotorisasi disk yang mereka percayai. Oleh karena itu, penting untuk mendapatkan sertifikat ini dari otoritas sertifikat yang saling dipercaya oleh Anda dan penyewa Anda. Dalam skenario perusahaan di mana Anda adalah hoster dan penyewa, Anda mungkin mempertimbangkan untuk mengeluarkan sertifikat ini dari otoritas sertifikat perusahaan Anda. Lindungi sertifikat ini dengan hati-hati, karena siapa pun yang memiliki sertifikat ini dapat membuat disk templat baru yang tepercaya sama dengan disk autentik Anda.

Di lingkungan lab pengujian, Anda dapat membuat sertifikat yang ditandatangani sendiri dengan perintah PowerShell berikut:

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

Memproses disk dengan cmdlet Wizard Disk Templat

Salin disk templat dan sertifikat Anda ke komputer yang menjalankan Windows Server, versi 1709, lalu jalankan perintah berikut untuk memulai proses penandatanganan. VHDX yang Anda berikan ke -Path parameter akan ditimpa dengan disk templat yang diperbarui, jadi pastikan untuk membuat salinan sebelum menjalankan perintah.

Penting

Alat Administrasi Server Jarak Jauh yang tersedia di Windows Server 2016 atau Windows 10 tidak dapat digunakan untuk menyiapkan disk templat VM terlindung Linux. Hanya gunakan cmdlet Protect-TemplateDisk yang tersedia di Windows Server, versi 1709 atau Alat Administrasi Server Jarak Jauh yang tersedia di Windows Server 2019 untuk menyiapkan disk templat VM terlindung Linux.

# 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

Disk templat Anda sekarang siap digunakan untuk memprovisikan VM terlindung Linux. Jika Anda menggunakan System Center Virtual Machine Manager untuk menyebarkan VM, Anda sekarang dapat menyalin VHDX ke pustaka VMM Anda.

Anda mungkin juga ingin mengekstrak katalog tanda tangan volume dari VHDX. File ini digunakan untuk memberikan informasi tentang sertifikat penandatanganan, nama disk, dan versi kepada pemilik VM yang ingin menggunakan templat Anda. Mereka perlu mengimpor file ini ke Wizard File Data Perisai untuk mengotorisasi Anda, pembuat templat yang memiliki sertifikat penandatanganan, untuk membuat disk templat ini dan di masa mendatang untuk mereka.

Untuk mengekstrak katalog tanda tangan volume, jalankan perintah berikut di PowerShell:

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