Ubuntu güncellemesi L2TP/IPsec'i bozdu mu? IKEv1 tekliflerini karşılaştırın
Profil ve parola değişmedi ama 1. aşama artık başarısız oluyor. İstemcinin kabul ettiği teklifler kaydı ve sunucu hâlâ her zamanki şeyi sunuyor.
Bağlantı perşembe çalışıyordu, güncelleme cuma günü çalıştı ve pazartesi istemci “connecting” durumunda dönüp vazgeçiyor. Aynı dizüstü, aynı sunucu, aynı hesap, aynı önceden paylaşılan anahtar. Profilde hiçbir şey düzenlenmedi, bu yüzden bariz şüpheliler, parola ve güvenlik duvarı, zamanınızı boşa harcıyor.
Değişen şey, makinenizin sunmaya istekli olduğu dönüşümlerin listesi. Ubuntu'da kullanılan iki IPsec yığını, strongSwan ve Libreswan, artık güvenli saymadıkları algoritmaları ayıklıyor ve önlerinde duran NetworkManager eklentisinin farklı bir programa göre hareket eden kendi listesi var. 3DES, SHA1 ve 1024 bitlik Diffie-Hellman grubuna sabitlenmiş bir sunucu, sonunda kabul ettiği hiçbir şeyi duymayabilir.
Güncelleme gerçekte neyi değiştirdi
IKEv1 teklifini iki katman besler. Daemon derlenmiş bir varsayılan teklif kümesi sunar ve L2TP eklentisi ya ona güvenir ya da kendi listesini verir. NetworkManager-l2tp 1.2.16 öncesinde eklenti ona güveniyordu, bu yüzden teklifiniz kurulu daemonun makul saydığı şeydi. 1.2.16'dan itibaren eklenti Windows ve Apple istemcileri örnek alınarak hazırlanmış belgelenmiş bir liste gönderiyor ve bu liste eski varsayılandan daha geniş ama artık kuyruğun önündeki her eski bileşimi içermiyor.
Bu ayrım insanların kafa karıştırıcı bulduğu bir arıza biçimini açıklıyor: aynı Ubuntu sürümündeki iki makine farklı davranabilir çünkü birinde dağıtım paketi, diğerinde backport var ve hata raporunda ikisindeki daemon sürümü aynı görünüyor. Güncellemenin ilgili hiçbir şeyi değiştirmediği sonucuna varmadan önce eklenti sürümünü denetleyin, yalnızca daemon sürümünü değil.
Aynı alanda daha küçük bir tuzak var. İki daemon eliptik eğri Diffie-Hellman gruplarını farklı yazıyor, biri ecp384 diğeri ecp_384 yazıyor. Yanlış yazımı Advanced iletişim penceresine yapıştırın ve daemon ayarı ayrıştırılamaz diye reddeder, bu da günlükte yapılandırma yazım hatası olarak değil müzakere sorunu olarak görünür.
Bir şeyi değiştirmeden önce arızayı okuyun
Hangi arka ucu çalıştırdığınızla başlayın, çünkü yanıt hem sözdizimini hem de günlüğün yerini belirler.
ipsec --version
nmcli connection show "Your VPN name" | grep -i ipsec
Sonra takasın kendisini okuyun. strongSwan'da daemon güncel sürümde journal'a, daha eskisinde /var/log/syslog dosyasına yazar ve ilginç olan son satır değil, gönderdiği tekliftir. Eşleşen teklif olmadığına dair ifade arıyorsunuz, bu bir algoritma sorunudur; anahtara veya hesaba işaret eden bir kimlik doğrulama hatası; ya da erişilebilirliğe işaret eden sıradan bir zaman aşımı.
Bu üç sonuç çok sık olarak tek bir belirti gibi ele alınıyor. Boş daemon günlüğüyle bir zaman aşımı, paketlerin gelmediği anlamına gelir. Teklifin reddedilmesi, geldikleri ve reddedildikleri anlamına gelir. Günlüğünüz sessizse, bir deneme için eklentinin hata ayıklama düzeyini yükseltin ve sonra düşürün, çünkü ayrıntılı çıktı journal'ı hızla doldurur.
1. aşama ve 2. aşama ayrı bahislerdir
IKEv1 iki kez pazarlık eder. Ana mod, IKE güvenlik ilişkisini bir şifreleme algoritması, bir bütünlük algoritması, bir Diffie-Hellman grubu ve bir kimlik doğrulama yönteminden kurar. Hızlı mod sonra L2TP taşıyacak ESP ilişkisini kurar. Sunucu birinciyi kabul edip ikinciyi reddetmekte özgürdür, bu yüzden yarı doğru bir profil beklediğinizden daha geç başarısız olur ve başka bir hata gibi görünür.
Phase 1: 3des-sha1-modp1024!
Phase 2: 3des-sha1!
Ünlem işareti strongSwan sözdiziminde katı bir girdi anlamına gelir: yalnızca bu tek bileşimi sun, başka hiçbir şeyi değil. O olmadan girdi bir yedek listeye katılır, bu karşı taraf modern olduğunda iyidir ve tek bir katı kodlanmış ilkesi olan bir cihaz olduğunda zararlıdır. Yukarıdaki çifti biçimin bir örneği olarak görün, bugün kurduğunuz herhangi bir şey için öneri olarak değil.
Bir alanı değiştirin, sonra testi tekrarlayın
Güncel bir eklentide en hızlı ilk test, iki teklif alanını tamamen temizleyip yeniden bağlanmaktır, çünkü birlikte gelen varsayılan liste olağan Windows ve Apple bileşimlerini zaten içerir. Daha eski bir eklentide bunları temizlemek denetimi, sunucunuzun ısrar ettiği algoritmayı belki bırakmış olan daemona geri verir ve arıza kötüleşir.
Temizlemek yardımcı olmazsa sunucunuzun belgelediği katı çifti tek seferde bir aşama olarak ayarlayın. 1. aşamayı değiştirin, yeniden bağlanın ve 2. aşamaya dokunmadan önce günlüğü okuyun. Bir bileşim sonunda çalıştığında, onu sunucu modelinin ve eklenti sürümünün yanına yazın, çünkü varsayılanlar yine kayacak ve o not bir sonraki güncellemeyi beş dakikalık bir denetime dönüştürür.