Schützen von End-to-End-IPsec-Verbindungen mithilfe von IKEv2

IKEv2 bietet Folgendes:

  • Unterstützt IPsec-End-to-End-Transportmodusverbindungen

  • Bietet Interoperabilität für Windows mit anderen Betriebssystemen, die IKEv2 für End-to-End-Sicherheit verwenden

  • Unterstützt Anforderungen an Suite B (RFC 4869)

  • Koexistenz mit vorhandenen Richtlinien, die AuthIP/IKEv1 bereitstellen

  • Verwendet die Windows PowerShell-Schnittstelle ausschließlich für die Konfiguration. Sie können IKEv2 nicht über die Benutzeroberfläche konfigurieren.

  • Verwendet Zertifikate für den Authentifizierungsmechanismus

Sie können IKEv2 als VPN-Tunnelprotokoll (Virtual Private Network) verwenden, das die automatische VPN-Wiederherstellung unterstützt. IKEv2 ermöglicht es, dass die Sicherheitszuordnung trotz Änderungen an der zugrunde liegenden Verbindung unverändert bleibt.

In diesem Dokument

Hinweis: Dieses Thema enthält Beispiel-Windows PowerShell-Cmdlets. Weitere Informationen finden Sie unter Ausführen eines Windows PowerShell Cmdlets.

Voraussetzungen

Bei diesen Verfahren wird davon ausgegangen, dass Sie bereits über eine Public Key-Infrastruktur (PKI) für die Geräteauthentifizierung verfügen.

In eine Domäne eingebundene Geräte

Das folgende Windows PowerShell Skript richtet eine Verbindungssicherheitsregel ein, die IKEv2 für die Kommunikation zwischen zwei Computern (CLIENT1 und SERVER1) verwendet, die mit der corp.contoso.com Domäne verknüpft sind, wie in Abbildung 1 dargestellt.

das Contoso-Unternehmensnetzwerk.

Abbildung 1 Das Contoso-Unternehmensnetzwerk

Dieses Skript führt Folgendes aus:

  • Erstellt eine Sicherheitsgruppe namens IPsec-Client und -Server und fügt CLIENT1 und SERVER1 als Mitglieder hinzu.

  • Erstellt ein Gruppenrichtlinie Object (GPO) mit dem Namen IPsecRequireInRequestOut und verknüpft es mit der domäne corp.contoso.com.

  • Legt die Berechtigungen für das Gruppenrichtlinienobjekt fest, sodass sie nur für die Computer in IPsec-Client und -Servern gelten und nicht für authentifizierte Benutzer.

  • Gibt das Zertifikat an, das für die Authentifizierung verwendet werden soll.

    Wichtig: Bei den Zertifikatparametern, die Sie für das Zertifikat angeben, wird die Groß-/Kleinschreibung beachtet. Stellen Sie daher sicher, dass Sie sie genau wie im Zertifikat angegeben eingeben, und platzieren Sie die Parameter genau in der Reihenfolge, die Sie im folgenden Beispiel sehen. Andernfalls führt dies zu Verbindungsfehlern.

  • Erstellt die IKEv2-Verbindungssicherheitsregel namens My IKEv2 Rule.

powershell-Logo.Windows PowerShell-Befehle

Geben Sie jedes Cmdlet in einer einzelnen Zeile ein, auch wenn sie aufgrund von Formatierungseinschränkungen möglicherweise mehrere Zeilen umschließen.

# Create a Security Group for the computers that will get the policy
$pathname = (Get-ADDomain).distinguishedname
New-ADGroup -name "IPsec client and servers" -SamAccountName "IPsec client and servers" `
-GroupCategory security -GroupScope Global -path $pathname

# Add test computers to the Security Group
$computer = Get-ADComputer -LDAPFilter "(name=client1)"
Add-ADGroupMember -Identity "IPsec client and servers" -Members $computer
$computer = Get-ADComputer -LDAPFilter "(name=server1)"
Add-ADGroupMember -Identity "IPsec client and servers" -Members $computer

# Create and link the GPO to the domain
$gpo = New-gpo IPsecRequireInRequestOut
$gpo | new-gplink -target "dc=corp,dc=contoso,dc=com" -LinkEnabled Yes

# Set permissions to security group for the GPO
$gpo | Set-GPPermissions -TargetName "IPsec client and servers" -TargetType Group -PermissionLevel GpoApply -Replace
$gpo | Set-GPPermissions -TargetName "Authenticated Users" -TargetType Group -PermissionLevel None -Replace

#Set up the certificate for authentication
$gponame = "corp.contoso.com\IPsecRequireInRequestOut"
$certprop = New-NetIPsecAuthProposal -machine -cert -Authority "DC=com, DC=contoso, DC=corp, CN=corp-APP1-CA"
$myauth = New-NetIPsecPhase1AuthSet -DisplayName "IKEv2TestPhase1AuthSet" -proposal $certprop –PolicyStore GPO:$gponame

#Create the IKEv2 Connection Security rule
New-NetIPsecRule  -DisplayName "My IKEv2 Rule" -RemoteAddress any -Phase1AuthSet $myauth.InstanceID `
-InboundSecurity Require -OutboundSecurity Request -KeyModule IKEv2 -PolicyStore GPO:$gponame

Geräte, die nicht in eine Domäne eingebunden sind

Verwenden Sie ein Windows PowerShell Skript ähnlich dem folgenden, um eine lokale IPsec-Richtlinie auf den Geräten zu erstellen, die Sie in die sichere Verbindung einschließen möchten.

Wichtig: Bei den Zertifikatparametern, die Sie für das Zertifikat angeben, wird die Groß-/Kleinschreibung beachtet. Stellen Sie daher sicher, dass Sie sie genau wie im Zertifikat angegeben eingeben, und platzieren Sie die Parameter genau in der Reihenfolge, die Sie im folgenden Beispiel sehen. Andernfalls führt dies zu Verbindungsfehlern.

powershell-Logo.Windows PowerShell-Befehle

Geben Sie jedes Cmdlet in einer einzelnen Zeile ein, auch wenn sie aufgrund von Formatierungseinschränkungen möglicherweise mehrere Zeilen umschließen.

#Set up the certificate
$certprop = New-NetIPsecAuthProposal -machine -cert -Authority "DC=com, DC=contoso, DC=corp, CN=corp-APP1-CA"
$myauth = New-NetIPsecPhase1AuthSet -DisplayName "IKEv2TestPhase1AuthSet" -proposal $certprop

#Create the IKEv2 Connection Security rule
New-NetIPsecRule  -DisplayName "My IKEv2 Rule" -RemoteAddress any -Phase1AuthSet $myauth.InstanceID `
-InboundSecurity Require -OutboundSecurity Request -KeyModule IKEv2

Stellen Sie sicher, dass Sie die erforderlichen Zertifikate auf den beteiligten Computern installieren.

Hinweis:

  • Bei lokalen Geräten können Sie die Zertifikate manuell importieren, wenn Sie Administratorzugriff auf den Computer haben. Weitere Informationen finden Sie unter Importieren oder Exportieren von Zertifikaten und privaten Schlüsseln.
  • Sie benötigen ein Stammzertifikat und ein Computerzertifikat auf allen Geräten, die an der sicheren Verbindung teilnehmen. Speichern Sie das Computerzertifikat im Ordner Persönlich/Zertifikate .
  • Für Remotegeräte können Sie eine sichere Website erstellen, um den Zugriff auf das Skript und die Zertifikate zu erleichtern.

Problembehandlung

Führen Sie die folgenden Verfahren aus, um Ihre IKEv2-IPsec-Verbindungen zu überprüfen und probleme zu beheben:

Verwenden Sie das Snap-In Windows Defender Firewall mit erweiterter Sicherheit, um zu überprüfen, ob eine Verbindungssicherheitsregel aktiviert ist.

  1. Öffnen Sie die konsole Windows Defender Firewall mit erweiterter Sicherheit.

  2. Klicken Sie im linken Bereich des Snap-Ins Windows Defender Firewall mit erweiterter Sicherheit auf Verbindungsregeln, und überprüfen Sie dann, ob eine aktivierte Verbindungssicherheitsregel vorhanden ist.

  3. Erweitern Sie Überwachung, und klicken Sie dann auf Verbindungsregeln , um zu überprüfen, ob Ihre IKEv2-Regel für Ihr aktuell aktives Profil aktiv ist.

Verwenden Sie Windows PowerShell Cmdlets, um die Sicherheitszuordnungen anzuzeigen.

  1. Öffnen Sie eine Windows PowerShell Eingabeaufforderung.

  2. Geben Sie get-NetIPsecQuickModeSA ein, um die Schnellmodus-Sicherheitszuordnungen anzuzeigen.

  3. Geben Sie get-NetIPsecMainModeSA ein, um die Hauptmodus-Sicherheitszuordnungen anzuzeigen.

Verwenden Sie netsh, um IPsec-Ereignisse zu erfassen.

  1. Öffnen Sie eine Eingabeaufforderung mit erhöhten Rechten.

  2. Geben Sie an der Eingabeaufforderung netsh wfp capture start ein.

  3. Reproduzieren Sie das Fehlerereignis, sodass es erfasst werden kann.

  4. Geben Sie an der Eingabeaufforderung netsh wfp capture stop ein.

    Im aktuellen Ordner wird eine wfpdiag.cab Datei erstellt.

  5. Öffnen Sie die CAB-Datei, und extrahieren Sie dann die wfpdiag.xml Datei.

  6. Öffnen Sie die wfpdiag.xml Datei mit einem XML-Viewer-Programm oder Editor, und untersuchen Sie dann den Inhalt. Diese Datei enthält viele Daten. Eine Möglichkeit, einzugrenzen, wo sie beginnen sollen, besteht darin, die letzte "errorFrequencyTable" am Ende der Datei zu durchsuchen. Es gibt möglicherweise viele Instanzen dieser Tabelle. Stellen Sie daher sicher, dass Sie sich die letzte Tabelle in der Datei ansehen. Wenn beispielsweise ein Zertifikatproblem vorliegt, wird in der letzten Tabelle am Ende der Datei möglicherweise der folgende Eintrag angezeigt:

    <item>
      <error>ERROR_IPSEC_IKE_NO_CERT</error>
      <frequency>32</frequency>
    </item>
    

    In diesem Beispiel gibt es 32 Instanzen des ERROR_IPSEC_IKE_NO_CERT Fehlers. Jetzt können Sie nach ERROR_IPSEC_IKE_NO_CERT suchen, um weitere Details zu diesem Fehler zu erhalten.

Möglicherweise finden Sie nicht die genaue Antwort auf das Problem, aber Sie können gute Hinweise finden. Sie können beispielsweise feststellen, dass ein Problem mit den Zertifikaten vorliegt, sodass Sie ihre Zertifikate und die zugehörigen Cmdlets auf mögliche Probleme überprüfen können.

Weitere Informationen