Грешка 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 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

Овде се важни двете улоги на акредитивите. Однапред споделен клуч или сертификат ги автентицира страните една на друга, додека 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 го чисти меѓу обидите. Потоа прочитајте ја страната на порталот за истиот обид. ipsec statusall на strongSwan или 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, таа споредба трае минути наместо попладне.

Поврзани статии