Tags: Hyper-V, Sicherheit, Windows Server 2016, Verschlüsselung
Der Host Guardian Service in Windows Server 2016 dient dazu, Hyper-V Hosts für integer zu erklären, bevor auf ihnen Shielded VMs laufen und dorthin migriert werden können. Die virtuellen Maschinen müssen entsprechend konfiguriert werden, um als Shielded VMs zu gelten. Das lässt sich ohne VMM mit PowerShell erledigen.
Ein Deployment des Host Guardian Service (HGS) samt Guarded Hosts ist Voraussetzung, um die in diesem Blog-Post beschriebene Konfiguration einer geschirmten VM nachzuvollziehen. Die Einrichtung des HGS im Admin-trusted Mode habe ich in diesem Beitrag beschrieben. Sollten Sie mit dem Konzept der Shielded VMs oder der Guarded Fabric noch nicht vertraut sein, dann empfehle ich Ihnen einen Blick in diesen Grundlagenbeitrag.
Konfiguration mit PowerShell und ohne VMM
Microsoft positioniert den Virtual Machine Manager als das bevorzugte Tool, um die Infrastruktur für Shielded VMs aufzubauen. Im Lab beschränke ich mich auf die Schirmung der VMs mit PowerShell unter einem Standalone Host außerhalb der Guarded Fabric.
Dabei werden bereits laufende VMs mit Windows Server 2012 R2, wie sie praktisch im Rechenzentrum vorkommen, zu Shielded VMs konfiguriert. Die vorbereiteten VMs gelangen durch einen Export/Import dann auf die Guarded Hosts. Erwähnenswert ist außerdem, dass die Attestierung der Hyper-V Hosts hier im AD-trusted Modus passiert.
Meine vorhandene Gen2 VM leistet ihren Dienst auf einem Standalone Hyper-V-Host 2016 (violett) und führt das Gastbetriebssystem Windows Server 2012 R2 inklusive aller Updates aus. Die Guarded Fabric besteht aus zwei Guarded Hosts als S2D-Verbund (gelb) und dem dazugehörigen Active Directory (grün). Dazu kommt der Host Guardian Server (in der zweiten Zeile) samt dediziertem Forest.
Erreichbarkeit des HGS prüfen und Metadaten abgreifen
Bevor die 2012R2-Maschine auf dem Standalone Host geschirmt wird, sollte man kurz verifizieren, ob die Guarded Fabric funktioniert. Guarded Hosts müssen also den Attestierungsstatus positiv bescheinigen und um diese Bescheinigung zu erhalten, wird auf den Guarded Hosts folgendes Cmdlet ausgeführt:
Get-HgsClientConfiguration
und sollte das Ergebnis
IsHostGuarded = True
AttestationStatus = Passed
liefern. Zusätzlich kann ein Get-HgsTrace -RunDiagnostics relevante Daten zur Lauffähigkeit der Guarded Fabric analysieren.
Bei diesem Resultat und der Erreichbarkeit des Host Guardian Service muss nun für eine spätere Verarbeitung die metadata.xml exportiert werden.
Dafür kann auf einem der beiden Guarded Host folgendes Cmdlet ausgeführt werden, der URL zum HGS muss entsprechend angepasst werden:
Invoke-WebRequest http://hgs.privatecloud.lab/KeyProtection/service/metadata/2014-07/metadata.xml -OutFile C:\META\HGSGuardian.xml
Die in diesem Fall erstellten Guardian Metadaten sind für die Autorisierung der Fabric-Struktur erforderlich und um unsere Shielded VM zu betreiben. Sie enthalten unter anderem die öffentlichen Schlüssel der HGS Zertifikate zur Verschlüsselung und Signierung. Das XML-File kopiert man nun in ein Verzeichnis auf den Standalone Hyper-V Host, wo es später für den Import mittels PowerShell-Befehl erreichbar sein sollte.
Remote Desktop Protokoll und Schirmung aktivieren
Bevor jetzt die Schirmung samt virtuellem TPM erfolgt, ist es wichtig, Remotedesktop auf dieser Maschine zu aktivieren. Eine Shielded VM auf einem Guarded Host kann nämlich durch den Fabric-Administrator nicht per VMConnect eingesehen und konfiguriert werden.
Nach dem Zulassen von Remote-Verbindungen in die 2012R2-VM wird die Maschine heruntergefahren, um sie offline zu schirmen. Dafür benötigen wir einen Key Protector, welcher seinerseits einen definierten Owner in Form von lokalen Zertifikaten und einen Guardian (durch den Import der bereits erstellten XML-Datei) braucht. Der Owner (local Guardian) ist wichtig für den Start der VM, sollte der HGS nicht erreichbar sein. Dieser lässt es zu die Shielded VM auf dem lokalen Host zu entschlüsseln. Letztendlich bin ich imstande, die VM meines separat betriebenen Hyper-V Hosts folgendermaßen vorzubereiten:
Den Schalter AllowUntrustedRoot verwende ich hier, da im Labor beim KPS selbstsignierte Zertifikate zum Einsatz kommen. Im letzten Cmdlet erkennt man die Aktivierung des vTPM, damit BitLocker später die VHDX verschlüsseln kann. Um eine encryption-supported VM zu konfigurieren, kann im Set-VMSecurityPolicy der Schalter Shielded von $true auf $false getauscht werden.
Export der Shielded VM und Import im Guardian Cluster
Da die VM nun vorbereitet ist, lässt sie sich über den Hyper-V Manager exportieren. Mit der rechten Maustaste erreicht man das Kontextmenü und führt dort wie gewohnt den Befehl Export aus. Die soeben exportierte VM kann dann auf dem Guarded Host wieder importiert und in meinem Fall hochverfügbar konfiguriert werden.
Der Versuch, nun eine Verbindung mit der geschirmten VM via VMConnect herzustellen, scheitert dann wie erwartet:
Somit kommt uns nun der zuvor konfigurierte Remotedesktop zugute, denn er erlaubt den internen Zugriff über den Gast. Auf diesem Weg können wir nun BitLocker in der Shielded VM aktivieren.
Nachdem das passiert ist und die Laufwerke verschlüsselt sind, migriere ich erfolgreich die VM live von Node A nach Node B. Das testweise Herunterfahren des HGS-Knoten führt bei der Live Migration zum erwünschten Fehler.
Täglich Know-how für IT-Pros mit unserem Newsletter
Marcel Küppers arbeitet seit über 25 Jahren in der IT, aktuell als Team Leader, zuvor als Consultant und Infrastructure Architect unter anderem für den japanischen Konzern JTEKT/TOYODA mit Verantwortung über die Europastandorte Krefeld und Paris. Darüber hinaus wirkte er als Berater im EU-Projekt-Team für alle Lokationen des Konzerns mit und ist spezialisiert auf hochverfügbare virtualisierte Microsoft-Umgebungen plus Hybrid Cloud Solutions. Zertifizierungen: MS Specialist und MCTS für Hyper-V/SCVMM, MCSE, MCITP, MCSA. Zusätzlich zertifiziert für PRINCE2 Projektmanagementmethode.
// Kontakt: E-Mail, Twitter, LinkedIn //
Ähnliche Beiträge
- Überblick: Windows Server 2016 Shielded Virtual Machines
- vTPM in Hyper-V 2016 aktivieren und VM-Laufwerke mit Bitlocker verschlüsseln
- Shielded VMs in Windows Server 2016 Hyper-V: Host Guardian Service, Beglaubigungsmodi
- AD-Zertifikatsdienste (AD CS) von SHA-1 auf SHA-2 migrieren: Gründe und Hindernisse
- Hysolate im Test: Potenziell gefährliche User-Aktivitäten in eine sichere Umgebung verlagern
Weitere Links