Fejl 789 på en Windows L2TP-forbindelse betyder, at tunnelen døde inde i IPsec-sikkerhedsudvekslingen, hvilket sker længe før Windows sender en brugeradgangskode nogen steder hen. At prøve adgangskoden igen eller nulstille den i mappen kan ikke flytte det trin frem. Det, der flytter det, er at genopbygge forbindelsen fra PowerShell med det forslag, gatewayen faktisk tilbyder, fordi guiden i Indstillinger vælger IPsec-transformationer i det stille og aldrig viser dig, hvad den valgte. Dette er runbooken til det: opret profilen, fastlås forslaget, og brug derefter en trintabel, så den næste kode fortæller dig noget.

Opret profilen uden guiden

Add-VpnConnection skriver en indbygget telefonbogspost, så resultatet er det samme objekt, som appen Indstillinger redigerer senere. Kør den fra en forhøjet session, når forbindelsen skal findes for hver konto på maskinen, eller fra brugerkonteksten, når den skal forblive privat:

Add-VpnConnection -Name "Contoso L2TP" `
  -ServerAddress 203.0.113.10 `
  -TunnelType L2tp `
  -EncryptionLevel Required `
  -AuthenticationMethod MSChapv2 `
  -RememberCredential -Force

Tilpas -AuthenticationMethod til det, gatewayen tilbyder. MSChapv2, EAP og PAP kan ikke udskiftes, og en profil, der kræver en metode, som serveren ikke accepterer, fejler, før nogen brugerpost slås op. Behold -EncryptionLevel Required for alt rigtigt; Optional lader Windows acceptere en ukrypteret tunnel, hvis modparten tilbyder en, hvilket er en laboratoriegenvej og ikke en indstilling, man udgiver.

Hvis du sender -L2tpPsk, skrives den foruddelte nøgle ind i profilen på disken, hvor enhver, der kan læse profilen på den maskine, kan gendanne den. Brug et certifikat til at godkende modparten, når gatewayen understøtter det, og når en PSK er uundgåelig, så hold den ude af repositoriet og ude af shell-historikken i stedet for at indsætte den i hver provisioning-kørsel.

Fastlås forslaget i stedet for at acceptere standardværdierne

Windows udfylder selv IPsec-transformationerne, og derfor kan to maskiner med en tilsyneladende identisk forbindelse fejle forskelligt mod den samme gateway. Set-VpnConnectionIPsecConfiguration er den understøttede måde at fastlåse dem på:

Set-VpnConnectionIPsecConfiguration -ConnectionName "Contoso L2TP" `
  -AuthenticationTransformConstants SHA256128 `
  -CipherTransformConstants AES128 `
  -EncryptionMethod AES128 `
  -IntegrityCheckMethod SHA256 `
  -DHGroup Group14 `
  -PfsGroup None `
  -PassThru -Force

Det sæt er ét almindeligt L2TP/IPsec-arrangement, ikke et universelt svar. Hver parameter accepterer en fast liste af værdier, og en kombination, som platformen ikke kan kortlægge, kommer tilbage som en cmdlet-fejl i stedet for en lydløst svækket profil. Behandl en sådan fejl som en udtalelse om værdierne, ikke om dine rettigheder.

Kopiér forslaget fra gatewayens dokumentation eller fra dens aktive fase-1- og fase-2-indstillinger, og skift ét felt ad gangen kun, mens gatewayen logger de transformationer, den afviser. At cykle gennem fem felter giver en forbindelse, der virker ved et tilfælde, og en registrering, der ikke forklarer den næste person noget.

Læs en fejl efter trin, ikke efter fejltekst

789 hører til en familie af koder, der alle ser ens ud i klientdialogen. Anbring koden ved det trin, den hører til, før du rører profilen igen:

What you seeStage that failedCheck first
Nothing happens, then a timeoutNo IKE response at allServer address, UDP 500 and 4500 reachability, NAT traversal on the gateway
Error 789IKE security exchangeProposal, pre-shared key, certificate trust and client clock
Error 691 or a repeated password promptUser authenticationAccount state, domain, RADIUS or NPS policy
Tunnel up, some hosts unreachableRouting or DNS after PPPSplit-tunnel routes, pushed DNS, remote subnet mask

De to legitimationsroller betyder noget her. En forudelt nøgle eller et certifikat godkender parterne over for hinanden, mens MSChapv2 eller EAP godkender dig inde i tunnelen. Nulstilling af en brugeradgangskode kan ikke rette det første, en ny delt hemmelighed kan ikke rette det andet, og at ændre begge på én gang ødelægger beviset for, hvilken der var forkert.

På certifikatvejen skal du kontrollere klientens ur, tillidskæden og den identitet, gatewayen forventer, før du overvejer at lempe valideringen. Deaktivering af validering gør en synlig 789 til en tunnel, der forbinder, mens den stoler på den forkerte modpart, og intet i klienten vil fortælle dig, at det skete. Microsofts liste over fjernadgangsfejl er referencen for selve koderne, og den adskiller fejl i sikkerhedslaget fra fejl ved logon.

Kontrollér fra begge ender, før du kalder den rettet

Læs profilen tilbage, men forvent ikke forslaget i outputtet. Get-VpnConnection rapporterer navn, serveradresse, tunneltype, krypteringsniveau og godkendelsesmetode og ved intet om transformationer, så tilbagelæsningen bekræfter, at posten findes og peger på den rigtige vært:

Get-VpnConnection -Name "Contoso L2TP" |
  Select-Object Name, ServerAddress, TunnelType, EncryptionLevel, AuthenticationMethod

Ring op fra kommandolinjen, så du får et nummer i stedet for en dialog: rasdial "Contoso L2TP" returnerer den samme fejlkode, som grænsefladen ville, og rasdial "Contoso L2TP" /disconnect rydder den mellem forsøg. Læs derefter gatewayens side for det samme forsøg. En ipsec statusall fra strongSwan eller en IKE-log på routeren angiver, hvilket forslag der kom, og hvilket der blev afvist, og at sammenligne det med cmdlet-værdierne er det eneste trin, der faktisk beviser, at de to ender blev enige.

En vellykket forbindelse er ikke målstregen. Åbn det program, som brugeren er optaget af, fordi ruter, skubbet DNS og indstillinger for delt tunnel fejler, efter tunnelen er oppe, og slet ikke giver nogen fejldialog.

Automatisér det, og rul rent tilbage

Uovervåget opsætning er grunden til at skripte dette, og opkaldsstrinnet er der, hvor legitimationsoplysninger lækker. rasdial tager dem på sin kommandolinje, hvor andre lokale brugere og de fleste logindsamlere kan læse dem:

subprocess.run(["rasdial", "Contoso L2TP"], check=True)

Foretræk en legitimationsoplysning afgrænset til den konto, der kører jobbet, eller lad profilen gemme den med -RememberCredential, frem for at sende en adgangskode som argument i en planlagt opgave. Selve provisioning-kommandoerne er sikre at gentage med -Force, men de lægger gerne et gammelt forslag ovenpå, så en genkørsel hjælper kun, hvis scriptet bærer de aktuelle værdier.

Profiler overlever genstarter og lever længere end den gateway-konfiguration, de blev bygget til. Når gatewayens forslag flytter sig, skal du fjerne posten og oprette den igen i stedet for at lægge et andet sæt værdier ovenpå: Remove-VpnConnection -Name "Contoso L2TP" -Force, og gentag derefter de to cmdlets med det nye sæt.

Luk kredsen med fire kontroller, der bor ved siden af scriptet: Get-VpnConnection viser den forventede tunneltype og krypteringsniveau; gatewayen logger en fuldført fase 1 og fase 2 for din klientadresse; rasdial returnerer succes, og programmet åbner; og forslaget, der er registreret i scriptet, matcher gatewayens aktuelle indstilling. Når den næste 789 kommer, tager den sammenligning minutter i stedet for en eftermiddag.

Relaterede artikler