Niestandardowe zasady IKEv2 w Windows: stosuj je jako osobny krok
Zaaprowizowane połączenie i niestandardowy zestaw kryptograficzny to dwa wyniki. Dopasuj pola zasad, zakres profilu i właściciela, który stosuje je ponownie.
Pakiet aprowizacji tworzy połączenie IKEv2, a powstały profil negocjuje coś innego niż zamierzony zestaw. Pakiet wykonał swoją pracę; po prostu nigdy nie miał pola na zadanie, które zakładałeś. Traktuj zestaw kryptograficzny jako osobny, weryfikowalny krok aprowizacji.
Przejdź przez pięć punktów poniżej po kolei i trzymaj wyniki akceptacji osobno.
Dwa rodzaje zasad ukryte za podobnymi nazwami
Windows rozdziela zasady chroniące wymianę kluczy od zasad chroniących ruch. Strona IKE jest konfigurowana metodą szyfrowania i metodą integralności. Strona danych jest konfigurowana stałymi szyfru i transformacji uwierzytelniania, a te stałe używają własnych nazw. Jedna etykieta AES skopiowana w niewłaściwe pole daje połączenie, które powstaje według zasad, których nikt nie zatwierdził.
Grupa wymiany kluczy i doskonała tajność w przód należą do tej samej negocjacji i muszą być akceptowalne dla bramy. Ustawienie ich bez sprawdzenia drugiej strony daje błąd na późniejszym etapie niż ten, który edytowałeś, i dlatego te pomyłki wyglądają jak problemy bramy.
Zbuduj pełne zasady, a nie dwie nazwy algorytmów
Zapisz każde pole jawnie, także te, które uważasz za domyślne. Częściowe zasady zastosowane z flagą wymuszenia stają się zapisaną konfiguracją, a pominięte wartości to te, które platforma miała w tym momencie. Wartości zaczynające się tym samym prefiksem nie są wymienne między polami, a jedna ze znanych nazw transformacji jest ważna tylko jako transformacja uwierzytelniania.
$policy = @{
ConnectionName = 'Corp IKEv2'
AllUserConnection = $true
EncryptionMethod = 'AES256'
IntegrityCheckMethod = 'SHA384'
CipherTransformConstants = 'AES256'
AuthenticationTransformConstants = 'SHA384128'
DHGroup = 'Group19'
PfsGroup = 'PFS2048'
Force = $true
}
Set-VpnConnectionIPsecConfiguration @policy
Traktuj ten blok jako przykładowy zestaw, który muszą obsługiwać obie strony, a nie jako zalecenie. Przełącznik wymuszenia wycisza pytanie; nie zatwierdza pakietu, którego nie przejrzałeś.
Najpierw utwórz, potem zastosuj — w jednym zakresie
Połączenie musi istnieć, zanim będzie można ustawić jego zasady, a zakres musi się zgadzać na każdym kroku. Krok w kontekście komputera nie znajdzie prywatnego profilu dowolnego użytkownika tylko dlatego, że nazwa wyświetlana jest taka sama. Połączenia dla wszystkich użytkowników, połączenia użytkownika i ich katalogi stanu to osobne obiekty o osobnych nazwach.
Kolejność ma większe znaczenie, niż wygląda to w pakiecie aprowizacji, ponieważ dwie komendy mogą wykonać się bliżej siebie niż trwa utworzenie połączenia. Zapakuj pracę po konfiguracji jako zatwierdzoną komendę aprowizacji z zadeklarowanym kontekstem wykonania i pozwól silnikowi aprowizacji ją uporządkować, zamiast wstawiać zgadywane opóźnienie. Sen wystarczająco długi na twoim sprzęcie testowym to warunek wyścigu z dołączonym opóźnieniem. Zapisuj zależność, a nie czas trwania.
Udokumentowane pola Configuration Designer opisują jedno ustawienie VPN i nie odsłaniają każdej natywnej kontroli IPsec. Jeśli wymaganiem jest dostawa zarządzana, dostawca usługi konfiguracji VPNv2 ma sekcję zestawu kryptograficznego dokładnie w tym celu.
Wyznacz jednego właściciela zasad
Późniejsza aktualizacja profilu zarządzania może odtworzyć połączenie i zastąpić to, co zastosował skrypt, a zamiana będzie wyglądać jak regresja. Zdecyduj, czy zestaw należy do profilu, do skryptu czy do kanału zarządzania, i spraw, aby rutynowe aktualizacje szły tą samą drogą co pierwsza instalacja.
Dwóch właścicieli to to samo co żaden, gdy obaj się nie zgadzają. Zapisz nazwę właściciela w rejestrze zmian profilu. Następna aktualizacja pójdzie za tym, co mówi ten rejestr.
Weryfikuj wynik negocjacji, a nie pakiet
Odczytaj zapisany profil i jego zakres, następnie ustanów nowe połączenie i porównaj wybrane propozycje na bramie. Potwierdź też zachowanie przy odnawianiu kluczy, ponieważ pierwszy uścisk dłoni może się udać z zestawem, który późniejsza faza odrzuca.
Get-VpnConnection -Name 'Corp IKEv2' -AllUserConnection | Format-List
Get-ChildItem 'C:\ProgramData\Microsoft\Network\Connections\Pbk' | Select-Object Name, LastWriteTime
Trzy wyniki akceptacji to nie to samo zdarzenie: pakiet został zainstalowany, profil istnieje z zamierzonymi zasadami, a strony go wynegocjowały. Trzymaj je osobno, aby brakujące pole nigdy nie zostało naprawione przez osłabienie uwierzytelniania ani przez włączenie zapasu, którego nikt nie wybrał.