Windows-ийн L2TP холболт дээрх 789 алдаа нь туннель 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 зайлшгүй бол түүнийг өгөгдлийн сан болон shell-ийн түүхээс гадуур байлга, бүх бэлтгэлийн ажиллагаанд нааж болохгүй.

Өгөгдмөл утгыг хүлээж авахын оронд саналыг бэхлээрэй

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 оролдлогын хооронд түүнийг цэвэрлэдэг. Дараа нь мөн тэр оролдлогын гарцын талыг уншаарай. 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 ирэхэд тэр харьцуулалт үдээс хойш биш, хэдхэн минутад дуусна.

Холбоотой нийтлэлүүд