Construirea unui VPN IKEv2 în PowerShell cu un certificat de mașină
Amplasarea certificatului, prefixele de rută și acreditările EAP sunt locurile unde un script IKEv2 eșuează. Construiți tunelul în PowerShell și verificați fiecare etapă separat.
Windows livrează un client IKEv2 pe care PowerShell îl controlează de la un capăt la altul, așa că un tunel funcțional nu are nevoie nici de interfață grafică, nici de software terț. Aproape fiecare eșec vine din trei locuri: unde a ajuns certificatul, cum au fost scrise prefixele de rută și ce așteaptă metoda EAP aleasă. Tratați-le în această ordine, pentru că fiecare este verificabil înainte de a începe următorul, iar o eroare mai târzie o va masca pe una anterioară.
Tunelurile cu certificat de mașină există pentru a porni înainte ca cineva să se autentifice, de aceea identitatea trebuie de obicei să stea în depozitul computerului, nu în cel al unui utilizator.
Mai întâi certificatul, apoi tunelul
Două importuri contează. Identitatea clientului merge în Cert:\LocalMachine\My prin Import-PfxCertificate, iar CA emitentă merge în Cert:\LocalMachine\Root prin Import-Certificate. Un certificat frunză singur nu dovedește niciun lanț, așa că omiterea celui de-al doilea import lasă verificarea fără nimic pe care să se sprijine. Pe lângă prezență, cheia privată trebuie să fie atașată, iar contul computerului trebuie să aibă permisiunea de a o citi. Get-ChildItem Cert:\LocalMachine\My listează ce a ajuns; comparați amprentele în locul subiectelor, pentru că subiectele aproape identice sunt frecvente.
Verificați utilizarea extinsă a cheii înainte de implementare. Autentificarea clientului este cerința obișnuită pentru o identitate de mașină IKEv2, iar cealaltă parte trebuie să aibă încredere în CA care a semnat-o. O identitate din depozitul unui utilizator nu există pentru o conexiune în context de computer.
Creați profilul și rutele acestuia
Add-VpnConnection -Name "Office IKEv2" -ServerAddress vpn.example.com -TunnelType Ikev2 -EncryptionLevel Required -AuthenticationMethod MachineCertificate -AllUserConnection scrie profilul. Comutatorul -AllUserConnection îl publică în cartea de telefon globală, potrivit pentru o mașină partajată sau administrată ca serviciu; omiteți-l pentru un singur utilizator. Orice adresă transmiteți, aceasta trebuie să corespundă numelui DNS din certificatul serverului, altfel eșecul apare după ce tunelul este deja ridicat. Apoi prefixele sunt adăugate unul câte unul cu Add-VpnConnectionRoute, și numai cele de care designul are într-adevăr nevoie.
IPv6 are o particularitate: Windows refuză ::/0 ca rută VPN, așa că ::/1 și 8000::/1 împreună acoperă același spațiu de adrese. Rutarea unui prefix nu acordă nimic nici la firewallul îndepărtat, așa că lista de prefixe și politica firewallului rămân documente separate.
Acreditările aparțin metodei de autentificare
Un profil cu certificat de mașină nu are nevoie de niciun secret de utilizator, în timp ce un profil EAP-MSCHAPv2 are. În al doilea caz modulul VPNCredentialsHelper oferă Set-VpnConnectionUsernamePassword, iar acesta vrea text simplu: $cred.Password este un SecureString, așa că despachetați-l mai întâi cu GetNetworkCredential().Password. Instalați modulul oriunde rulează comanda, nu doar pe stația unde a fost redactată. EAP-TLS sau o metodă personalizată nu folosesc deloc acest cmdlet; în schimb preiau un XML de configurare EAP.
rasdial "Office IKEv2" ridică conexiunea dintr-un shell, ceea ce este cea mai rapidă cale de a vedea rezultatul în prim-plan, nu într-un jurnal de evenimente.
Ce nu dovedește un tunel conectat
Starea conectat acoperă schimbul IKE și pasul de autentificare, și nimic mai mult. Comportamentul DNS, calea către o gazdă privată și firewallul îndepărtat sunt toate încă nedovedite. Lucrați spre exterior: adaptorul tunelului, apoi o căutare de rută pentru o adresă privată, apoi un serviciu pe care aveți voie să îl utilizați. Prima observație care eșuează indică stratul de investigat.
Când modificați un profil, ștergeți-l pe cel anterior cu Remove-VpnConnection -Name "Office IKEv2" -Force înainte de a-l recrea; altfel setări și rute învechite persistă după editare. Dacă tot nu se conectează, comparați amprenta înregistrată în profil cu cea prezentă în depozit, pentru că Windows poate păstra o referință la o identitate care între timp a fost înlocuită sub un subiect neschimbat.
Țineți amprenta, metoda EAP și lista de rute lângă profil. Împreună explică cea mai mare parte din ce merge prost mai târziu.