Tworzenie dysku szablonu maszyny wirtualnej z osłoną systemu Linux
W tym temacie wyjaśniono, jak przygotować dysk szablonu dla osłoniętych maszyn wirtualnych Linux, których można użyć do uruchomienia jednej lub więcej maszyn wirtualnych dzierżawcy.
Wymagania wstępne
Aby przygotować i przetestować maszynę wirtualną z osłoną systemu Linux, potrzebne będą następujące zasoby:
- Serwer z możliwościami wirtualizacji z systemem Windows Server w wersji 1709 lub nowszej
- Drugi komputer (system Windows 10 lub Windows Server 2016) może uruchomić program Hyper-V Manager w celu nawiązania połączenia z konsolą uruchomionej maszyny wirtualnej
- Obraz ISO dla jednego z obsługiwanych systemów operacyjnych maszyn wirtualnych z osłoną systemu Linux:
- Ubuntu 16.04 LTS z jądrem 4.4
- Red Hat Enterprise Linux 7.3
- SUSE Linux Enterprise Server 12 Service Pack 2
- Dostęp do Internetu w celu pobrania pakietu lsvmtools i aktualizacji systemu operacyjnego
Ważne
Nowsze wersje wcześniejszych systemów operacyjnych Linux mogą zawierać znaną usterkę sterownika TPM, która uniemożliwi ich pomyślne konfigurowanie jako chronionych maszyn wirtualnych. Nie zaleca się aktualizowania szablonów ani chronionych maszyn wirtualnych do nowszej wersji do momentu udostępnienia poprawki. Po upublicznieniu aktualizacji lista obsługiwanych systemów operacyjnych zostanie zaktualizowana.
Przygotowywanie maszyny wirtualnej z systemem Linux
Chronione maszyny wirtualne są tworzone na podstawie bezpiecznych dysków szablonu. Dyski szablonu zawierają system operacyjny maszyny wirtualnej i metadanych, w tym podpis cyfrowy partycji /boot i /root, aby upewnić się, że podstawowe składniki systemu operacyjnego nie są modyfikowane przed wdrożeniem.
Aby utworzyć dysk szablonu, należy najpierw utworzyć zwykłą (niechronioną) maszynę wirtualną, którą przygotujesz jako obraz podstawowy dla przyszłych chronionych maszyn wirtualnych. Oprogramowanie instalowane i zmiany konfiguracji wprowadzone na tej maszynie wirtualnej będą miały zastosowanie do wszystkich chronionych maszyn wirtualnych utworzonych na podstawie tego dysku szablonu. Te kroki przeprowadzą Cię przez podstawowe wymagania, aby przygotować maszynę wirtualną z systemem Linux do tworzenia szablonów.
Uwaga
Szyfrowanie dysków z systemem Linux jest konfigurowane podczas partycjonowania dysku. Oznacza to, że należy utworzyć nową maszynę wirtualną, która jest wstępnie zaszyfrowana przy użyciu narzędzia dm-crypt, aby utworzyć dysk szablonu maszyny wirtualnej z osłoną systemu Linux.
Na serwerze wirtualizacji upewnij się, że funkcje wsparcia Hyper-V i Host Guardian Hyper-V są zainstalowane, uruchamiając następujące polecenia w konsoli PowerShell z uprawnieniami administratora:
Install-WindowsFeature Hyper-V, HostGuardian -IncludeManagementTools -Restart
Pobierz obraz ISO z zaufanego źródła i zapisz go na serwerze wirtualizacji lub w udziale plików dostępnym dla serwera wirtualizacji.
Na Twoim komputerze do zarządzania z systemem Windows Server wersji 1709 zainstaluj narzędzia zdalnego zarządzania serwerem dla chronionych maszyn wirtualnych, uruchamiając następujące polecenie:
Install-WindowsFeature RSAT-Shielded-VM-Tools
Otwórz program Hyper-V Manager na komputerze zarządzania i połącz się z serwerem wirtualizacji. Możesz to zrobić, klikając pozycję "Połącz z serwerem..." w okienku Akcje lub klikając prawym przyciskiem myszy pozycję Menedżer Hyper-V i wybierając pozycję "Połącz z serwerem..." Podaj nazwę DNS serwera Hyper-V i, w razie potrzeby, poświadczenia wymagane do nawiązania z nim połączenia.
Korzystając z Hyper-V Managera, skonfiguruj zewnętrzny przełącznik na serwerze wirtualizacji, aby maszyna wirtualna z systemem Linux mogła uzyskać dostęp do Internetu i pobrać aktualizacje.
Następnie utwórz nową maszynę wirtualną do zainstalowania systemu operacyjnego Linux. W okienku akcji kliknij Nowa>Maszyna Wirtualna, aby wyświetlić kreatora. Podaj przyjazną nazwę maszyny wirtualnej, taką jak "Pre-templatizowany Linux", a następnie kliknij Dalej.
Na drugiej stronie Kreatora wybierz pozycję Generacja 2, aby upewnić się, że maszyna wirtualna jest aprowizowana przy użyciu profilu oprogramowania układowego opartego na interfejsie UEFI.
Ukończ resztę kreatora zgodnie z preferencjami. Nie używaj dysku różnicowego dla tej maszyny wirtualnej; dyski szablonu maszyny wirtualnej z osłoną nie mogą używać dysków różnicowych. Na koniec połącz pobrany wcześniej obraz ISO z wirtualną stacją DYSKÓW DVD dla tej maszyny wirtualnej, aby można było zainstalować system operacyjny.
W programie Hyper-V Manager wybierz nowo utworzoną maszynę wirtualną i kliknij pozycję Połącz... w okienku Akcje, aby dołączyć do konsoli wirtualnej maszyny wirtualnej. W wyświetlonym oknie kliknij przycisk Uruchom, aby włączyć maszynę wirtualną.
Przejdź do procesu instalacji wybranej dystrybucji systemu Linux. Podczas gdy każda dystrybucja systemu Linux używa innego kreatora konfiguracji, należy spełnić następujące wymagania dla maszyn wirtualnych, które staną się dyskami szablonów maszyn wirtualnych z osłoną systemu Linux:
- Dysk musi być podzielony na partycje przy użyciu układu tabeli partycjonowania GUID (GPT)
- Partycja główna musi być zaszyfrowana za pomocą narzędzia dm-crypt. Hasło powinno być ustawione na hasło (wszystkie małe litery). To hasło zostanie losowe, a partycja zostanie ponownie zaszyfrowana po aprowizacji chronionej maszyny wirtualnej.
- Partycja rozruchowa musi używać systemu plików ext2
Po pełnym uruchomieniu systemu operacyjnego Linux i zalogowaniu zaleca się zainstalowanie jądra linux-virtual i skojarzonych pakietów usług integracji Hyper-V. Ponadto należy zainstalować serwer SSH lub inne narzędzie do zdalnego zarządzania w celu uzyskania dostępu do maszyny wirtualnej po jego osłonie.
W systemie Ubuntu uruchom następujące polecenie, aby zainstalować następujące składniki:
sudo apt-get install linux-virtual linux-tools-virtual linux-cloud-tools-virtual linux-image-extra-virtual openssh-server
W systemie RHEL uruchom następujące polecenie:
sudo yum install hyperv-daemons openssh-server sudo service sshd start
W systemie SLES uruchom następujące polecenie:
sudo zypper install hyper-v sudo chkconfig hv_kvp_daemon on sudo systemctl enable sshd
Skonfiguruj system operacyjny Linux zgodnie z potrzebami. Wszelkie instalowane oprogramowanie, dodawane konta użytkowników i wprowadzone zmiany konfiguracji w całym systemie będą stosowane do wszystkich przyszłych maszyn wirtualnych utworzonych na podstawie tego dysku szablonu. Należy unikać zapisywania jakichkolwiek tajemnic lub niepotrzebnych pakietów na dysku.
Jeśli planujesz wdrożyć maszyny wirtualne przy użyciu programu System Center Virtual Machine Manager, zainstaluj agenta gościa programu VMM, aby umożliwić programowi VMM specjalizację systemu operacyjnego podczas aprowizacji maszyny wirtualnej. Specjalizacja umożliwia bezpieczne konfigurowanie poszczególnych maszyn wirtualnych przy użyciu różnych użytkowników i kluczy SSH, konfiguracji sieci i niestandardowych kroków konfiguracji. Dowiedz się, jak uzyskać i zainstalować agenta gościa programu VMM w dokumentacji programu VMM.
Następnie dodaj repozytorium oprogramowania Microsoft Linux do swojego menedżera pakietów.
Korzystając z menedżera pakietów, zainstaluj pakiet lsvmtools, który zawiera bootloader shim dla zabezpieczonych maszyn wirtualnych Linux, komponenty do konfiguracji oraz narzędzie do przygotowania dysku.
# Ubuntu 16.04 sudo apt-get install lsvmtools # SLES 12 SP2 sudo zypper install lsvmtools # RHEL 7.3 sudo yum install lsvmtools
Po zakończeniu dostosowywania systemu operacyjnego Linux znajdź program instalacyjny lsvmprep w systemie i uruchom go.
# 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
Zamknij maszynę wirtualną.
Jeśli masz jakiekolwiek punkty kontrolne maszyny wirtualnej (w tym automatyczne punkty kontrolne utworzone przez Hyper-V za pomocą aktualizacji Windows 10 Fall Creators Update), przed kontynuowaniem pamiętaj o ich usunięciu. Punkty kontrolne tworzą dyski różnicowe (.avhdx), które nie są obsługiwane przez Kreatora Dysków Szablonu.
Aby usunąć punkty kontrolne, otwórz Hyper-V Manager, wybierz maszynę wirtualną, kliknij prawym przyciskiem myszy najwyższy punkt kontrolny w okienku Punkty kontrolne, a następnie kliknij Usuń poddrzewo punktu kontrolnego.
Ochrona dysku szablonu
Maszyna wirtualna przygotowana w poprzedniej sekcji jest prawie gotowa do użycia jako dysk szablonu maszyny wirtualnej z osłoną systemu Linux. Ostatnim krokiem jest uruchomienie dysku przez Kreatora Szablonu Dysku, który wygeneruje skrót i cyfrowo podpisze bieżący stan partycji root i boot. Skrót i podpis cyfrowy są weryfikowane, gdy chroniona maszyna wirtualna jest aprowizowana, aby upewnić się, że nie wprowadzono żadnych nieautoryzowanych zmian w dwóch partycjach między tworzeniem a wdrażaniem szablonu.
Uzyskiwanie certyfikatu w celu podpisania dysku
Aby cyfrowo podpisać pomiary dysku, należy uzyskać certyfikat na komputerze, na którym uruchomisz Kreator dysku szablonu. Certyfikat musi spełniać następujące wymagania:
Właściwość certyfikatu | Wymagana wartość |
---|---|
Algorytm klucza | RSA |
Minimalny rozmiar klucza | 2048 bitów |
Algorytm podpisu | SHA256 (zalecane) |
Użycie klucza | Podpis cyfrowy |
Szczegółowe informacje o tym certyfikacie będą wyświetlane dzierżawcom podczas tworzenia plików danych osłony i autoryzowania zaufanych dysków. Dlatego ważne jest, aby uzyskać ten certyfikat od urzędu certyfikacji, któremu zarówno ty, jak i twoi dzierżawcy ufacie. W scenariuszach przedsiębiorstwa, w których jesteś zarówno dostawcą usług hostingowych, jak i dzierżawcą, możesz rozważyć wystawienie tego certyfikatu z urzędu certyfikacji przedsiębiorstwa. Ostrożnie chroń ten certyfikat, ponieważ każdy, kto posiada ten certyfikat, może utworzyć nowe dyski szablonu, które są zaufane tak samo jak dysk autentyczny.
W środowisku laboratorium testowym można utworzyć certyfikat z podpisem własnym za pomocą następującego polecenia programu PowerShell:
New-SelfSignedCertificate -Subject "CN=Linux Shielded VM Template Disk Signing Certificate"
Przetwórz dysk za pomocą polecenia cmdlet narzędzia Template Disk Wizard
Skopiuj dysk szablonu i certyfikat na komputer z systemem Windows Server w wersji 1709, a następnie uruchom następujące polecenia, aby zainicjować proces podpisywania.
Dysk VHDX przekazany do parametru -Path
zostanie nadpisany zaktualizowanym dyskiem szablonu, więc przed uruchomieniem polecenia pamiętaj, aby wykonać kopię.
Ważne
Narzędzia administracji zdalnej serwera dostępne w systemie Windows Server 2016 lub Windows 10 nie mogą być używane do przygotowania dysku szablonu maszyny wirtualnej z osłoną systemu Linux. Używaj wyłącznie polecenia cmdlet Protect-TemplateDisk dostępnego w systemie Windows Server, wersja 1709 lub zestawu Narzędzi do zarządzania serwerem zdalnym dostępnego w systemie Windows Server 2019, aby przygotować dysk szablonu chronionej maszyny wirtualnej 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
Dysk szablonu jest teraz gotowy do aprowizacji maszyn wirtualnych z osłoną systemu Linux. Jeśli używasz programu System Center Virtual Machine Manager do wdrożenia maszyny wirtualnej, możesz teraz skopiować dysk VHDX do biblioteki programu VMM.
Możesz również wyodrębnić katalog sygnatur woluminów z dysku VHDX. Ten plik służy do dostarczania informacji o certyfikacie podpisywania, nazwie dysku i wersji właścicielom maszyn wirtualnych, którzy chcą używać szablonu. Aby upoważnić Cię, autora szablonu posiadającego certyfikat podpisywania, do tworzenia bieżących i przyszłych dysków szablonów dla nich, muszą zaimportować ten plik do Kreatora plików danych osłony.
Aby wyodrębnić wykaz sygnatur woluminów, uruchom następujące polecenie w programie PowerShell:
Save-VolumeSignatureCatalog -TemplateDiskPath 'C:\temp\MyLinuxTemplate.vhdx' -VolumeSignatureCatalogPath 'C:\temp\MyLinuxTemplate.vsc'