OpenVPN profilindən key-method sətrini silmək heç nəyi dəyişmir
Direktiva parserdən yox oldu, protokoldan yox. Profili redaktə etməzdən əvvəl köhnə seçimi açar mübadiləsi formatından ayırın.
İllərlə işləyən profil birdən başlamaqdan imtina edir və mesaj heç kimin əlavə etdiyini xatırlamadığı bir direktivanın adını çəkir: key-method. Növbəti axtarış nəticəsi uyğunluq üçün key-method 2 əlavə etməyi təklif edir, bu isə başqa dövrün məsləhətidir. Sətri rədd edən parser cari parserdir və belə bir seçim onda ümumiyyətlə yoxdur. Sətri silmək başlanğıcı düzəldir və iki tərəfin sessiyanı necə qoruduğuna dair heç nəyi dəyişmir.
Profilin nə saxladığı ilə protokolun həqiqətən nə etdiyi arasındakı bu boşluq bütün mövzudur və insanların eyni vaxtda etdiyi bir neçə başqa düzəlişi də izah edir. Bu düzəlişlərin niyə adətən bir dəstə halında gəldiyini də izah edir.
Simptom handshake xətası deyil, parse xətasıdır
Seçimlər hər hansı paket göndərilməzdən əvvəl oxunur. Naməlum direktiva olan profil həmin mərhələdə uğursuz olur, ona görə proses heç vaxt şəbəkəyə çatmır və heç vaxt handshake xətası yaratmır. İfadə adətən seçimi və faylı göstərir, bu da bunu səbəbə bağlamağı asan xətalardan biri edir. Burada nə paket, nə marşrut, nə də firewall iştirak edir.
openvpn --config /etc/openvpn/client/office.ovpn --verb 3 --log /tmp/parse.log
grep -n 'Options error' /tmp/parse.log
Mesaj direktivanı adlandırırsa, diaqnoz bitdi: faylda bu buraxılışın qəbul etmədiyi bir şey var. Mesaj əvəzinə fayl yolu adlandırırsa, problem çatışmayan include və ya açardır ki, bu da eyni başlanğıc mərhələsinin başqa bölməsidir.
Çıxarmalı olmadığınız nəticə budur ki, klient və ya server daha köhnə protokol rejiminə ehtiyac duyur. Parse xətası faylınızla binar fayl arasındakı lüğət problemidir və binar fayl bu halda sadəcə lüğətindən bir sözü çıxarıb.
Direktiva və kanal formatı iki fərqli şeydir
Köhnə key-method seçimi TLS açar mübadiləsinin necə çərçivələndiyini seçirdi, müasir mübadilə isə həmin seçimin əvvəllər tələb etdiyi çoxpaketli üsuldur. Seçim ona görə yox oldu ki, artıq heç nə seçmirdi; adlandırdığı format yeganə format oldu. Beləliklə sətri silmək sessiyanı əvvəlki kimi eyni çərçivədə saxlayır. Mətn düzəlişi bunu heç bir istiqamətdə dəyişə bilməz.
Buna görə “2-ci metodu bərpa etmək” üçün köhnə binar faylı geri gətirmək səhv təmir yoludur. O, köhnə defoltları olan köhnə parserdən başqa heç nə bərpa etmir və sizə sonradan gələn düzəlişləri itirir. Eyni məntiq sertifikat yoxlamasını və ya şifr siyahısını zəiflətməyə də aiddir.
Faydalı yoxlama versiya və parse edilmiş konfiqurasiyadır, faylda sözün olub-olmaması deyil:
openvpn --version | head -n 1
grep -rn 'key-method' /etc/openvpn/ 2>/dev/null
Nəyi silmək və hansı fayldan
İşləyən prosesin həqiqətən oxuduğu faylı redaktə edin və yalnız o faylı. Paketlənmiş sistemlərdə bu adətən unitin göstərdiyi klient və ya server kataloqundakı profildir, ev kataloqunuzda istinad üçün saxladığınız nüsxə deyil. Yaradılmış profil şablondan yenidən qurula bilər, ona görə yalnız yerləşdirilmiş nüsxədə edilən dəyişiklik növbəti provisioning işindən sonra geri qayıdacaq.
Köhnə sətri silin və endpoint, sertifikatlar, şifr siyasəti və idarəetmə kanalı parametrlərini toxunulmaz buraxın. Bunlar prosesin ehtiyac duyduğu dəstəklənən seçimlərdir və parse xətası ilə əlaqəli deyillər. Eyni profildə tanımadığınız başqa direktivalar varsa, proses başlayana qədər bir qrupunu silmək əvəzinə hər birini işlətdiyiniz versiya ilə yoxlayın.
Sonra nəzərdə tutulan instansı başladın və onun başlanğıc çıxışını oxuyun. Dinləyicinin mövcud olduğu təmiz başlanğıc bu mərhələnin bitdiyinin təsdiqidir; sonrakı klient testi başqa suala cavab verir.
Rədd edilmiş profil və rədd edilmiş klient bir-birinə bənzəyir
İki uğursuzluq oxşar dəstək mövzuları yaradır və fərqli sübut tələb edir. Öz konfiqurasiyasını rədd edən server heç vaxt başlamır, ona görə heç bir klient ona qoşula bilməz. Yaxşı başlayan və bir klienti rədd edən server işləyir və jurnalında səbəb var: sertifikat problemi, klientin qəbul etmədiyi push edilmiş seçim, şifr uyğunsuzluğu.
Silinmiş seçim ikinci hal üçün diaqnoz deyil və ona əl atmaq eyni saatı iki dəfə itirir. Klient jurnalı serverin rəddini göstərirsə, həmin rəddi oxuyun; yerli xəta göstərirsə, yoxlanılacaq fayl klient profilidir. Artıq mövcud olmayan direktivaya əl atmaq hər iki araşdırmanı eyni qədər gecikdirir.
Sətrin heç vaxt cavablandırmadığı uyğunluq sualları
Bu direktiva ilə dolaşan profillər adətən müəyyən platforma haqqında bir hekayə daşıyır və hekayə texniki səbəbdən uzun yaşayır. Mobil və ya masaüstü klient hələ də tam dəstəklənən profilə ehtiyac duyur: etibarlı sertifikat zənciri, hər iki tərəfin qəbul etdiyi data şifri, hər iki tərəfin tətbiq etdiyi idarəetmə kanalı rejimi və klientin buraxılışının rədd etmədiyi direktivalar. Bunlardan heç biri köhnə key-method sətrinin olub-olmaması ilə həll olunmur.
Sıxılma eyni formalı ayrı siyasət məsələsidir. key-method sətrini silmək sıxılma direktivasının yerləşdirmənizdə dəstəklənib-dəstəklənmədiyi və ya qəbul edilib-edilmədiyi barədə heç nə demir və bu iki qərar ayrı-ayrılıqda verilməlidir. Nəyinsə qoşulmasına qədər bir neçə təhlükəsizliklə bağlı parametri birdən silmək işlək profili izahsız profilə çevirən yoldur.
Nəyi və niyə sildiyinizə dair qısa qeyd saxlayın: seçim, onu rədd edən versiya və xətanı göstərən əmr. Profili miras alacaq növbəti şəxs məhz bu üç fakta ehtiyac duyacaq və onları indi yazmaq sonra bərpa etməkdən ucuzdur.