Saatlik OpenVPN kopması: yeniden müzakere mi gerçek yeniden bağlanma mı?
Şüpheli derecede yuvarlak bir aralıkta yaşanan kopma genellikle anahtar yenilemesidir, ölü bir bağlantı değil. Bir şeyi devre dışı bırakmadan önce etkin zamanlayıcıyı ve günlük satırını okuyun.
Altmış dakika, ya otuz, ya yüz yirmi: yuvarlak bir aralığa denk gelen kopma neredeyse hiçbir zaman ağ değildir. OpenVPN veri kanalını koruyan anahtar malzemesini bir zamanlayıcıyla yeniler ve varsaydığınızdan kısa bir zamanlayıcı tam olarak sürekli başarısız olan bir bağlantı gibi görünür. Kullanıcılar kopmuş bir bağlantı bildirirken günlük başarılı bir anahtar değişimi bildirir. Aşağıdaki kılavuz bu yenilemeyi gerçek bir yeniden başlatmadan ayırır, gerçekten yürürlükte olan değeri okur ve yalnızca maliyet masaya konduktan sonra değiştirir.
Adımları sırayla izleyin, çünkü ilki sayfanın geri kalanının sizinle ilgili olup olmadığına karar verir. İleri atlarsanız, onunla hiç ilgisi olmayan bir arıza için bir akşamı zamanlayıcı ayarlayarak geçirirsiniz.
Yumuşak sıfırlamayı yeniden başlatmadan ayırın
Günlük satırı tüm tanıdır. Yeniden müzakere yumuşak bir sıfırlama ve ardından aynı tünel içinde yeni bir anahtar değişimi yazar: arayüz adresini korur, rotalar yeniden eklenmez ve kurulmuş TCP oturumları genellikle bir duraklamayla hayatta kalır. Gerçek bir yeniden başlatma oturumu yırtar, arayüzü yeniden kurar, belki başka bir istemci adresi verir ve her uzun ömürlü bağlantıyı öldürür. İki olay da olağandır; bunlardan yalnızca biri kopan bir aramayı açıklar.
journalctl -u openvpn-client@office -b --no-pager | grep -nE 'soft reset|Connection reset|reneg|TLS Error'
openvpn --version | head -n 1
Sürüm satırı önemlidir çünkü günlük ifadeleri sürümler arasında değişir ve 2.3'ten hatırladığınız bir mesaj 2.6'da farklı ifade edilmiş olabilir. Başkasının forum alıntısı yerine kendi günlüğünüzü okuyun. Yardım isterken tam satırı alıntılayın, çünkü yeniden ifade etmek olayı tanımlayan ayrıntıyı kaybeder. Arayüz adresi olay boyunca değişmediyse ve oturum listesi hayatta kaldıysa bir yenileme görüyorsunuz ve kalan bölümler geçerlidir.
Yürürlükteki zamanlayıcıyı okuyun, dosyanızı değil
reneg-sec veri kanalının yeniden müzakereleri arasındaki saniye sayısıdır ve varsayılan değeri 3600'dür. Her taraf kendi değerini taşır ve ikisinden küçük olanı yenilemeyi gerçekten tetikler. Bu tek kural raporların çoğunu açıklar: büyük bir sayı belirleyen istemci profili, sunucu varsayılanı koruduğu sürece yine de saatte bir sıfırlanır.
grep -Rn --include='*.conf' -E 'reneg-sec|reneg-bytes' /etc/openvpn
# server side, including included files
grep -Rn -E '^reneg-sec' /etc/openvpn/server/
İstemci dosyasından sonuç çıkarmadan önce sunucunun yürürlükteki yapılandırmasını da, ittiği her şey dahil, okuyun. Ardından ayrıntı düzeyini yükseltin ve bir aralığı baştan sona izleyin: seviye 3 yeniden müzakere satırlarını zaten gösterir ve zaman damgaları olayın her 3600 saniyede mi yoksa etkinliği mi izlediğini söyler.
Gerçekten itildiği yerde değiştirin
Dolaşan çare istemci profilindeki tek bir satırdır ve zamanın yaklaşık yarısında yanlış yerdir. Tarafın düşük değeri kazandığı için zamanlayıcıyı sıfıra ayarlayan bir istemci bile değişmemiş bir sunucu tarafından yeniden müzakere edilebilir.
# on both ends, or on the side that owns the pushed configuration
reneg-sec 0
Profiller merkezi olarak oluşturuluyorsa, dağıtılmış kopyayı değil şablonu düzenleyin, aksi halde bir sonraki sağlama çalışması az önce kaldırdığınız değeri geri getirir. Bir değil iki aralığı gözlemleyerek doğrulayın: tek bir sessiz saat 7200'e ayarlanmış bir zamanlayıcıyla da tutarlıdır.
Karma bir dağıtımda ne olacağına da karar verin. Değişikliği önce istemcilere yayarsanız, sunucunun yenilemeyi hâlâ tetiklediği bir pencere kalır; bu zararsızdır ama onay için günlükleri izliyorsanız kafa karıştırıcıdır. Önce küçük değere sahip tarafı değiştirin ve belirti beklediğiniz noktada kaybolur.
Yeniden müzakereyi kapatarak nelerden vazgeçersiniz
Düzenli yeniden müzakere, tek bir veri kanalı anahtar kümesinin trafiği ne kadar süre koruduğunu sınırlar. Zamanlayıcıyı kapatmak tüneli bozmaz ve ev yönlendiricisinde veya küçük bir ofis geçidinde pratik maruziyet ölçülüdür. Yine de bir takastır ve takası yapmadan önce dile getirmeye değer. Değişen, bir anahtar kümesinin bir oturumu ne kadar süre koruduğudur; tünelin hiç çalışıp çalışmadığı değil.
Kapatmak için makul durum, devam ettirilemeyen bir şeyi bozan bir sıfırlamadır: düşen bir arama, yeniden kurulması gereken bir uzak masaüstü oturumu, baştan başlayan bir yedekleme. Duraklama kullanıcılar için görünmezse varsayılanı bırakmak hiçbir şeye mal olmaz ve size verilen anahtar rotasyonunu korur.
Kalıp izin verdiğinde nedeni düzeltmeyi tercih edin. İlk el sıkışma başarılı olduğu halde yarı yolda başarısız olan bir yenileme zamanlayıcıya değil yola işaret eder: daha büyük kontrol kanalı alışverişinde paket boyutu sorunu, akışı düşüren durum bilgili bir güvenlik duvarı veya yalnızca ilk denemede başarılı olan bir öneri arayın. Her biri az önce okuduğunuz aynı günlükte iz bırakır. Zamanlayıcıyı kapatmak o kanıtı gizler.
Aralık başka bir yeri gösterdiğinde
Yapılandırmadaki iki komşu benzer belirtiler ve farklı düzeltmeler üretir. Belirlenen süre boyunca hiçbir şey gelmezse ping-restart tüneli yeniden başlatır, ping-exit ise istemciyi tamamen düşürür. Günlükte hiçbir yerde yeniden müzakere olmadan yaşanan boşta kopma bunlara veya UDP eşlemesini kendi takvimine göre sona erdiren bir NAT cihazına aittir.
Tüketici yönlendiricileri, mobil erişim noktaları ve operatör düzeyi NAT, boştaki UDP oturumlarını kimseye söylemeden sona erdirir. Bu arıza saati değil boşta kalmayı izler ve işaret budur: on sessiz dakikadan sonra düşen ve bir saat istikrarlı trafiğe dayanan bir oturum yeniden müzakere etmiyordur.
Dördüncüyü değiştirmeden önce üç şey yazın: ölçtüğünüz aralık, bulduğunuz yürürlükteki değer ve bunu gösteren komut. Zamanlayıcı hareket ettiğinde aralık da hareket ediyorsa mekanizma tanımlanmıştır ve düzeltme yukarıdaki takas hakkında bir karardır. Hareket etmiyorsa ayarı geri koyun ve keepalive, NAT durumu ve paket kaybını izlemeye devam edin.