Benutzerdefinierte IKEv2-Richtlinie unter Windows: als eigenen Schritt anwenden
Eine bereitgestellte Verbindung und eine benutzerdefinierte Kryptosuite sind zwei Ergebnisse. Bringen Sie Richtlinienfelder, Profilbereich und den Eigentümer, der sie erneut anwendet, in Übereinstimmung.
Ein Bereitstellungspaket erstellt eine IKEv2-Verbindung, und das daraus entstehende Profil handelt etwas anderes aus als die Suite, die Sie vorgesehen hatten. Das Paket hat seine Aufgabe erfüllt; es hatte nur nie ein Feld für die Aufgabe, die Sie annahmen. Behandeln Sie die Kryptosuite als einen separaten, überprüfbaren Bereitstellungsschritt.
Arbeiten Sie die fünf Punkte unten der Reihe nach ab, und halten Sie die Abnahmeergebnisse getrennt.
Zwei Arten von Richtlinie hinter ähnlichen Namen
Windows trennt die Richtlinie, die den Schlüsselaustausch schützt, von der Richtlinie, die den Datenverkehr schützt. Die IKE-Seite wird durch eine Verschlüsselungsmethode und eine Integritätsmethode konfiguriert. Die Datenseite wird durch Chiffre- und Authentifizierungstransform-Konstanten konfiguriert, und diese Konstanten verwenden eigene Namen. Ein einzelnes AES-Etikett, das in das falsche Feld kopiert wird, erzeugt eine Verbindung, die unter einer Richtlinie aufgebaut wird, die niemand genehmigt hat.
Schlüsselaustauschgruppe und Perfect Forward Secrecy gehören zur selben Aushandlung und müssen für das Gateway akzeptabel sein. Werden sie ohne Prüfung der Gegenseite gesetzt, entsteht ein Fehler in einer späteren Phase als der, die Sie bearbeitet haben, und deshalb sehen diese Fehler wie Gateway-Probleme aus.
Bauen Sie eine vollständige Richtlinie, nicht zwei Algorithmusnamen
Schreiben Sie jedes Feld ausdrücklich, auch die, die Sie für Standardwerte halten. Eine teilweise Richtlinie, die mit einem Force-Flag angewendet wird, wird zur gespeicherten Konfiguration, und die ausgelassenen Werte sind die, die die Plattform in diesem Moment hatte. Werte mit demselben Präfix sind zwischen Feldern nicht austauschbar, und einer der bekannten Transformnamen ist nur als Authentifizierungstransform gültig.
$policy = @{
ConnectionName = 'Corp IKEv2'
AllUserConnection = $true
EncryptionMethod = 'AES256'
IntegrityCheckMethod = 'SHA384'
CipherTransformConstants = 'AES256'
AuthenticationTransformConstants = 'SHA384128'
DHGroup = 'Group19'
PfsGroup = 'PFS2048'
Force = $true
}
Set-VpnConnectionIPsecConfiguration @policy
Betrachten Sie diesen Block als eine beispielhafte Suite, die beide Gegenstellen unterstützen müssen, nicht als Empfehlung. Der Force-Schalter unterdrückt eine Abfrage; er genehmigt kein Paket, das Sie nicht geprüft haben.
Zuerst erstellen, dann anwenden — in einem Bereich
Die Verbindung muss existieren, bevor ihre Richtlinie gesetzt werden kann, und der Bereich muss bei jedem Schritt übereinstimmen. Ein Schritt im Maschinenkontext kann kein privates Profil eines beliebigen Benutzers finden, nur weil der Anzeigename derselbe ist. Verbindungen für alle Benutzer, Benutzerverbindungen und ihre Statusverzeichnisse sind getrennte Objekte mit getrennten Namen.
Die Reihenfolge ist wichtiger, als es in einem Bereitstellungspaket aussieht, weil zwei Befehle enger aufeinander folgen können, als die Verbindung zum Erstellen braucht. Verpacken Sie die Arbeit nach der Konfiguration als genehmigten Bereitstellungsbefehl mit erklärtem Ausführungskontext, und lassen Sie die Bereitstellungs-Engine sie sequenzieren, statt eine geratene Verzögerung einzufügen. Ein Schlaf, der auf Ihrer Testhardware lang genug ist, ist eine Race Condition mit angehängter Verzögerung. Halten Sie die Abhängigkeit fest, nicht die Dauer.
Die dokumentierten Felder des Configuration Designer beschreiben eine VPN-Einstellung und legen nicht jede native IPsec-Kontrolle offen. Wenn die Anforderung eine verwaltete Auslieferung ist, hat der Konfigurationsdienstanbieter VPNv2 einen Abschnitt für Kryptosuiten genau zu diesem Zweck.
Benennen Sie einen einzigen Eigentümer der Richtlinie
Eine spätere Aktualisierung des Verwaltungsprofils kann die Verbindung neu erstellen und ersetzen, was ein Skript angewendet hat, und die Ersetzung wird wie eine Regression aussehen. Entscheiden Sie, ob die Suite dem Profil, einem Skript oder dem Verwaltungskanal gehört, und lassen Sie Routineaktualisierungen denselben Weg gehen wie die Erstinstallation.
Zwei Eigentümer sind dasselbe wie keiner, wenn die beiden uneinig sind. Schreiben Sie den Namen des Eigentümers in den Änderungsdatensatz des Profils. Die nächste Aktualisierung folgt dem, was dieser Datensatz sagt.
Prüfen Sie das ausgehandelte Ergebnis, nicht das Paket
Lesen Sie das gespeicherte Profil und seinen Bereich, stellen Sie dann eine neue Verbindung her und vergleichen Sie die ausgewählten Vorschläge am Gateway. Bestätigen Sie auch das Rekey-Verhalten, denn ein erster Handshake kann mit einer Suite gelingen, die eine spätere Phase ablehnt.
Get-VpnConnection -Name 'Corp IKEv2' -AllUserConnection | Format-List
Get-ChildItem 'C:\ProgramData\Microsoft\Network\Connections\Pbk' | Select-Object Name, LastWriteTime
Drei Abnahmeergebnisse sind nicht dasselbe Ereignis: Das Paket wurde installiert, das Profil existiert mit der vorgesehenen Richtlinie, und die Gegenstellen haben sie ausgehandelt. Halten Sie sie getrennt, damit ein fehlendes Feld nie durch Schwächen der Authentifizierung oder durch Aktivieren eines Fallbacks repariert wird, den niemand gewählt hat.