Windows dodává klienta IKEv2, kterého PowerShell ovládá od začátku do konce, takže funkční tunel nepotřebuje GUI ani software třetích stran. Téměř každé selhání pochází ze tří míst: kam certifikát doputoval, jak byly zapsány prefixy tras a co očekává zvolená metoda EAP. Řešte je v tomto pořadí, protože každé lze ověřit dřív, než začne další, a pozdější chyba zakryje dřívější.

Tunely se strojovým certifikátem existují proto, aby se spustily dřív, než se kdokoli přihlásí, a proto musí identita obvykle sídlit v úložišti počítače, nikoli uživatele.

Nejdřív certifikát, potom tunel

Důležité jsou dva importy. Identita klienta jde do Cert:\LocalMachine\My přes Import-PfxCertificate a vydávající CA do Cert:\LocalMachine\Root přes Import-Certificate. Samotný koncový certifikát neprokazuje žádný řetěz, takže vynechání druhého importu nechá ověření bez podkladu. Kromě přítomnosti musí být připojen soukromý klíč a účet počítače jej musí smět číst. Get-ChildItem Cert:\LocalMachine\My vypíše, co dorazilo; porovnávejte otisky, nikoli subjekty, protože téměř shodné subjekty jsou běžné.

Před nasazením zkontrolujte rozšířené použití klíče. Ověření klienta je obvyklý požadavek pro strojovou identitu IKEv2 a druhá strana musí důvěřovat CA, která ji podepsala. Identita v uživatelském úložišti pro připojení v kontextu počítače neexistuje.

Vytvořte profil a jeho trasy

Add-VpnConnection -Name "Office IKEv2" -ServerAddress vpn.example.com -TunnelType Ikev2 -EncryptionLevel Required -AuthenticationMethod MachineCertificate -AllUserConnection zapíše profil. Přepínač -AllUserConnection jej zveřejní v globálním telefonním seznamu, což se hodí pro sdílený nebo službou spravovaný stroj; pro jednoho uživatele jej vynechte. Jakoukoli adresu předáte, musí odpovídat názvu DNS v certifikátu serveru, jinak se chyba objeví až po navázání tunelu. Prefixy se pak přidávají po jednom pomocí Add-VpnConnectionRoute, a to jen ty, které návrh skutečně potřebuje.

IPv6 má zvláštnost: Windows odmítá ::/0 jako trasu VPN, takže ::/1 a 8000::/1 dohromady pokrývají stejný adresní prostor. Směrování prefixu také na vzdáleném firewallu nic nepovolí, takže seznam prefixů a politika firewallu zůstávají oddělenými dokumenty.

Přihlašovací údaje patří k metodě ověřování

Profil se strojovým certifikátem nepotřebuje žádné uživatelské tajemství, kdežto profil EAP-MSCHAPv2 ano. Pro druhý případ modul VPNCredentialsHelper poskytuje Set-VpnConnectionUsernamePassword a chce prostý text: $cred.Password je SecureString, takže jej nejdřív rozbalte pomocí GetNetworkCredential().Password. Modul instalujte všude, kde se příkaz spouští, nejen na stanici, kde vznikl. EAP-TLS nebo vlastní metoda tento cmdlet vůbec nepoužívá; místo toho přebírá konfigurační XML pro EAP.

rasdial "Office IKEv2" naváže spojení z shellu, což je nejrychlejší způsob, jak výsledek vidět v popředí, a ne v protokolu událostí.

Co připojený tunel neprokazuje

Stav připojení pokrývá výměnu IKE a krok ověření a nic víc. Chování DNS, cesta k soukromému hostiteli i vzdálený firewall jsou stále neprokázané. Postupujte směrem ven: adaptér tunelu, pak hledání trasy pro soukromou adresu, pak jedna služba, kterou smíte použít. První pozorování, které selže, určí vrstvu k vyšetření.

Když měníte profil, smažte předchozí pomocí Remove-VpnConnection -Name "Office IKEv2" -Force, než jej znovu vytvoříte; jinak po úpravě zůstanou zastaralá nastavení i trasy. Pokud se stále nepřipojuje, porovnejte otisk zaznamenaný v profilu s tím v úložišti, protože Windows může držet odkaz na identitu, která byla mezitím nahrazena pod nezměněným subjektem.

Mějte otisk, metodu EAP a seznam tras vedle profilu. Dohromady vysvětlují většinu toho, co se později pokazí.

Související články