Erstellen eines linux-abgeschirmten VM-Vorlagendatenträgers

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 benötigen Sie die folgenden Ressourcen:

  • Ein Server mit Virtualisierungskapazität, der Windows Server, Version 1709 oder höher ausgeführt wird
  • Ein zweiter Computer (Windows 10 oder Windows Server 2016), der Hyper-V-Manager ausführen kann, um eine Verbindung mit der Konsole des ausgeführten virtuellen Computers herzustellen.
  • Ein ISO-Image für ein unterstütztes Linux-abgeschirmtes VM-OSes:
    • Ubuntu 16.04 LTS mit dem 4.4 Kernel
    • Red Hat Enterprise Linux 7.3
    • SUSE Linux Enterprise Server 12 Service Pack 2
  • Internetzugriff zum Herunterladen des lsvmtools-Pakets und Betriebssystemupdates

Wichtig

Neuere Versionen der vorherigen Linux-OSes können einen bekannten TPM-Treiberfehler enthalten, der verhindert, dass sie erfolgreich als abgeschirmte VMs bereitgestellt werden. Es wird nicht empfohlen, Ihre Vorlagen oder abgeschirmten VMs auf eine neuere Version zu aktualisieren, bis ein Fix verfügbar ist. Die Liste der oben unterstützten OSes wird aktualisiert, wenn die Updates öffentlich gemacht werden.

Vorbereiten einer Linux-VM

Abgeschirmte VMs werden von sicheren Vorlagendatenträgern erstellt. Vorlagendatenträger enthalten das Betriebssystem für die VM und Metadaten, einschließlich einer digitalen Signatur der Partitionen "/boot" und "/root", um sicherzustellen, dass kerne Betriebssystemkomponenten vor der Bereitstellung nicht geändert werden.

Um einen Vorlagendatenträger zu erstellen, müssen Sie zunächst einen regulären virtuellen Computer (unshielded) erstellen, den Sie als Basisimage für zukünftige abgeschirmte VMs vorbereiten. Die Software, die Sie installieren und konfigurationsänderungen an dieser VM vornehmen, gelten für alle abgeschirmten VMs, die von diesem Vorlagendatenträger erstellt wurden. Diese Schritte führen Sie durch die bloßen Mindestanforderungen, um eine Linux-VM für die Templatisierung vorzubereiten.

Hinweis

Die Linux-Datenträgerverschlüsselung wird konfiguriert, wenn der Datenträger partitioniert wird. Dies bedeutet, dass Sie eine neue VM erstellen müssen, die mit dm-crypt vorab verschlüsselt ist, um einen linux-abgeschirmten VM-Vorlagendatenträger zu erstellen.

  1. Stellen Sie auf dem Virtualisierungsserver sicher, dass Hyper-V und die Hyper-V-Supportfunktionen von Host Guardian installiert werden, 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 auf einer Dateifreigabe, auf die auf Ihren Virtualisierungsserver zugegriffen werden kann.

  3. Installieren Sie auf Ihrem Verwaltungscomputer, auf dem Windows Server Version 1709 ausgeführt wird, die abgeschirmten VM-Remoteserver-Verwaltungstools, 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. Sie können dies tun, indem Sie auf "Verbinden zu Server..." klicken. klicken Sie im Bereich "Aktionen" oder klicken Sie mit der rechten Maustaste auf den Hyper-V-Manager, und wählen Sie "Verbinden zu Server..." aus. Geben Sie den DNS-Namen für Ihren Hyper-V-Server an, und geben Sie ggf. die anmeldeinformationen an, die erforderlich sind, um eine Verbindung herzustellen.

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

  6. Erstellen Sie als Nächstes einen neuen virtuellen Computer, um das Linux-Betriebssystem zu installieren. Klicken Sie im Bereich "Aktionen" auf "NewVirtual> Machine", um den Assistenten anzuzeigen. Geben Sie einen Anzeigenamen für Ihren virtuellen Computer an, z. B. "Vor templatisiertes Linux", und klicken Sie auf "Weiter".

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

  8. Schließen Sie den rest des Assistenten entsprechend Ihren Vorlieben ab. Verwenden Sie keinen unterschiedlichen Datenträger für diesen virtuellen Computer; abgeschirmte VM-Vorlagendatenträger können keine unterschiedlichen Datenträger verwenden. Verbinden Sie schließlich das ISO-Image, das Sie zuvor auf das virtuelle DVD-Laufwerk für diese VM heruntergeladen haben, damit Sie das Betriebssystem installieren können.

  9. Wählen Sie im Hyper-V-Manager Ihren neu erstellten virtuellen Computer aus, und klicken Sie im Bereich "Aktionen" auf Verbinden... um eine virtuelle Konsole der VM anzufügen. Klicken Sie im angezeigten Fenster auf " Start ", um den virtuellen Computer zu aktivieren.

  10. Fahren Sie mit dem Setupprozess für Ihre ausgewählte Linux-Verteilung fort. Während jede Linux-Distribution einen anderen Setup-Assistenten verwendet, müssen die folgenden Anforderungen für VMs erfüllt werden, die zu Linux-abgeschirmten VM-Vorlagendatenträgern werden:

    • Der Datenträger muss mithilfe des GPT-Layouts (GUID Paritioning Table) partitioniert werden.
    • Die Stammpartition muss mit dm-crypt verschlüsselt werden. Die Passphrase sollte auf Passphrase (alle Kleinbuchstaben) festgelegt werden. Diese Passphrase wird zufällig und die Partition erneut verschlüsselt, wenn eine abgeschirmte VM bereitgestellt wird.
    • Die Startpartition muss das Ext2-Dateisystem verwenden.
  11. Sobald Ihr Linux-Betriebssystem vollständig gestartet wurde und Sie angemeldet sind, wird empfohlen, die Pakete für die Linux-virtuelle Kernel- und die zugehörigen Hyper-V-Integrationsdienste zu installieren. Darüber hinaus möchten Sie einen SSH-Server oder ein anderes Remoteverwaltungstool installieren, um auf die VM zuzugreifen, sobald sie abgeschirmt ist.

    Führen Sie auf 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 auf RHEL stattdessen den folgenden Befehl aus:

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

    Führen Sie auf SLES 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. Jede software, die Sie installieren, Benutzerkonten, die Sie hinzufügen, und systemweite Konfigurationsänderungen, die Sie vornehmen, gelten für alle zukünftigen VMs, die von diesem Vorlagendatenträger erstellt wurden. Sie sollten keine geheimen 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, um VMM zu ermöglichen, Ihr Betriebssystem während der VM-Bereitstellung zu spezialisieren. Die Spezialisierung ermöglicht es jedem virtuellen Computer, sicher mit verschiedenen Benutzern und SSH-Schlüsseln, Netzwerkkonfigurationen und benutzerdefinierten Setupschritten einzurichten. Erfahren Sie, wie Sie den VMM-Gast-Agent in der VMM-Dokumentation abrufen und installieren .

  14. Fügen Sie als Nächstes das Microsoft Linux-Software-Repository zu Ihrem Paket-Manager hinzu.

  15. Installieren Sie mit Ihrem Paket-Manager das lsvmtools-Paket, das das linux-abgeschirmte VM-Bootloader shim, Bereitstellungskomponenten und 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 das Anpassen des Linux-Betriebssystems abgeschlossen haben, suchen Sie das lsvmprep-Installationsprogramm 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. Herunterfahren Sie Ihren virtuellen Computer.

  18. Wenn Sie Prüfpunkte Ihrer VM (einschließlich automatischer Prüfpunkte, die von Hyper-V mit dem Windows 10 Fall Creators Update erstellt wurden), sollten Sie sie löschen, bevor Sie fortfahren. Prüfpunkte erstellen unterschiedliche Datenträger (AVHDX), die vom Vorlagendatenträger-Assistenten 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 Prüfpunktbereich, und klicken Sie dann auf "Prüfpunktunterstruktur 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, als linux-abgeschirmter VM-Vorlagendatenträger verwendet zu werden. Der letzte Schritt besteht darin, den Datenträger über den Vorlagendatenträger-Assistenten auszuführen, der den aktuellen Status der Stamm- und Startpartitionen digital signiert und signiert. Die Hash- und digitale Signatur werden überprüft, wenn eine abgeschirmte VM bereitgestellt wird, um sicherzustellen, dass keine nicht autorisierten Änderungen an den beiden Partitionen zwischen der Vorlagenerstellung und -bereitstellung 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 Vorlagendatenträger-Assistenten ausführen. Das Zertifikat muss die folgenden Anforderungen erfüllen:

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

Details zu diesem Zertifikat werden Mandanten angezeigt, wenn sie ihre abschirmenden Datendateien erstellen und Datenträger autorisieren, denen sie vertrauen. Daher ist es wichtig, dieses Zertifikat von einer Zertifizierungsstelle gegenseitig von Ihnen und Ihren Mandanten zu erhalten. In Unternehmensszenarien, in denen Sie sowohl hoster als auch mandant sind, können Sie dieses Zertifikat von Ihrer Unternehmenszertifizierungsstelle ausstellen. Schützen Sie dieses Zertifikat sorgfältig, da jeder, der in Besitz dieses Zertifikats ist, neue Vorlagendatenträger erstellen kann, die mit Ihrem authentischen Datenträger identisch sind.

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

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

Verarbeiten des Datenträgers mit dem Cmdlet "Vorlagendatenträger-Assistent"

Kopieren Sie den Vorlagendatenträger und das Zertifikat auf einen Computer mit Windows Server, Version 1709, und führen Sie dann die folgenden Befehle aus, um den Signaturvorgang zu initiieren. Der VHDX, den Sie für den -Path Parameter bereitstellen, 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 linux-abgeschirmten VM-Vorlagendatenträger vorzubereiten. Verwenden Sie nur das Cmdlet Protect-TemplateDisk, das auf Windows Server, Version 1709 oder den Remoteserver-Verwaltungstools verfügbar ist, die auf Windows Server 2019 verfügbar sind, um einen abgeschirmten VM-Vorlagendatenträger für Linux vorzubereiten.

# 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

Der Vorlagendatenträger kann jetzt verwendet werden, um abgeschirmte Linux-VMs bereitzustellen. Wenn Sie System Center Virtual Machine Manager zum Bereitstellen Ihrer VM verwenden, können Sie die VHDX jetzt in Ihre VMM-Bibliothek kopieren.

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

Um den Volumensignaturkatalog zu extrahieren, führen Sie den folgenden Befehl in PowerShell aus:

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