საჯარო VPN კონფიგურაციამ მუშაობა შეწყვიტა? წაიკითხეთ მარცხის ეტაპი
ჩამოტვირთული პროფილი ერთ ჰოსტს ერთ დღეში აღწერს. წაიკითხეთ რომელი მტკიცება გატყდა, შეამოწმეთ მეორე მხარის მიერ წარდგენილი სერტიფიკატი და არასოდეს გამორთოთ შემოწმება.
პროფილი სამშაბათს მუშაობდა, პარასკევს კი კლიენტი ოცდაათ წამს ტრიალებს და ნებდება. თქვენს მანქანაზე არაფერი შეცვლილა. სწორედ ეს არის საკითხი: ჩამოტვირთული კონფიგურაცია ერთ ჰოსტს ერთ მომენტში აღწერს და მოპირდაპირე მხარის ოპერატორს არ აქვს ვალდებულება ეს აღწერა მართალი შეინარჩუნოს. ცდუნება ის არის, რომ დაიწყოთ უსაფრთხოების პარამეტრების რედაქტირება, სანამ გვირაბი ისევ არ ამოვა. სწორედ ეს ინსტინქტი იწვევს იმას, რომ ადამიანები საბოლოოდ სერტიფიკატის შემოწმების გამორთული პროფილით მუშაობენ, რაც უარესია, ვიდრე გვირაბი საერთოდ არ ჰქონდეთ.
ფაილი აღწერს მომენტს და არა ხელშეკრულებას
კონფიგურაციის ფაილი მტკიცებების ერთობლიობაა: ეს ჰოსტის სახელი ამ პორტზე ამ პროტოკოლით უსმენს, წარადგენს ამ სახელის შესაბამის სერტიფიკატს და იღებს ამ სარეგისტრაციო მონაცემებს. როცა რომელიმე მათგანი წყვეტს მართალი იყოს, ფაილი მოძველებულია და შესწორება საზღვრის ოპერატორის მხარეს გადადის, და არა თქვენს პარამეტრებში.
საჯარო კვანძების სიები თავიანთი ბუნებით ხდიან ამას აშკარას. კვანძებს მოხალისეები მართავენ, ისინი ჩნდებიან და ქრებიან, მისამართები გადამუშავდება და პორტები იბლოკება იმ ქსელის მიერ, რომლის უკანაც ისინი დგანან. სია არის განახლებადი მომენტური სურათი, ხოლო თქვენს დისკზე არსებული ასლი უფრო ძველი მომენტური სურათის ფოტოა.
კომერციული სერვისები უფრო ნელა იცვლება, მაგრამ არასოდეს არა. სერტიფიკატის ორგანოები იცვლება, მსმენელი საერთო მისამართიდან გამოყოფილზე გადადის, ძველი პროტოკოლი გაუქმდება და ახალი შიფრების სია მოდის. თითოეული მათგანი უხილავია, სანამ თქვენი კლიენტი არ შეეცდება დაკავშირებას და ფაილის მოლოდინისგან განსხვავებულ პასუხს არ მიიღებს.
წაიკითხეთ მარცხის ეტაპი, სანამ პარამეტრს შეეხებით
შეცდომის შეტყობინება ამბობს, რომელი მტკიცება გატყდა და თითოეულ მტკიცებას სრულიად განსხვავებული შესწორება აქვს. შიფრების რედაქტირება, როცა ჰოსტის სახელი აღარ წყდება, შუადღეს კარგავს და არავის არაფერს ასწავლის.
| What happens | The assertion that broke | Supported response |
|---|---|---|
| Name never resolves | The host still exists under that name | Get a current endpoint from the operator |
| TCP connect times out | The listener is on that port and reachable | Check the current published port, then the local network |
| TLS or key exchange fails | The peer presents the expected identity | Compare the certificate, not the cipher list |
| Authentication rejected | The account is still valid | Get credentials reissued or stop using the service |
dig +short vpn.example.net
curl -sS -o /dev/null -w 'connect=%{time_connect} tls=%{time_appconnect}\n' --max-time 8 https://vpn.example.net:443/
openssl s_client -connect vpn.example.net:443 -servername vpn.example.net -brief </dev/nullშუა ხაზი ბლოკირებულ გზას გატეხილი ხელის ჩამორთმევისგან ჰყოფს, ხოლო მესამე აჩვენებს ფაქტობრივად წარდგენილი სერტიფიკატის გამომცემელს და მოქმედების თარიღებს. თუ ეს გამომცემელი არ არის ის, რაც პროფილმა დაამაგრა, სერტიფიკატი შეიცვალა და კლიენტის მხარის არცერთი პარამეტრი ძველ დამაგრებას ისევ სწორს არ გახდის.
სერტიფიკატისა და იდენტობის ცვლილებები ჩუმია
უმეტესი მარცხი თავის თავს აცხადებს. იდენტობის ცვლილებები არა, რადგან კლიენტი, რომელიც სერტიფიკატის სახელს ამაგრებს, სრულიად კარგ ახალ სერტიფიკატს უარყოფს შეტყობინებით, რომელსაც ბევრი შეცდომად კითხულობს. გვირაბი რიგზეა. დამაგრება მოძველებულია.
სანამ რამეს დაასკვნით, მოძებნეთ იდენტობის პარამეტრები:
grep -nE '^(remote|proto|auth|verify-x509-name|tls-crypt|key-direction|ca) ' profile.ovpn
openssl x509 -in profile-ca.crt -noout -subject -datesთუ პროფილი ჩაშენებულ CA-ს ატარებს და ოპერატორი ახალ ორგანოზე გადავიდა, ძველი ფაილი ვერ შეამოწმებს ახალ სერვერს. CA ბლოკის ოპერატორის გამოქვეყნებულით ჩანაცვლება ლეგიტიმური შესწორებაა. შემოწმების ინსტრუქციის წაშლა არა, და ეს იგივე კლავიშებზე დაჭერაა სრულიად განსხვავებული შედეგით.
კლიენტის განახლებამ შეიძლება იგივე სიმპტომი გამოიწვიოს ოპერატორის რაიმე ცვლილების გარეშე. პარამეტრები, რომლებიც ჩუმად მოითმენდნენ, ახლა უარყოფილია, ან მოძველებული პროტოკოლი იშლება. ეს თქვენი პროგრამის თავსებადობის ზღვარია და ღირს იმავე კლიენტზე მეორე პროფილის გამოცდა, სანამ სერვერს დაადანაშაულებთ.
მხოლოდ ოპერატორს შეუძლია მართებული ჩანაცვლების გამოქვეყნება
როცა კვანძი ქრება, ჩანაცვლება უნდა მოვიდეს იმავე წყაროდან, რომელმაც ორიგინალი გამოაქვეყნა. პროფილი, რომელიც პირდაპირ შეტყობინებაში მოდის იმიტომ, რომ «იგივე სერვერის სახელს იყენებს», უცნობი მხარის შეუმოწმებელი კონფიგურაციაა და მისი იმპორტი ამ მხარეს თქვენი მარშრუტიზაციის კონტროლს აძლევს.
შემოწმება იაფია. მოიტანეთ მიმდინარე ფაილი გამოქვეყნებული ადგილიდან, შეადარეთ ბოლო წერტილი და პროტოკოლი სიას და დაადასტურეთ CA მასალის თითის ანაბეჭდი ფაილის სახელის ნაცვლად:
curl -sS -o current.ovpn https://example.org/nodes/current.ovpn
sha256sum current.ovpn profile.ovpn
grep -nE '^(remote|proto) ' current.ovpnთუ ორი ჰეში მხოლოდ სივრცეებით განსხვავდება, ეს ფორმატის ცვლილებაა. თუ ისინი ბოლო წერტილებით განსხვავდებიან, ოპერატორმა რაღაც გადაადგილა და გამოქვეყნებული ფაილია ავტორიტეტი. თუ გამოქვეყნებული ფაილი უფრო ძველია, ვიდრე თქვენი, ალბათ ქეშს უყურებთ და მოძველებული პასუხი არასწორი მიმართულებით გაგიშვებთ.
გაიყვანეთ ძველი ჩანაწერი და ჩაწერეთ რა მოხდა
მუშა ჩანაცვლების დადასტურების შემდეგ წაშალეთ ძველი პროფილი, ნაცვლად იმისა, რომ სარეზერვოდ შეინახოთ. ნახევრად დაკავშირებული ძველი ჩანაწერი ხაფანგია: ის შეფერხების დროს შეირჩევა, ნელა ჩავარდება და გამმართავი პირველ ათ წუთს არასწორ ფაილზე დახარჯავს.
შეინახეთ მოკლე ჩანაწერი კონფიგურაციის გარეთ: თარიღი, ძველი ბოლო წერტილი, მარცხის ეტაპი და რამ შეცვალა ის. საჯარო კვანძები იცვლება და ექვსი კვირის შემდეგ იგივე კითხვა სხვა ადამიანთან ერთად მოდის. შენიშვნების ფაილში ერთი სტრიქონი წამებში პასუხობს მას.
თუ ერთი ქსელიდან ყველა კვანძი ერთნაირად ვარდება, ხოლო მეორიდან არცერთი, შეწყვიტეთ პროფილების რედაქტირება და შეხედეთ ლოკალურ გზას. ტყვეობის პორტალი, გაფილტრული პორტების დიაპაზონი ან ჩამჭრელი პროქსი იდენტურ შეცდომებს წარმოშობს დაუკავშირებელ პროვაიდერებთან და სწორედ ეს ნიმუშია ერთადერთი ნიშანი, რომ პრობლემა არასოდეს ყოფილა ფაილში.