შეცდომა 789 Windows-ის L2TP კავშირზე ნიშნავს, რომ გვირაბი მოკვდა 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, ეს შედარება წუთებს იკავებს ნახევარი დღის ნაცვლად.

დაკავშირებული სტატიები