Памылка 789 L2TP/IPsec у Windows: стварыце профіль і замацуйце прапанову
Памылка 789 узнікае ў абмене IPsec, а не ў паролі. Стварыце профіль L2TP сцэнаром, замацуйце прапанову і чытайце наступныя коды па этапах.
Памылка 789 у злучэнні L2TP у Windows азначае, што тунель загінуў унутры абмену бяспекі IPsec, а гэта адбываецца задоўга да таго, як Windows наогул нешта адправіць з паролем карыстальніка. Паўторныя спробы пароля або яго скід у каталогу не могуць прасунуць гэты этап наперад. Прасоўвае яго перабудова злучэння з PowerShell з прапановай, якую шлюз сапраўды прапануе, бо майстар налад незаўважна выбірае пераўтварэнні IPsec і ніколі не паказвае, што менавіта абраў. Вось сцэнар для гэтага: стварыце профіль, замацуйце прапанову, затым выкарыстайце табліцу этапаў, каб наступны код сказаў вам нешта карыснае.
Стварыце профіль без майстра
Add-VpnConnection запісвае ўласны запіс тэлефоннай кнігі, таму вынік — той жа аб'ект, які пазней рэдагуе праграма «Налады». Запускайце яго з павышанага сеансу, калі злучэнне павінна існаваць для кожнага ўліковага запісу на машыне, або з кантэксту карыстальніка, калі яно павінна заставацца прыватным:
Add-VpnConnection -Name "Contoso L2TP" `
-ServerAddress 203.0.113.10 `
-TunnelType L2tp `
-EncryptionLevel Required `
-AuthenticationMethod MSChapv2 `
-RememberCredential -Force
Супастаўце -AuthenticationMethod з тым, што прапануе шлюз. MSChapv2, EAP і PAP не ўзаемазамяняльныя, і профіль, які патрабуе метад, якога сервер не прыме, падае яшчэ да звароту да любога запісу карыстальніка. Пакіньце -EncryptionLevel Required для ўсяго рэальнага; Optional дазваляе Windows прыняць незашыфраваны тунель, калі суразмоўца яго прапануе, а гэта лабараторнае скарачэнне, а не налада для выпуску.
Калі вы перадаяце -L2tpPsk, гэты папярэдне агучаны ключ запісваецца ў профіль на дыску, адкуль любы, хто можа прачытаць профіль на гэтай машыне, зможа яго аднавіць. Выкарыстоўвайце сертыфікат для аўтэнтыфікацыі суразмоўцы, калі шлюз гэта падтрымлівае, а калі PSK непазбежны, трымайце яго па-за рэпазітарам і па-за гісторыяй абалонкі, а не ўклейвайце ў кожны прагон разгортвання.
Замацуйце прапанову замест прыняцця значэнняў па змаўчанні
Windows сам запаўняе пераўтварэнні IPsec, і менавіта таму дзве машыны са злучэннем, якое выглядае аднолькавым, могуць па-рознаму падаць супраць аднаго і таго ж шлюза. Set-VpnConnectionIPsecConfiguration — падтрыманы спосаб замацаваць іх:
Set-VpnConnectionIPsecConfiguration -ConnectionName "Contoso L2TP" `
-AuthenticationTransformConstants SHA256128 `
-CipherTransformConstants AES128 `
-EncryptionMethod AES128 `
-IntegrityCheckMethod SHA256 `
-DHGroup Group14 `
-PfsGroup None `
-PassThru -Force
Гэты набор — адно з распаўсюджаных размяшчэнняў L2TP/IPsec, а не ўніверсальны адказ. Кожны параметр прымае фіксаваны спіс значэнняў, а камбінацыя, якую платформа не можа суаднесці, вяртаецца як памылка cmdlet замест ціха аслабленага профілю. Стаўцеся да такой памылкі як да сцвярджэння пра значэнні, а не пра вашы дазволы.
Скапіруйце прапанову з дакументацыі шлюза або з яго жывых налад этапу 1 і этапу 2 і змяняйце па адным полі толькі тады, калі шлюз запісвае ў журнал пераўтварэнні, якія адхіляе. Перабор пяці палёў дае злучэнне, якое працуе выпадкова, і запіс, які нічога не тлумачыць наступнаму чалавеку.
Чытайце збой па этапе, а не па тэксце памылкі
789 сям'і кодаў, якія ўсе выглядаюць аднолькава ў дыялогу кліента належыць. Суаднясіце код з этапам, да якога ён належыць, перш чым зноў чапаць профіль:
| 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 |
Дзве ролі ўліковых даных маюць тут значэнне. Папярэдне агучаны ключ або сертыфікат аўтэнтыфікуюць бакі адзін аднаму, а MSChapv2 або EAP аўтэнтыфікуюць вас унутры тунеля. Скід пароля карыстальніка не выправіць першае, новы агульны сакрэт не выправіць другое, а змена абодвух адразу знішчае доказ таго, якое было няправільным.
На шляху сертыфіката праверце гадзіннік кліента, ланцужок даверу і ідэнтычнасць, якую чакае шлюз, перш чым разглядаць паслабленне праверкі. Адключэнне праверкі ператварае бачную 789 у тунель, які злучаецца, давяраючы няправільнаму суразмоўцы, і нішто ў кліенце не скажа вам, што гэта адбылося. спіс памылак аддаленага доступу Microsoft з'яўляецца даведкай для саміх кодаў і аддзяляе збоі ўзроўню бяспекі ад збояў уваходу.
Праверце з абодвух бакоў, перш чым казаць, што выпраўлена
Прачытайце профіль назад, але не чакайце ў вывадзе прапановы. Get-VpnConnection паведамляе імя, адрас сервера, тып тунеля, узровень шыфравання і метад аўтэнтыфікацыі і нічога не ведае пра пераўтварэнні, таму чытанне пацвярджае, што запіс існуе і паказвае на правільны хост:
Get-VpnConnection -Name "Contoso L2TP" |
Select-Object Name, ServerAddress, TunnelType, EncryptionLevel, AuthenticationMethod
Набірайце з каманднага радка, каб атрымаць лік замест дыялогу: rasdial "Contoso L2TP" вяртае той жа код збою, што і інтэрфейс, а rasdial "Contoso L2TP" /disconnect ачышчае яго паміж спробамі. Затым прачытайце бок шлюза для той жа спробы. strongSwan ipsec statusall або журнал IKE маршрутызатара паказвае, якая прапанова прыйшла і якую адхілілі, і параўнанне гэтага са значэннямі cmdlet — адзіны крок, які сапраўды даказвае, што бакі дамовіліся.
Паспяховае злучэнне — не фінішная лінія. Адкрыйце праграму, якая важная карыстальніку, бо маршруты, перададзены DNS і налады раздзеленага тунеля падаюць пасля ўздыму тунеля і зусім не ствараюць дыялогу памылкі.
Аўтаматызуйце і акуратна адкочвайце
Менавіта неабслугоўваная ўстаноўка — прычына пісаць сцэнар, а этап набору — месца ўцечкі ўліковых даных. rasdial прымае іх у сваім камандным радку, дзе іншыя лакальныя карыстальнікі і большасць зборшчыкаў журналаў могуць іх прачытаць:
subprocess.run(["rasdial", "Contoso L2TP"], check=True)
Аддайце перавагу ўліковым даным, абмежаваным уліковым запісам, які выконвае задачу, або дазвольце профілю захаваць іх з дапамогай -RememberCredential, замест перадачы пароля як аргумента ў запланаванай задачы. Каманды разгортвання самі па сабе бяспечна паўтараць з -Force, але яны з задавальненнем накладуць старую прапанову, таму паўторны запуск дапаможа, толькі калі сцэнар нясе бягучыя значэнні.
Профілі захоўваюцца пасля перазагрузак і жывуць даўжэй за канфігурацыю шлюза, для якой былі створаны. Калі прапанова шлюза змяняецца, выдаліце запіс і стварыце яго нанова, замест таго каб накладваць другі набор значэнняў: Remove-VpnConnection -Name "Contoso L2TP" -Force, затым паўтарыце дзве cmdlet з новым наборам.
Замкніце цыкл чатырма праверкамі, якія жывуць побач са сцэнарам: Get-VpnConnection паказвае чаканы тып тунеля і ўзровень шыфравання; шлюз запісвае завершаныя этап 1 і этап 2 для адраса вашага кліента; rasdial вяртае поспех і праграма адкрываецца; і прапанова, запісаная ў сцэнары, супадае з бягучымі наладамі шлюза. Калі прыйдзе наступная 789, гэтае параўнанне зойме хвіліны замест паловы дня.