Yıllardır çalışan bir profil birden açılmayı reddediyor ve ileti, kimsenin eklediğini hatırlamadığı bir yönergeyi adlandırıyor: key-method. Bir sonraki arama sonucu uyumluluk için key-method 2 eklemeyi öneriyor, ki bu başka bir dönemin tavsiyesi. Satırı reddeden ayrıştırıcı güncel bir ayrıştırıcı ve böyle bir seçeneği hiç içermiyor. Satırı kaldırmak açılışı düzeltiyor ve iki tarafın oturumu nasıl koruduğu konusunda hiçbir şeyi değiştirmiyor.

Bir profilin içerdiği şey ile protokolün gerçekte yaptığı şey arasındaki bu boşluk buradaki konunun tamamı ve insanların aynı anda yaptığı birkaç başka düzenlemeyi de açıklıyor. Bu düzenlemelerin neden genellikle tek bir demet hâlinde geldiğini de açıklıyor.

Belirti bir el sıkışma hatası değil, bir ayrıştırma hatası

Seçenekler herhangi bir paket gönderilmeden önce okunur. Bilinmeyen bir yönerge içeren profil o aşamada başarısız olur, böylece süreç hiçbir zaman ağa ulaşmaz ve hiçbir zaman el sıkışma hatası üretmez. İfade genellikle seçeneği ve dosyayı belirtir, bu da bunu nedene bağlaması en kolay hatalardan biri yapar. Bunda paket, yol veya güvenlik duvarı yer almaz.

openvpn --config /etc/openvpn/client/office.ovpn --verb 3 --log /tmp/parse.log
grep -n 'Options error' /tmp/parse.log

İleti yönergeyi adlandırıyorsa tanı tamamlanmıştır: dosya bu derlemenin kabul etmediği bir şey içeriyor. İleti bunun yerine bir dosya yolu adlandırıyorsa sorun eksik bir include veya anahtar, ki bu aynı açılış aşamasının başka bir bölümüdür.

Çıkarmamanız gereken sonuç, istemcinin veya sunucunun daha eski bir protokol kipine ihtiyaç duyduğudur. Ayrıştırma hatası, dosyanız ile ikili dosya arasındaki bir sözcük dağarcığı sorunudur ve ikili dosya bu durumda sözcük dağarcığından yalnızca bir sözcük düşürmüştür.

Yönerge ve aktarım biçimi iki farklı şeydir

Eski key-method seçeneği TLS anahtar değişiminin nasıl çerçeveleneceğini seçiyordu ve modern değişim o seçeneğin bir zamanlar talep ettiği çok paketli yöntemdir. Seçenek ortadan kalktı çünkü artık hiçbir şey seçmiyordu; adlandırdığı biçim tek biçim hâline geldi. Bu nedenle satırı kaldırmak oturumu öncekiyle aynı çerçevelemede bırakır. Bir metin düzenlemesi bunu hiçbir yönde değiştiremez.

Bu yüzden “yöntem 2”yi «geri getirmek» için eski bir ikili dosyayı geri getirmek yanlış onarımdır. Eski varsayılanlara sahip daha eski bir ayrıştırıcıdan başka hiçbir şeyi geri getirmez ve ondan sonra gelen düzeltmeleri size kaybettirir. Aynı mantık, bağlantının geri geleceği umuduyla bir sertifika denetimini veya şifre listesini zayıflatmak için de geçerlidir.

Yararlı bir denetim, dosyada sözcüğün bulunup bulunmadığı değil, sürüm ve ayrıştırılmış yapılandırmadır:

openvpn --version | head -n 1
grep -rn 'key-method' /etc/openvpn/ 2>/dev/null

Neyin kaldırılacağı ve hangi dosyadan

Yalnızca çalışan sürecin gerçekten okuduğu dosyayı düzenleyin. Paketlenmiş sistemlerde bu genellikle birimin adlandırdığı istemci veya sunucu dizinindeki profildir, referans için ev dizininizde tuttuğunuz bir kopya değil. Oluşturulan bir profil bir şablondan yeniden kurulabildiğinden, yalnızca dağıtılmış kopyada yapılan bir değişiklik bir sonraki sağlama çalıştırmasından sonra geri döner.

Eski satırı silin ve uç noktayı, sertifikaları, şifre ilkesini ve denetim kanalı ayarlarını olduğu gibi bırakın. Bunlar sürecin ihtiyaç duyduğu desteklenen seçeneklerdir ve ayrıştırma hatasıyla ilgili değildir. Aynı profilde tanımadığınız başka yönergeler varsa, süreç başlayana kadar bir grubunu silmek yerine her birini çalıştırdığınız sürümle karşılaştırın.

Sonra amaçlanan örneği başlatın ve açılış çıktısını okuyun. Dinleyicinin bulunduğu temiz bir açılış bu aşamanın bittiğinin onayıdır; sonrasındaki istemci testi başka bir soruyu yanıtlar.

Reddedilen bir profil ile reddedilen bir istemci birbirine benzer

İki hata benzer destek başlıkları üretir ve farklı kanıt gerektirir. Kendi yapılandırmasını reddeden bir sunucu hiç başlamaz, bu yüzden hiçbir istemci ona bağlanamaz. İyi başlayıp bir istemciyi reddeden bir sunucu çalışıyordur ve günlüğü nedeni içerir: bir sertifika sorunu, istemcinin kabul etmediği itilen bir seçenek, bir şifre uyuşmazlığı.

Kaldırılan seçenek ikinci durum için bir tanı değildir ve ona uzanmak aynı saati iki kez harcar. İstemci günlüğü sunucunun reddini gösteriyorsa o reddi okuyun; yerel bir hata gösteriyorsa incelenecek dosya istemci profilidir. Artık var olmayan bir yönergeye uzanmak her iki soruşturmayı da aynı ölçüde geciktirir.

Satırın hiç yanıtlamadığı uyumluluk soruları

Bu yönergeyle dolaşan profiller genellikle belirli bir platform hakkında bir hikâye taşır ve hikâye teknik nedenden daha uzun yaşar. Mobil veya masaüstü istemci hâlâ tam olarak desteklenen bir profile ihtiyaç duyar: güvenilir bir sertifika zinciri, iki ucun da kabul ettiği bir veri şifresi, iki ucun da uyguladığı bir denetim kanalı kipi ve istemcinin derlemesinin reddetmediği yönergeler. Bunlardan hiçbiri eski key-method satırının varlığı veya yokluğu ile belirlenmez.

Sıkıştırma aynı biçime sahip ayrı bir ilke sorusudur. Bir key-method satırını kaldırmak, sıkıştırma yönergesinin dağıtımınızda desteklenip desteklenmediği veya kabul edilebilir olup olmadığı hakkında hiçbir şey söylemez ve iki karar birbirinden bağımsız olarak verilmelidir. Bir şey bağlanana kadar güvenlikle ilgili birkaç ayarı birden silmek, çalışan bir profilin açıklanamayan bir profile dönüşme yoludur.

Neyi neden kaldırdığınıza dair kısa bir kayıt tutun: seçenek, onu reddeden sürüm ve hatayı gösteren komut. Profili devralacak bir sonraki kişi tam olarak bu üç olguya ihtiyaç duyacaktır ve bunları şimdi yazmak sonra yeniden kurmaktan daha ucuzdur.

İlgili makaleler