Windows levert een IKEv2-client die PowerShell van begin tot eind bestuurt, dus een werkende tunnel heeft geen GUI en geen software van derden nodig. Bijna elke fout komt van drie plekken: waar het certificaat terechtkwam, hoe de routeprefixen zijn geschreven en wat de gekozen EAP-methode verwacht. Behandel ze in die volgorde, want elk is controleerbaar voordat de volgende begint en een latere fout zal een eerdere verbergen.

Tunnels met een machinecertificaat bestaan om te starten voordat iemand inlogt, daarom moet de identiteit normaal in de opslag van de computer staan en niet in die van een gebruiker.

Eerst het certificaat, dan de tunnel

Twee imports zijn belangrijk. De clientidentiteit gaat naar Cert:\LocalMachine\My via Import-PfxCertificate, en de uitgevende CA gaat naar Cert:\LocalMachine\Root via Import-Certificate. Een bladcertificaat alleen bewijst geen keten, dus de tweede import overslaan laat de verificatie zonder grond. Naast aanwezigheid moet de persoonlijke sleutel gekoppeld zijn en moet het computeraccount hem mogen lezen. Get-ChildItem Cert:\LocalMachine\My somt op wat er is aangekomen; vergelijk vingerafdrukken in plaats van subjecten, want bijna identieke subjecten komen vaak voor.

Controleer het uitgebreide sleutelgebruik voordat je uitrolt. Clientverificatie is de gebruikelijke eis voor een IKEv2-machine-identiteit, en de andere kant moet de CA vertrouwen die hem heeft ondertekend. Een identiteit in de opslag van een gebruiker bestaat niet voor een verbinding in computercontext.

Maak het profiel en de routes aan

Add-VpnConnection -Name "Office IKEv2" -ServerAddress vpn.example.com -TunnelType Ikev2 -EncryptionLevel Required -AuthenticationMethod MachineCertificate -AllUserConnection schrijft het profiel. De schakelaar -AllUserConnection publiceert het in het globale telefoonboek, geschikt voor een gedeelde of door een service beheerde machine; laat hem weg voor één gebruiker. Welk adres je ook doorgeeft, het moet overeenkomen met de DNS-naam in het certificaat van de server, anders verschijnt de fout pas nadat de tunnel al staat. Daarna worden prefixen één voor één toegevoegd met Add-VpnConnectionRoute, en alleen die het ontwerp echt nodig heeft.

IPv6 heeft een eigenaardigheid: Windows weigert ::/0 als VPN-route, dus ::/1 en 8000::/1 dekken samen dezelfde adresruimte. Een prefix routeren levert ook niets op bij de externe firewall, dus de prefixlijst en het firewallbeleid blijven aparte documenten.

Referenties horen bij de verificatiemethode

Een profiel met een machinecertificaat heeft helemaal geen gebruikersgeheim nodig, terwijl een EAP-MSCHAPv2-profiel dat wel heeft. In het tweede geval levert de module VPNCredentialsHelper Set-VpnConnectionUsernamePassword, en die wil platte tekst: $cred.Password is een SecureString, dus pak hem eerst uit met GetNetworkCredential().Password. Installeer de module overal waar de opdracht draait, niet alleen op het werkstation waar hij is opgesteld. EAP-TLS of een aangepaste methode gebruiken deze cmdlet helemaal niet; ze nemen in plaats daarvan een EAP-configuratie-XML.

rasdial "Office IKEv2" brengt de verbinding vanuit een shell omhoog, wat de snelste manier is om het resultaat op de voorgrond te zien in plaats van in een gebeurtenislogboek.

Wat een verbonden tunnel niet bewijst

De status verbonden dekt de IKE-uitwisseling en de verificatiestap, en niets daarbuiten. DNS-gedrag, het pad naar een privéhost en de externe firewall zijn allemaal nog onbewezen. Werk naar buiten: de tunneladapter, dan een routeopzoeking voor een privéadres, dan één dienst die je mag gebruiken. De eerste observatie die faalt, wijst de laag aan die onderzocht moet worden.

Als je een profiel wijzigt, verwijder het vorige dan met Remove-VpnConnection -Name "Office IKEv2" -Force voordat je het opnieuw aanmaakt; anders blijven verouderde instellingen en routes door de bewerking heen bestaan. Als het nog steeds niet verbindt, vergelijk dan de vingerafdruk in het profiel met die in de opslag, want Windows kan een verwijzing houden naar een identiteit die inmiddels onder een ongewijzigd subject is vervangen.

Houd de vingerafdruk, de EAP-methode en de routelijst naast het profiel. Samen verklaren ze het meeste van wat later misgaat.

Gerelateerde artikelen