Lesezeit
3 Minuten
Security mit Shielded-VMs und Host Guardian Service (2)
Der Host Guardian Service sorgt in der Datacenter Edition für die Sicherheit von VMs. Virtuelle Server lassen sich so härten und vor anderen Administratoren, Angreifern und unberechtigten Zugriffen abschotten. Zusammen mit Shielded-VM verweigert dieser Sicherheitsmechanismus Angreifern und Malware den Zugriff auf die Daten der VM. Auch Netzwerke, die von Angreifern übernommen wurden oder bei denen andere Bereiche kompromittiert sind, stellen keine Gefahr für derart gesicherte VMs dar. In der zweiten Folge des Workshops beschäftigen wir uns mit der Konfiguration des Host Guardian Service und zeigen, wie Sie Shielded-VMs erstellen und mit SCVMM verwalten.
Host Guardian Service konfigurieren
Wenn Sie auf einem Server die HGS-Serverrolle installiert haben, zum Beispiel in der PowerShell mit
Sobald die Namensauflösung funktioniert, können Sie auf dem HGS-Server die Vertrauensstellung zwischen HGSAD und dem Fabric-AD einrichten, also Ihrem produktiven AD, in dem sich die Guarded Hosts befinden. In der PowerShell erledigen Sie dies beispielsweise wie folgt:
Den Befehl führen Sie wiederum in der PowerShell des HGS-Servers aus. Die SID können Sie auch in der PowerShell mit
Außerdem sollten Sie mit dem Internet Explorer auf dem Server überprüfen, ob der HGS auf Anfragen antwortet. Dazu rufen Sie die URL "http://localhost/KeyProtection/servic/metadata/2014-07/metadata.xml" auf. Als Antwort erscheint eine XML-Seite mit Informationen.
In produktiven Umgebungen sollten Sie noch die Einträge in der Ereignisanzeige der HGS-Server überwachen. Entweder nutzen Sie dazu Tools wie System Center Operations Manager oder andere Überwachungswerkzeuge. Sie können dazu auch ein Ereignisabonnement erstellen. Im Rahmen des Abonnements können Sie die Ereignisse filtern:
jp/ln/Thomas Joos
[1] https://docs.microsoft.com/en-us/windows-server/security/guarded-fabric-shielded-vm/guarded-fabric-deployment-overview
Wenn Sie auf einem Server die HGS-Serverrolle installiert haben, zum Beispiel in der PowerShell mit
Install-WindowsFeature -Name HostGuardianServiceRole -IncludeManagementTools -Restarterstellen Sie auf dem Server zunächst eine neue AD-Domäne. Danach initialisieren Sie den HGS-Server. Im ersten Schritt öffnen Sie dazu eine PowerShell-Sitzung und konfigurieren die neue Domäne für HGS:
Install-HgsServer -HgsDomainName "hostgs.com" -SafeModeAdministratorPassword (read-host -prompt <Kennwort> -assecurestring) -RestartDanach richten Sie die Umgebung ein. Sie können für Testumgebungen ein selbstsigniertes Zertifikat verwenden, in produktiven Umgebungen ist jedoch ein Zertifikat aus den AD-Zertifikatsdiensten zu bevorzugen. Die Konfiguration ist am einfachsten, wenn Sie die einzelnen Werte, die Sie in der PowerShell angeben müssen, zuvor in Variablen speichern, wie im Listing "Zertifikat für HGS erzeugen" gezeigt. Tragen Sie bei den jeweiligen Befehlen die Daten Ihrer Umgebung ein. Die Ausführung der Befehle darf keine Fehler verursachen.
Anschließend müssen Sie sicherstellen, dass die Namensauflösung zwischen den beiden Active-Directory-Gesamtstrukturen funktioniert. Dazu arbeiten Sie am besten mit bedingten Weiterleitungen in beiden Umgebungen. Ihr DNS-Server kann nur Anfragen der Clients beantworten, für die Zonen hinterlegt wurden. Wollen Sie auch andere Zonen auflösen, müssen Sie im DNS konfigurieren, welche Server gefragt werden sollen. Der DNS-Server überprüft zunächst, ob er für die Domäne zuständig ist. Wenn er weder Zone noch Delegation findet, werden die DNS-Server gefragt, die über den Eintrag "Bedingte Weiterleitungen" in der Konsolenstruktur hinterlegt sind.
Sobald die Namensauflösung funktioniert, können Sie auf dem HGS-Server die Vertrauensstellung zwischen HGSAD und dem Fabric-AD einrichten, also Ihrem produktiven AD, in dem sich die Guarded Hosts befinden. In der PowerShell erledigen Sie dies beispielsweise wie folgt:
$HGSDomainName = "hostgs.com" $ADDomainName = "contoso.int" $ADDomainUser = "Administrator" $ADAdminPasswd = "Kennwort" netdom trust $HGSDomainName /domain:$ADDomainName /userD:$ADDomainName\$ADDomainUser /passwordD:$ADAdminPasswd /addDie Hyper-V-Hosts, die Sie mit HGS absichern wollen, müssen Mitglied einer neuen AD-Gruppe sein. Dazu legen Sie die AD-Gruppe an und nehmen die Hyper-V-Hosts auf. Zusätzlich müssen Sie noch die SIDs der Hyper-V-Hosts auslesen und auf dem HGS-Server importieren. In dieser Umgebung gehen wir davon aus, dass die Fabric-Domäne die Bezeichnung "contoso.int" hat und der erste Guarded Host die Bezeichnung "hpdl20.contoso.int":
$GuardedGroupName="GuardedHosts" $guardedhost="hpdl20.contoso.int" $GroupMember="CN=hpdl20,OU=Computers,DC=contoso,DC=int" $guardedGroup = New-ADGroup -Name $GuardedGroupName -SamAccountName "GuardedHosts" -GroupCategory Security -GroupScope Global Add-ADGroupMember -Identity $GuardedGroupName -Members $GroupMemberIn der PowerShell lesen Sie auch die SID aus, die Sie später wiederum auf dem HGS-Server einlesen, um den Hyper-V-Host als Guarded Host zu konfigurieren. Danach legen Sie fest, welche AD-Gruppe in der Fabric-Domäne die sicheren Hyper-V-Host enthält:
Add-HgsAttestationHostGroup -Name "GuardedHosts" -Identifier "S-1-5-21-260484123-1724494931-1379840826-1109"
Den Befehl führen Sie wiederum in der PowerShell des HGS-Servers aus. Die SID können Sie auch in der PowerShell mit
get-adgroup <Name der Gruppe>auslesen. Sind alle notwendigen Features für die HGS-Anbindung von Hyper-V installiert, melden Sie sich in der PowerShell des Hyper-V-Hosts am HGS an. Dazu ist es wichtig, dass in der Gesamtstruktur mit den Hyper-V-Hosts die HGS-Domäne als DNS-Weiterleitung konfiguriert ist und umgekehrt. Im folgenden Beispiel ist der Name der GHS-Domäne "hostgs.com". Den Befehl führen Sie auf dem Hyper-V-Host aus. Beachten Sie, im Befehl die korrekten Daten Ihrer Umgebung einzugeben:
Set-HgsClientConfiguration -AttestationServerUrl "http://hostgs.com/Attestation"Die erfolgreiche Anmeldung testen Sie am Guarded Host durch
-KeyProtectionServerUrl "http://hostgs.com/KeyProtection" -confirm:$false
Get-HgsClientConfigurationAuf dem HGS-Server überprüfen Sie die Konfiguration des Host Guardian Services mit dieser Zeile:
Get-HgsTrace -RunDiagnosticsDie korrekte Konfiguration der Umgebung bringen Sie in der PowerShell mit
Test-HGSServer -HgsDomainName <HGS-Domäne>in Erfahrung. Vor allem in Umgebungen, in denen Sie die Bereitstellung erst testen und dann aktiv schalten, sollten Sie vor der Übernahme in die Produktivumgebung einen Blick auf das Ergebnis dieses Cmdlets werfen. Microsoft bietet Whitepaper [1] zur Fehlerbehandlung, wenn einzelne Bereiche nicht korrekt funktionieren. Zusätzlich rufen Sie mit
Get-HgsServerInformationen zur erstellten Umgebung ab. Hier sollten die URLs und Daten fehlerfrei erscheinen. Die geschützten Hyper-V-Hosts und die angebundenen SCVMM-Server müssen über diese URLs mit den Servern kommunizieren können.
Get-HgsAttestationPolicy
Außerdem sollten Sie mit dem Internet Explorer auf dem Server überprüfen, ob der HGS auf Anfragen antwortet. Dazu rufen Sie die URL "http://localhost/KeyProtection/servic/metadata/2014-07/metadata.xml" auf. Als Antwort erscheint eine XML-Seite mit Informationen.
In produktiven Umgebungen sollten Sie noch die Einträge in der Ereignisanzeige der HGS-Server überwachen. Entweder nutzen Sie dazu Tools wie System Center Operations Manager oder andere Überwachungswerkzeuge. Sie können dazu auch ein Ereignisabonnement erstellen. Im Rahmen des Abonnements können Sie die Ereignisse filtern:
Microsoft-Windows-HostGuardianService-Attestation/Admin,Seite 2: Shielded-VMs erstellen und mit SCVMM verwalten
MicrosoftWindows-HostGuardianService-Attestation/Operational,
Microsoft-Windo ws-HostGuardianService-KeyProtection/Admin,
Microsoft-WindowsHostGuardianService-KeyProtection/Operational
Seite 1 von 2 | Nächste Seite >> |
jp/ln/Thomas Joos
[1] https://docs.microsoft.com/en-us/windows-server/security/guarded-fabric-shielded-vm/guarded-fabric-deployment-overview