Erstellen eines Vorlagendatenträgers für abgeschirmte Linux-VMs

Gilt für: Windows Server 2022, Windows Server 2019

In diesem Thema wird erläutert, wie Sie einen Vorlagendatenträger für abgeschirmte Linux-VMs vorbereiten, die zum Instanziieren eines oder mehrerer Mandanten-VMs verwendet werden können.

Voraussetzungen

Zum Vorbereiten und Testen einer abgeschirmten Linux-VM müssen die folgenden Ressourcen verfügbar sein:

  • Ein Server mit Virtualisierungsfunktionen unter Windows Server Version 1709 oder höher
  • Ein zweiter Computer (Windows 10 oder Windows Server 2016), auf dem Hyper-V-Manager ausgeführt werden kann, um eine Verbindung mit der Konsole des ausgeführten virtuellen Computers herzustellen
  • Ein ISO-Image für eines der abgeschirmten Linux-VM-Betriebssysteme:
    • Ubuntu 16.04 LTS mit dem Kernel 4.4
    • Red Hat Enterprise Linux 7.3
    • SUSE Linux Enterprise Server 12 Service Pack 2
  • Internetzugriff zum Herunterladen des lsvmtools-Pakets und der Betriebssystemupdates

Wichtig

Neuere Versionen der vorherigen Linux-Betriebssysteme können einen bekannten TPM-Treiberfehler enthalten, der die erfolgreiche Bereitstellung als abgeschirmte VMs verhindert. Es wird nicht empfohlen, Ihre Vorlagen oder abgeschirmten VMs auf ein neueres Release zu aktualisieren, bis ein Fix verfügbar ist. Die oben stehende Liste der unterstützten Betriebssysteme wird aktualisiert, sobald Updates veröffentlicht werden.

Vorbereiten einer Linux-VM

Abgeschirmte VMs werden von geschützten Vorlagendatenträgern aus erstellt. Vorlagendatenträger enthalten das Betriebssystem für den virtuellen Computer und Metadaten, einschließlich einer digitalen Signatur der Partitionen „/boot“ und „/root“, um sicherzustellen, dass die Kernkomponenten des Betriebssystems vor der Bereitstellung nicht geändert werden.

Um einen Vorlagendatenträger zu erstellen, müssen Sie zunächst einen regulären (nicht abgeschirmten) virtuellen Computer erstellen, den Sie als Basisimage für zukünftige abgeschirmte VMs vorbereiten. Die installierte Software und die an der Konfiguration dieser VM vorgenommenen Änderungen werden für alle abgeschirmten VMs übernommen, die von diesem Vorlagendatenträger aus erstellt werden. Diese Schritte führen Sie durch die absoluten Mindestanforderungen, um eine Linux-VM für die Verwendung von Vorlagen vorzubereiten.

Hinweis

Die Linux-Datenträgerverschlüsselung wird bei der Partitionierung des Datenträgers konfiguriert. Dies bedeutet, dass Sie eine neue VM erstellen müssen, die mit „dm-crypt“ vorverschlüsselt wurde, um einen Vorlagendatenträger für abgeschirmte Linux-VMs zu erstellen.

  1. Stellen Sie sicher, dass auf dem Virtualisierungsserver Hyper-V und die Hyper-V-Supportfeatures von Host Guardian installiert sind, indem Sie die folgenden Befehle in einer PowerShell-Konsole mit erhöhten Rechten ausführen:

    Install-WindowsFeature Hyper-V, HostGuardian -IncludeManagementTools -Restart
    
  2. Laden Sie das ISO-Image aus einer vertrauenswürdigen Quelle herunter, und speichern Sie es auf Ihrem Virtualisierungsserver oder in einer Dateifreigabe, auf die Ihr Virtualisierungsserver zugreifen kann.

  3. Installieren Sie auf Ihrem Verwaltungscomputer, auf dem Windows Server, Version 1709, ausgeführt wird, die Tools zur Remoteserververwaltung für abgeschirmte VMs, indem Sie den folgenden Befehl ausführen:

    Install-WindowsFeature RSAT-Shielded-VM-Tools
    
  4. Öffnen Sie Hyper-V-Manager auf Ihrem Verwaltungscomputer, und stellen Sie eine Verbindung mit Ihrem Virtualisierungsserver her. Klicken Sie hierzu auf „Mit Server verbinden...“ im Bereich „Aktionen“ oder klicken Sie mit der rechten Maustaste auf „Hyper-V-Manager“, und wählen Sie „Mit Server verbinden...“ aus. Geben Sie den DNS-Namen für Ihren Hyper-V-Server und ggf. die Anmeldeinformationen an, die zum Herstellen einer Verbindung mit dem Hyper-V-Server erforderlich sind.

  5. Konfigurieren Sie einen externen Switch auf Ihrem Virtualisierungsserver mithilfe des Hyper-V-Managers, damit die Linux-VM auf das Internet zugreifen und Updates abrufen kann.

  6. Erstellen Sie als Nächstes einen neuen virtuellen Computer, auf dem das Linux-Betriebssystem installiert werden soll. Klicken Sie im Bereich „Aktionen“ auf Neu>Virtueller Computer, um den Assistenten aufzurufen. Geben Sie einen Anzeigenamen für Ihre VM an, z. B. „Vorbereitetes vorlagenbasiertes Linux“, und klicken Sie auf Weiter.

  7. Wählen Sie auf der zweiten Seite des Assistenten Generation 2 aus, um sicherzustellen, dass die VM mit einem UEFI-basierten Firmwareprofil bereitgestellt wird.

  8. Füllen Sie den Rest des Assistenten nach Ihren Wünschen aus. Verwenden Sie für diese VM keinen differenzierenden Datenträger. Abgeschirmte VM-Vorlagendatenträger können keine differenzierenden Datenträger verwenden. Verbinden Sie schließlich das zuvor heruntergeladene ISO-Image mit dem virtuellen DVD-Laufwerk für diesen virtuellen Computer, um das Betriebssystem installieren zu können.

  9. Wählen Sie im Hyper-V-Manager Ihre neu erstellte VM aus, und klicken Sie im Bereich „Aktionen“ auf Verbinden..., um eine virtuelle Konsole des virtuellen Computers anzufügen. Klicken Sie im daraufhin angezeigten Fenster auf Start, um den virtuellen Computer einzuschalten.

  10. Fahren Sie mit dem Setupprozess für Ihre ausgewählte Linux-Verteilung fort. Jede Linux-Verteilung verwendet zwar einen anderen Setup-Assistenten, die folgenden Anforderungen müssen aber für VMs erfüllt sein, die zu Vorlagendatenträgern für abgeschirmte Linux-VMs werden:

    • Der Datenträger muss mithilfe des GPT-Layouts (GUID Partitioning Table) partitioniert werden.
    • Die Stammpartition muss mit dm-crypt verschlüsselt werden. Die Passphrase sollte auf passphrase (komplett in Kleinbuchstaben) festgelegt werden. Diese Passphrase wird randomisiert, und die Partition wird erneut verschlüsselt, wenn eine abgeschirmte VM bereitgestellt wird.
    • Die Startpartition muss das ext2-Dateisystem verwenden.
  11. Nachdem Ihr Linux-Betriebssystem vollständig gestartet wurde und Sie sich angemeldet haben, sollten Sie den virtuellen Linux-Kernel und die zugehörigen Hyper-V-Integrationsdienstpakete installieren. Darüber hinaus sollten Sie einen SSH-Server oder ein anderes Remoteverwaltungstool installieren, um auf die VM zuzugreifen, sobald sie abgeschirmt ist.

    Führen Sie unter Ubuntu den folgenden Befehl aus, um diese Komponenten zu installieren:

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

    Führen Sie unter RHEL stattdessen den folgenden Befehl aus:

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

    Und unter SLES führen Sie den folgenden Befehl aus:

    sudo zypper install hyper-v
    sudo chkconfig hv_kvp_daemon on
    sudo systemctl enable sshd
    
  12. Konfigurieren Sie Ihr Linux-Betriebssystem wie gewünscht. Software, die Sie installieren, Benutzerkonten, die Sie hinzufügen, und systemweite Konfigurationsänderungen, die Sie vornehmen, gelten für alle zukünftigen VMs, die basierend auf diesem Vorlagendatenträger erstellt werden. Sie sollten keine Geheimnisse oder unnötigen Pakete auf dem Datenträger speichern.

  13. Wenn Sie planen, System Center Virtual Machine Manager zum Bereitstellen Ihrer VMs zu verwenden, installieren Sie den VMM-Gast-Agent, damit VMM Ihr Betriebssystem während der VM-Bereitstellung spezialisieren kann. Durch die Spezialisierung kann jede VM mit unterschiedlichen Benutzern und SSH-Schlüsseln, Netzwerkkonfigurationen sowie benutzerdefinierten Einrichtungsschritten sicher eingerichtet werden. Wie Sie den VMM-Gast-Agent abrufen und installieren, erfahren Sie in der VMM-Dokumentation.

  14. Als Nächstes, fügen Sie dem Paket-Manager das Microsoft Linux-Softwarerepository hinzu.

  15. Installieren Sie mit Ihrem Paket-Manager das Paket „lsvmtools“, das den Bootloader-Shim für eine abgeschirmte Linux-VM, Bereitstellungskomponenten und das Datenträgervorbereitungstool enthält.

    # Ubuntu 16.04
    sudo apt-get install lsvmtools
    
    # SLES 12 SP2
    sudo zypper install lsvmtools
    
    # RHEL 7.3
    sudo yum install lsvmtools
    
  16. Wenn Sie mit der Anpassung des Linux-Betriebssystems fertig sind, suchen Sie das Installationsprogramm „lsvmprep“ auf Ihrem System, und führen Sie es aus.

    # 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. Fahren Sie Ihre VM herunter.

  18. Wenn Sie Prüfpunkte Ihrer VM erstellt haben (einschließlich automatischer Prüfpunkte, die von Hyper-V mit dem Windows 10 Fall Creators Update erstellt wurden), müssen Sie diese löschen, bevor Sie fortfahren. Prüfpunkte erstellen differenzierende Datenträger (AVHDX), die vom Assistenten für Vorlagendatenträger nicht unterstützt werden.

    Um Prüfpunkte zu löschen, öffnen Sie Hyper-V-Manager, wählen Sie Ihren virtuellen Computer aus, klicken Sie mit der rechten Maustaste auf den obersten Prüfpunkt im Bereich „Prüfpunkte“, und klicken Sie dann auf Unterstruktur des Prüfpunkts löschen.

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

Schützen des Vorlagendatenträgers

Die VM, die Sie im vorherigen Abschnitt vorbereitet haben, ist fast bereit für die Verwendung als Vorlagendatenträger für abgeschirmte Linux-VMs. Der letzte Schritt besteht darin, den Datenträger über den Assistenten für Vorlagendatenträger auszuführen, der für den aktuellen Zustand der Stamm- und Startpartitionen einen Hash und eine digitale Signatur erstellt. Der Hash und die digitale Signatur werden bei der Bereitstellung einer abgeschirmten VM überprüft, um sicherzustellen, dass zwischen der Vorlagenerstellung und -bereitstellung keine nicht autorisierten Änderungen an den beiden Partitionen vorgenommen wurden.

Abrufen eines Zertifikats zum Signieren des Datenträgers

Um die Datenträgermessungen digital zu signieren, müssen Sie ein Zertifikat auf dem Computer abrufen, auf dem Sie den Assistenten für Vorlagendatenträger ausführen. Das Zertifikat muss die folgenden Anforderungen erfüllen:

Certificate-Eigenschaft Erforderlicher Wert
Schlüsselalgorithmus RSA
Minimale Schlüsselgröße 2.048 Bits
Signaturalgorithmus SHA256 (empfohlen)
Schlüsselverwendung Digitale Signatur

Details zu diesem Zertifikat werden den Mandanten angezeigt, wenn diese ihre geschützten Datendatei erstellen und vertrauenswürdige Datenträger autorisieren. Daher ist es wichtig, dieses Zertifikat von einer Zertifizierungsstelle zu erhalten, der sowohl Sie als auch Ihre Mandanten vertrauen. In Unternehmensszenarien, in denen Sie sowohl Hoster als auch Mandant sind, sollten Sie in Erwägung ziehen, dieses Zertifikat von Ihrer Unternehmenszertifizierungsstelle auszustellen. Schützen Sie dieses Zertifikat sorgfältig, da jeder, der im Besitz dieses Zertifikats ist, neue Vorlagendatenträger erstellen kann, die als genauso vertrauenswürdig eingestuft werden wie ihr authentischer Datenträger.

In einer Testumgebung können Sie mit dem folgenden PowerShell-Befehl ein selbstsigniertes Zertifikat erstellen:

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

Verarbeiten des Datenträgers mit dem Cmdlet des Assistenten für Vorlagendatenträger

Kopieren Sie den Vorlagendatenträger und das Zertifikat auf einen Computer, auf dem Windows Server, Version 1709, ausgeführt wird, und führen Sie dann die folgenden Befehle aus, um den Signaturvorgang zu initiieren. Die VHDX, die Sie für den Parameter -Path angeben, wird mit dem aktualisierten Vorlagendatenträger überschrieben. Stellen Sie daher sicher, dass Sie vor dem Ausführen des Befehls eine Kopie erstellen.

Wichtig

Die auf Windows Server 2016 oder Windows 10 verfügbaren Remoteserver-Verwaltungstools können nicht verwendet werden, um einen Vorlagendatenträger für abgeschirmte Linux-VMs vorzubereiten. Verwenden Sie zum Vorbereiten eines Vorlagendatenträgers für abgeschirmte Linux-VMs nur das Cmdlet Protect-TemplateDisk, das unter Windows Server, Version 1709, verfügbar ist, oder die unter Windows Server 2019 verfügbaren Remoteserver-Verwaltungstools.

# 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

Ihr Vorlagendatenträger kann jetzt zum Bereitstellen von geschützten Linux-VMs verwendet werden. Wenn Sie zum Bereitstellen Ihres virtuellen Computers System Center Virtual Machine Manager verwenden, können Sie die VHDX jetzt in Ihre VMM-Bibliothek kopieren.

Sie können auch den Volumesignaturkatalog aus der VHDX extrahieren. Diese Datei wird verwendet, um VM-Besitzern, die Ihre Vorlage verwenden möchten, Informationen über das Signaturzertifikat, den Datenträgernamen und die Version bereitzustellen. Sie müssen diese Datei in den Assistenten für geschützte Datendateien importieren, um Sie als Vorlagenautor, der im Besitz des Signaturzertifikats ist, zu autorisieren, diese und zukünftige Vorlagendatenträger für sie zu erstellen.

Führen Sie zum Extrahieren des Volumesignaturkatalogs den folgenden Befehl in PowerShell aus:

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