L2TP/IPsec klaida 789 sistemoje Windows: sukurkite profilį ir užfiksuokite pasiūlymą
789 klaida įvyksta IPsec mainuose, o ne dėl slaptažodžio. Sukurkite L2TP profilį scenarijumi, užfiksuokite pasiūlymą ir skaitykite vėlesnius kodus pagal etapą.
789 klaida „Windows“ L2TP ryšyje reiškia, kad tunelis mirė IPsec saugos mainų viduje, o tai įvyksta gerokai anksčiau, nei „Windows“ kur nors nusiunčia vartotojo slaptažodį. Bandant slaptažodį dar kartą arba jį iš naujo nustatant kataloge, to etapo į priekį pastūmėti nepavyksta. Jį pastūmėja ryšio atkūrimas iš „PowerShell“ su pasiūlymu, kurį šliuzas iš tikrųjų siūlo, nes „Nustatymų“ vediklis IPsec transformacijas pasirenka tyliai ir niekada neparodo, ką pasirinko. Tai yra šio darbo vadovas: sukurkite profilį, užfiksuokite pasiūlymą, o tada naudokite etapų lentelę, kad kitas kodas jums ką nors pasakytų.
Sukurkite profilį be vediklio
Add-VpnConnection įrašo vietinį telefonų knygos įrašą, todėl rezultatas yra tas pats objektas, kurį „Nustatymų“ programa vėliau redaguoja. Paleiskite jį iš padidintos sesijos, kai ryšys turi egzistuoti kiekvienai kompiuterio paskyrai, arba iš vartotojo konteksto, kai jis turi likti privatus:
Add-VpnConnection -Name "Contoso L2TP" `
-ServerAddress 203.0.113.10 `
-TunnelType L2tp `
-EncryptionLevel Required `
-AuthenticationMethod MSChapv2 `
-RememberCredential -Force
Suderinkite -AuthenticationMethod su tuo, ką siūlo šliuzas. MSChapv2, EAP ir PAP nėra keičiami, o profilis, reikalaujantis metodo, kurio serveris nepriims, žlunga dar prieš patikrinant bet kurį vartotojo įrašą. Palikite -EncryptionLevel Required viskam tikram; Optional leidžia „Windows“ priimti nešifruotą tunelį, jei kita pusė jį siūlo, o tai yra laboratorijos trumpinys, o ne nustatymas, kurį reikia išleisti.
Jei perduosite -L2tpPsk, tas iš anksto bendrinamas raktas įrašomas į profilio failą diske, iš kur jį gali atkurti bet kas, kas tame kompiuteryje gali perskaityti profilį. Naudokite sertifikatą kitos pusės autentifikavimui, kai šliuzas tai palaiko, o kai PSK neišvengiamas, laikykite jį už saugyklos ir už shell istorijos, o ne įklijuokite į kiekvieną diegimo eigą.
Užfiksuokite pasiūlymą, o ne priimkite numatytąsias reikšmes
„Windows“ pats užpildo IPsec transformacijas, todėl du kompiuteriai, kurių ryšys atrodo identiškas, gali skirtingai žlugti prieš tą patį šliuzą. Set-VpnConnectionIPsecConfiguration yra palaikomas būdas jas užfiksuoti:
Set-VpnConnectionIPsecConfiguration -ConnectionName "Contoso L2TP" `
-AuthenticationTransformConstants SHA256128 `
-CipherTransformConstants AES128 `
-EncryptionMethod AES128 `
-IntegrityCheckMethod SHA256 `
-DHGroup Group14 `
-PfsGroup None `
-PassThru -Force
Šis rinkinys yra vienas įprastas L2TP/IPsec išdėstymas, o ne universalus atsakymas. Kiekvienas parametras priima fiksuotą reikšmių sąrašą, o derinys, kurio platforma negali susieti, grįžta kaip cmdlet klaida, o ne tyliai susilpnintas profilis. Tokią klaidą traktuokite kaip teiginį apie reikšmes, o ne apie jūsų teises.
Nukopijuokite pasiūlymą iš šliuzo dokumentacijos arba iš jo veikiančių 1 ir 2 fazių nustatymų ir keiskite po vieną lauką vienu metu tik tada, kai šliuzas registruoja atmetamas transformacijas. Perėjus penkis laukus gaunamas atsitiktinai veikiantis ryšys ir įrašas, kuris nieko nepaaiškina kitam žmogui.
Skaitykite gedimą pagal etapą, o ne pagal klaidos tekstą
789 priklauso kodų šeimai, kurie kliento dialoge visi atrodo vienodai. Prieš vėl liesdami profilį, priskirkite kodą etapui, kuriam jis priklauso:
| What you see | Stage that failed | Check first |
|---|---|---|
| Nothing happens, then a timeout | No IKE response at all | Server address, UDP 500 and 4500 reachability, NAT traversal on the gateway |
| Error 789 | IKE security exchange | Proposal, pre-shared key, certificate trust and client clock |
| Error 691 or a repeated password prompt | User authentication | Account state, domain, RADIUS or NPS policy |
| Tunnel up, some hosts unreachable | Routing or DNS after PPP | Split-tunnel routes, pushed DNS, remote subnet mask |
Čia svarbūs du prisijungimo duomenų vaidmenys. Iš anksto bendrinamas raktas arba sertifikatas autentifikuoja puses viena kitai, o MSChapv2 arba EAP autentifikuoja jus tunelio viduje. Vartotojo slaptažodžio nustatymas iš naujo negali pataisyti pirmojo, nauja bendra paslaptis negali pataisyti antrojo, o abiejų pakeitimas vienu metu sunaikina įrodymą, kuris buvo neteisingas.
Sertifikato kelyje patikrinkite kliento laikrodį, pasitikėjimo grandinę ir tapatybę, kurios tikisi šliuzas, prieš svarstydami sušvelninti tikrinimą. Tikrinimo išjungimas paverčia matomą 789 tuneliu, kuris prisijungia pasitikėdamas netinkama puse, ir niekas kliente jums nepasakys, kad taip įvyko. „Microsoft“ nuotolinės prieigos klaidų sąrašas yra pačių kodų nuoroda, ir jis atskiria saugos sluoksnio gedimus nuo prisijungimo gedimų.
Patikrinkite iš abiejų galų, prieš skelbdami tai ištaisyta
Perskaitykite profilį atgal, bet nesitikėkite išvestyje pamatyti pasiūlymo. Get-VpnConnection praneša pavadinimą, serverio adresą, tunelio tipą, šifravimo lygį ir autentifikavimo metodą ir nieko nežino apie transformacijas, todėl perskaitymas patvirtina, kad įrašas egzistuoja ir nukreiptas į tinkamą prieglobos serverį:
Get-VpnConnection -Name "Contoso L2TP" |
Select-Object Name, ServerAddress, TunnelType, EncryptionLevel, AuthenticationMethod
Skambinkite iš komandinės eilutės, kad gautumėte numerį, o ne dialogą: rasdial "Contoso L2TP" grąžina tą patį gedimo kodą, kurį grąžintų sąsaja, o rasdial "Contoso L2TP" /disconnect jį išvalo tarp bandymų. Tada perskaitykite šliuzo pusę tam pačiam bandymui. strongSwan ipsec statusall arba maršrutizatoriaus IKE žurnalas nurodo, kuris pasiūlymas atėjo ir kuris buvo atmestas, o palyginimas su cmdlet reikšmėmis yra vienintelis žingsnis, kuris tikrai įrodo, kad abi pusės sutarė.
Sėkmingas prisijungimas nėra finišo linija. Atidarykite programą, kuri vartotojui svarbi, nes maršrutai, stumiamas DNS ir padalinto tunelio nustatymai žlunga po to, kai tunelis pakyla, ir visiškai nesukuria klaidos dialogo.
Automatizuokite tai ir grįžkite švariai
Tvarkomasis įdiegimas yra priežastis rašyti scenarijų, o skambinimo žingsnis yra vieta, kur nuteka prisijungimo duomenys. rasdial priima juos savo komandinėje eilutėje, kur kiti vietiniai vartotojai ir dauguma žurnalų rinkėjų gali juos perskaityti:
subprocess.run(["rasdial", "Contoso L2TP"], check=True)
Pirmenybę teikite prisijungimo duomenims, apribotiems paskyros, kuri vykdo užduotį, arba leiskite profiliui juos saugoti su -RememberCredential, o ne perduokite slaptažodį kaip argumentą suplanuotoje užduotyje. Patys diegimo įsakymai yra saugūs kartoti su -Force, bet jie mielai užklos seną pasiūlymą, todėl pakartotinis vykdymas padeda tik tada, kai scenarijus neša dabartines reikšmes.
Profiliai išlieka po perkrovimų ir gyvena ilgiau nei šliuzo konfigūracija, kuriai jie buvo sukurti. Kai šliuzo pasiūlymas pasikeičia, pašalinkite įrašą ir sukurkite jį iš naujo, o ne sluoksniuokite antrą reikšmių rinkinį: Remove-VpnConnection -Name "Contoso L2TP" -Force, tada pakartokite du cmdlet su nauju rinkiniu.
Uždarykite ciklą keturiais patikrinimais, kurie gyvena šalia scenarijaus: Get-VpnConnection rodo laukiamą tunelio tipą ir šifravimo lygį; šliuzas registruoja užbaigtą 1 ir 2 fazę jūsų kliento adresui; rasdial grąžina sėkmę ir programa atsidaro; o scenarijuje užrašytas pasiūlymas atitinka dabartinį šliuzo nustatymą. Kai ateis kitas 789, tas palyginimas užtruks minutes, o ne popietę.