რატომ იწყება OpenVPN შესვლისას და არა Windows-ის ჩატვირთვისას?
გაშვების მალსახმობი ხსნის სამუშაო მაგიდის აპს და არა ავტომატურ სერვისს. ფაილების გადატანამდე შეამოწმეთ, რომელ პროფილის წყაროს კითხულობს სერვისი.
გვირაბები, რომლებიც მხოლოდ მას შემდეგ ჩნდება, რაც ვინმე შედის სისტემაში, ჩვეულებრივ იწყება ამ ადამიანის სესიის მიერ და არა ავტომატური სერვისის მიერ. ჩვეულებრივი დამნაშავე გაშვების მალსახმობია, რომელიც ხსნის openvpn-gui.exe-ს, და ეს გატეხილი ინსტალაცია არ არის. მალსახმობი ხსნის სამუშაო მაგიდის აპლიკაციას მომხმარებლის სესიის შიგნით, ამ მომხმარებლის პროფილით, მისი სერტიფიკატების საცავებით და მოთხოვნაზე პასუხის გაცემის უნარით. ამათგან არცერთი არ ხდის კავშირს დამოუკიდებელს შესული ადამიანისგან, და ეს არის ზუსტად ის, რასაც ითხოვს გვირაბი შესვლამდე.
სიმპტომს ჩვეულებრივ სამი მიზეზი აქვს
სამი ნიმუში გარედან ერთნაირად გამოიყურება და მათ განსხვავებული შესწორებები აქვთ. პირველია შესრულების მფლობელი, რომელიც სერვისის ნაცვლად მომხმარებლის სესიაა, ეს არის მალსახმობის შემთხვევა. მეორეა პროფილი, რომელიც იმ ადგილასაა, სადაც სერვისი არ იყურება, ამიტომ სერვისი იწყება, ვერაფერს პოულობს და სუფთად გადის. მესამეა პროფილი, რომელსაც სერვისი პოულობს და უშვებს, მაგრამ მისი სერტიფიკატები მოითხოვს ისეთ ინტერაქციას, რომელსაც ვერც ერთი სერვისი ვერ უზრუნველყოფს.
იმის დასადგენად, რომელი შემთხვევა მოქმედებს, ორი წაკითხვაა საჭირო: რა უნდა გაუშვას სერვისმა და რომელი ფაილების ნახვა შეუძლია. ორივე ერთი ბრძანებაა და არცერთი არ არღვევს მოქმედ კავშირს.
რას კითხულობს ავტომატური სერვისი სინამდვილეში
Community-ის ავტომატური სერვისი ერთგვარი გარსია, რომელიც სკანირებს თავის კონფიგურირებულ ავტომატური გაშვების საქაღალდეს, ჩვეულებრივ ინსტალაციის ქვეშ config-auto-ს, და უშვებს OpenVPN პროცესს ყოველი შესაბამისი პროფილისთვის, რომელსაც პოულობს. მომხმარებლის GUI მენიუში ხილული პროფილი სამაგიეროდ ამ მომხმარებლის როუმინგ პროფილის ქვეშ ცხოვრობს, საქაღალდეში, რომელსაც სერვისის ანგარიში არ კითხულობს. Windows-ის სერვისის სახელმძღვანელო აღწერს ამ აღმოჩენას, და ღირს მისი წაკითხვა სანამ რამეს დააკოპირებთ, რადგან სამიზნე საქაღალდე ინსტალაციის თვისებაა და არა ფიქსირებული კონვენცია. ამიტომ ფაილის GUI-ის საქაღალდეში კოპირება სერვისისთვის არაფერს ცვლის, ხოლო config-ად წოდებულ ყოველ საქაღალდეში კოპირება შესწორების ნაცვლად დუბლიკატებს ქმნის.
Get-Service OpenVPNService | Select-Object Status, StartType
Get-CimInstance Win32_Service | Where-Object Name -eq 'OpenVPNService' | Select-Object PathName, StartName
gci 'C:\Program Files\OpenVPN\config-auto'
ბოლო ბრძანება ჩამოთვლის, რასაც გარსი სინამდვილეში დაინახავს, და ეს არის ყველაზე სწრაფი გზა დასადასტურებლად, რომ პროფილი არასწორ ადგილასაა. მეორე ხაზი ასევე აჩვენებს ანგარიშს, რომლის ქვეშ მუშაობს სერვისი, და ეს ანგარიში წყვეტს, რომელი ფაილის ბილიკები და სერტიფიკატების საცავებია საერთოდ ხელმისაწვდომი.
რატომ მუშაობს სამუშაო მაგიდაზე შესვლა და არა ჩატვირთვისას გაშვება
წარმატებამ სამუშაო მაგიდაზე შეიძლება დიდხანს დამალოს შეყვანაზე დამოკიდებულება. GUI-ს შეუძლია გასაღების პაროლფრაზის, ანგარიშის პაროლის ან მეორე ფაქტორის შეგროვება დიალოგში, რადგან მუშაობს ინტერაქტიულ სესიაში ხილული სამუშაო მაგიდით. სერვისი მუშაობს სესიაში სამუშაო მაგიდის გარეშე, ამიტომ შეყვანის მოთხოვნას არსად აქვს გამოჩენის ადგილი, და კავშირი ვარდება ისეთი დროის ამოწურვის შემდეგ, რომელიც საერთოდ არ ჰგავს სერტიფიკატების პრობლემას.
ფაილებზე წვდომა იმავე წესს მიჰყვება. მომხმარებლის პროფილის ქვეშ შენახული პირადი გასაღები, ან მომხმარებლის პირად საცავში არსებული სერტიფიკატი, ხელმისაწვდომი არ არის მანქანის სახით მომუშავე სერვისისთვის. შეადარეთ აბსოლუტური ბილიკები, ნებართვები და თითოეული მხარის მიერ გაკეთებული სერტიფიკატის არჩევანი იმის ნაცვლად, რომ ივარაუდოთ, რომ ერთი და იგივე პროფილის ფაილი ნიშნავს ერთსა და იმავე გარემოს.
დაგეგმილი დავალება, რომელიც დაყენებულია იმის მიუხედავად იმუშაოს, შესულია მომხმარებელი თუ არა, მსგავს შეზღუდვას მემკვიდრეობით იღებს. მას შეუძლია წარმატებით გაუშვას GUI-ის შესრულებადი ფაილი და მაინც შექმნას პროცესი, რომელიც არასდროს იღებს სერტიფიკატებს, ამიტომ დავალებების მენეჯერში პროცესის არსებობა მომუშავე გვირაბის მტკიცებულება არ არის.
აირჩიეთ ერთი მფლობელი და გამოსცადეთ რეალური სასიცოცხლო ციკლი
შესული ადამიანის კავშირისთვის გამოიყენეთ GUI-ის მხარდაჭერილი ავტომატური გაშვება და სერვისი გარეთ დატოვეთ. გვირაბისთვის, რომელიც უნდა არსებობდეს სანამ ვინმე შევა, დააკონფიგურირეთ სერვისი, მოათავსეთ პროფილი იქ, სადაც გარსი კითხულობს მას, და გამოიყენეთ მხარდაჭერილი უყურადღებო სერტიფიკატების მექანიზმი, როგორიცაა გასაღები ინტერაქტიული პაროლფრაზის გარეშე ან დოკუმენტირებული სერტიფიკატების ფაილი.
Get-Content 'C:\Program Files\OpenVPN\log\openvpn.log' -Tail 40
Get-WinEvent -LogName Application -MaxEvents 20 | Where-Object ProviderName -like '*OpenVPN*'
გამოსცადეთ ის სასიცოცხლო ციკლი, რომელსაც მნიშვნელობა აქვს: გადატვირთვა ვინმეს შესვლის გარეშე, შემდეგ კვლავ დაკავშირება ქსელის ცვლილების შემდეგ. შეინარჩუნეთ ერთი მფლობელი კავშირისთვის, რადგან ორი კონკურენტი გაშვების მექანიზმი ჩვეულებრივ ქმნის ორ ინსტანციას, რომლებიც იბრძვიან ერთი და იმავე მარშრუტებისა და ერთი და იმავე სერვერის სესიისთვის, და ამის დიაგნოსტიკა უფრო რთულია, ვიდრე რომელიმე მექანიზმის ცალკე.