Chyba 789 na pripojení L2TP vo Windows znamená, že tunel zomrel vnútri výmeny zabezpečenia IPsec, čo sa deje dávno predtým, než Windows niekam pošle používateľské heslo. Opakovanie hesla alebo jeho reset v adresári nemôže tento krok posunúť vpred. Posúva ho prestavba pripojenia z PowerShellu s návrhom, ktorý brána skutočne ponúka, pretože sprievodca v Nastaveniach vyberá transformácie IPsec ticho a nikdy vám neukáže, čo vybral. Toto je runbook na to: vytvorte profil, zafixujte návrh a potom použite tabuľku fáz, aby vám ďalší kód niečo povedal.

Vytvorte profil bez sprievodcu

Add-VpnConnection zapisuje natívny záznam do telefónneho zoznamu, takže výsledkom je ten istý objekt, ktorý bude aplikácia Nastavenia neskôr upravovať. Spúšťajte ho z elevovanej relácie, keď má pripojenie existovať pre každý účet na počítači, alebo z používateľského kontextu, keď má zostať súkromné:

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

Zlaďte -AuthenticationMethod s tým, čo brána ponúka. MSChapv2, EAP a PAP nie sú zameniteľné a profil, ktorý vyžaduje metódu, ktorú server neprijme, zlyhá ešte predtým, než sa pozrie na akýkoľvek používateľský záznam. Ponechajte -EncryptionLevel Required pre čokoľvek skutočné; Optional umožňuje Windows prijať nešifrovaný tunel, ak ho protistrana ponúkne, čo je laboratórna skratka, nie nastavenie na nasadenie.

Ak odovzdáte -L2tpPsk, tento vopred zdieľaný kľúč sa zapíše do profilu na disku, odkiaľ ho môže obnoviť ktokoľvek, kto dokáže na tomto počítači prečítať profil. Používajte certifikát na overenie protistrany, keď ho brána podporuje, a keď je PSK nevyhnutný, držte ho mimo repozitára a mimo histórie shellu namiesto vkladania do každého provisioningového behu.

Zafixujte návrh namiesto prijímania predvolených hodnôt

Windows vypĺňa transformácie IPsec sám, a preto dva počítače so zdanlivo identickým pripojením môžu proti tej istej bráne zlyhať rôzne. Set-VpnConnectionIPsecConfiguration je podporovaný spôsob, ako ich zafixovať:

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

Táto sada je jedno bežné usporiadanie L2TP/IPsec, nie univerzálna odpoveď. Každý parameter prijíma pevný zoznam hodnôt a kombinácia, ktorú platforma nedokáže zmapovať, sa vráti ako chyba rutiny cmdlet namiesto ticho oslabeného profilu. Berte takú chybu ako tvrdenie o hodnotách, nie o vašich oprávneniach.

Skopírujte návrh z dokumentácie brány alebo z jej živých nastavení fázy 1 a fázy 2 a meňte jedno pole po druhom len vtedy, keď brána loguje transformácie, ktoré odmieta. Prechádzanie piatich polí vytvorí pripojenie, ktoré funguje náhodou, a záznam, ktorý ďalšiemu človeku nič nevysvetlí.

Čítajte zlyhanie podľa fázy, nie podľa textu chyby

789 patrí do rodiny kódov, ktoré v dialógu klienta vyzerajú všetky rovnako. Predtým, než opäť siahnete na profil, priraďte kód k fáze, do ktorej patrí:

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

Dve úlohy prihlasovacích údajov sú tu dôležité. Vopred zdieľaný kľúč alebo certifikát overuje protistrany navzájom, zatiaľ čo MSChapv2 alebo EAP overuje vás vnútri tunela. Reset používateľského hesla nemôže opraviť prvé, nové zdieľané tajomstvo nemôže opraviť druhé a zmena oboch naraz zničí dôkaz o tom, ktoré bolo nesprávne.

Na ceste s certifikátom skontrolujte hodiny klienta, reťazec dôvery a identitu, ktorú brána očakáva, predtým, než zvážite zmiernenie validácie. Vypnutie validácie premení viditeľnú 789 na tunel, ktorý sa pripojí, aj keď dôveruje nesprávnej protistrane, a nič v klientovi vám nepovie, že sa to stalo. zoznam chýb vzdialeného prístupu od Microsoftu je referenciou pre samotné kódy a oddeľuje zlyhania bezpečnostnej vrstvy od zlyhaní prihlásenia.

Overte z oboch strán, než to označíte za opravené

Prečítajte profil späť, ale nečakajte v výstupe návrh. Get-VpnConnection hlási názov, adresu servera, typ tunela, úroveň šifrovania a metódu overovania a o transformáciách nevie nič, takže čítanie potvrdí, že záznam existuje a smeruje na správny hostiteľ:

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

Volajte z príkazového riadka, aby ste dostali číslo namiesto dialógu: rasdial "Contoso L2TP" vracia rovnaký kód zlyhania, aký by vrátilo rozhranie, a rasdial "Contoso L2TP" /disconnect ho medzi pokusmi vymaže. Potom prečítajte stranu brány pre ten istý pokus. ipsec statusall strongSwanu alebo IKE log smerovača uvádza, ktorý návrh dorazil a ktorý bol odmietnutý, a porovnanie s hodnotami rutiny cmdlet je jediný krok, ktorý skutočne dokazuje, že sa oba konce zhodli.

Úspešné pripojenie nie je cieľová čiara. Otvorte aplikáciu, na ktorej používateľovi záleží, pretože trasy, vnútený DNS a nastavenia rozdeleného tunela zlyhávajú po postavení tunela a nevytvárajú žiadny chybový dialóg.

Automatizujte to a čisto sa vráťte

Bezobslužné nastavenie je dôvod, prečo to skriptovať, a krok vytáčania je miesto, kde unikajú prihlasovacie údaje. rasdial ich berie na svojom príkazovom riadku, kde ich môžu prečítať iní miestni používatelia a väčšina zberačov logov:

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

Preferujte údaj obmedzený na účet, ktorý úlohu spúšťa, alebo nechajte profil, aby ho uložil pomocou -RememberCredential, pred odovzdávaním hesla ako argumentu v naplánovanej úlohe. Samotné provisioningové príkazy sa dajú bezpečne opakovať s -Force, ale radi prepíšu starý návrh, takže opakované spustenie pomôže len vtedy, keď skript nesie aktuálne hodnoty.

Profily prežívajú reštarty a žijú dlhšie než konfigurácia brány, pre ktorú boli vytvorené. Keď sa návrh brány zmení, odstráňte záznam a vytvorte ho znova, namiesto navrstvenia druhej sady hodnôt: Remove-VpnConnection -Name "Contoso L2TP" -Force, potom zopakujte dve rutiny cmdlet s novou sadou.

Uzavrite slučku štyrmi kontrolami, ktoré žijú vedľa skriptu: Get-VpnConnection ukazuje očakávaný typ tunela a úroveň šifrovania; brána zaznamenáva dokončenú fázu 1 a fázu 2 pre adresu vášho klienta; rasdial vracia úspech a aplikácia sa otvorí; a návrh zaznamenaný v skripte zodpovedá aktuálnemu nastaveniu brány. Keď dorazí ďalšia 789, toto porovnanie zaberie minúty namiesto odpoludnia.

Súvisiace články