OpenVPN sorunu - TLS anahtar anlaşması 60 saniye içinde gerçekleşemedi


14

Windows 2012 sunucusunda bir OpenVPN (sürüm 2.3.10) sunucusu yapılandırıyorum ancak çalışmasını sağlayamıyorum.

Sunucu bir yönlendiricinin arkasında ve 1194 bağlantı noktasını açtım ve bu bağlantı noktasındaki trafiği sunucuya iletmek için bir kural oluşturdum.

Bir istemciden bağlanmaya çalıştığımda sunucuda gördüğüm günlük:

Mon Mar 21 11:11:47 2016 XX.XX.XX.XX:57804 TLS: Initial packet from [AF_INET]XX.XX.XX.XX:57804, sid=fdf7a7ac 0264c7f3
Mon Mar 21 11:12:38 2016 XX.XX.XX.XX:55938 TLS: Initial packet from [AF_INET]XX.XX.XX.XX:55938, sid=1f242a3f e454a525
Mon Mar 21 11:12:48 2016 XX.XX.XX.XX:57804 TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
Mon Mar 21 11:12:48 2016 XX.XX.XX.XX:57804 TLS Error: TLS handshake failed
Mon Mar 21 11:12:48 2016 XX.XX.XX.XX:57804 SIGUSR1[soft,tls-error] received, client-instance restarting

Burada XX.XX.XX.XX istemcinin ipidir. Bu nedenle, istemcinin en azından sunucuya ulaşabildiğini anlıyorum, bu nedenle yönlendirme veya güvenlik duvarı sorunları yok.

Burada sağlanan açıklamayı izledim Kolay Windows Rehberi Herhangi bir fikir?


1
İki lotun XX.XX.XX.XXaynı adresi temsil ettiği varsayılırsa (lütfen bu tür şeyleri şaşırtmamayı düşünün ), kaynak port numaralarındaki değişiklikle ilgileniyorum (57804, 55938). Bu bana güvenilmez bir NAT olduğunu gösteriyor, bu da çoğunlukla UDP için geçerli. UDP veya TCP aktarımı mı kullanıyorsunuz?
16:35, MadHatter

Sunucu konsolunda bu mesajı görmek vermek Ben en azından istemci oraya anlayabiliyorum, bu yüzden NAT sorun olmadığını varsayalım. Burada yanlış mıyım?
vmasanas

1
Tüm NAT eşit değildir. Bazılarının çok kısa ömürlü durum tablosu girişleri vardır, özellikle UDP için ve OpenVPN kaynak portundaki değişikliklere iyi gelmez. Lütfen sorduğum soruyu cevaplayın ve uygunsa önerdiğim değişikliği deneyin.
MadHatter

Burada deneyimli değilim, bu yüzden UDP veya TCP kullanıp kullanmadığımı nasıl kontrol edeceğimi söyleyebilir misiniz?
vmasanas

Elbetteki denemek olabilir man openvpnve kontroller protokolü o şey aramak. Testi yapmaya karar verirseniz, hem istemci hem de sunucuda değiştirmeyi unutmayın.
16:16, MadHatter

Yanıtlar:


21

İlginç olan, bağlantı noktası numarasının akış ortası olarak nasıl değiştiği:

Pzt 21 Mar 11:11:47 2016 XX.XX.XX.XX: 57804 TLS: [AF_INET] XX.XX.XX.XX: 57804, sid = fdf7a7ac 0264c7f3'ten ilk paket

Pzt 21 Mar 11:12:38 2016 XX.XX.XX.XX: 55938 TLS: [AF_INET] XX.XX.XX.XX: 55938, sid = 1f242a3f e454a525'den ilk paket

Bu, istemci ve sunucu arasında bir yerde, istemcinin yerleşik akışına uyguladığı kaynak bağlantı noktası numarasını değiştirerek sunucunun bir sürekli iletişim yerine iki kısa ömürlü iletişimin devam ettiğini düşünün.

Bu tür cihazlar genellikle sadece UDP ile bunu yapar, bu yüzden UDP kullandığınızı onaylamanızı ve bunun yerine TCP'yi denemenizi tavsiye ettim. Bunu yaptınız ve sorunu çözdüğünü buldunuz. Bir sonraki adım, hatalı çalışan NAT cihazını tanımlamak, bir kulüp çekiçiyle vurmak ve tüm UDP iletişiminin geçici olduğunu varsaymanın en büyük hatasını yapmayan bir cihazla değiştirmek; ancak geçici bir çözüm olarak TCP'ye geçmekten memnun olduğunuzu belirttiniz ve bu nedenle sorun sonuçlandı.


2
Kartal gözünüz için +1!
Pırlanta

@bangal neden, teşekkür ederim! Şeytanın çoğu ayrıntıda, bu işte.
16'da MadHatter

Evet, biliyorum, ama özledim ve sadece işaret ettikten sonra gördüm. Bir güvenlik duvarı sorunu olduğundan emindim.
Diamond

Evet, öyleydi, haklıydın. Ve kendinizi dövmeyin, bir dahaki sefere daha sert görüneceksiniz!
MadHatter

TCP yerine UDP kullanmanın herhangi bir faydası var mı? TCP benim için çalışıyor çünkü herhangi bir olumsuz tarafı yok.
vmasanas

3

Bu, Openvpn kurulumundaki en yaygın hatalardan biridir ve bunun için bir SSS girişi vardır. Bunu burada alıntılayacağım:

TLS Hatası: TLS anahtar anlaşması 60 saniye içinde gerçekleşemedi (ağ bağlantınızı kontrol edin)

OpenVPN kurulumundaki en yaygın sorunlardan biri, bağlantının her iki tarafındaki iki OpenVPN artalanının birbiriyle TCP veya UDP bağlantısı kuramamasıdır.

Bu neredeyse aşağıdakilerin bir sonucudur:

  • Sunucunun ağındaki bir çevre güvenlik duvarı gelen OpenVPN paketlerini filtreliyor (varsayılan olarak OpenVPN UDP veya TCP bağlantı noktası numarası 1194'ü kullanır).
  • OpenVPN sunucu makinesinde çalışan bir yazılım güvenlik duvarı, 1194 numaralı bağlantı noktasındaki gelen bağlantıları filtreliyor. Aksi belirtilmedikçe, birçok işletim sisteminin varsayılan olarak gelen bağlantıları engelleyeceğini unutmayın.
  • Sunucunun ağındaki bir NAT ağ geçidinde, TCP / UDP 1194 için OpenVPN sunucu makinesinin dahili adresine bir bağlantı noktası yönlendirme kuralı yoktur.
  • OpenVPN istemci yapılandırması, yapılandırma dosyasında doğru sunucu adresine sahip değil. İstemci yapılandırma dosyasındaki uzak yönerge, sunucunun kendisini veya sunucu ağının ağ geçidinin genel IP adresini göstermelidir.
  • Başka bir olası neden, windows güvenlik duvarının openvpn.exe ikili dosyası için erişimi engellemesidir. OpenVPN'in çalışması için beyaz listeye eklemeniz ("İstisnalar" listesine eklemeniz) gerekebilir.

Bunlardan herhangi birinin sizin durumunuzda da aynı soruna neden olması muhtemeldir. Çözmek için listeyi tek tek gözden geçirin.

Ref: TLS Hatası: TLS anahtar anlaşması 60 saniye içinde gerçekleştirilemedi (ağ bağlantınızı kontrol edin)


Bu noktalardan geçtim ama bir şey eksik olup olmadığımdan emin değilim: 1. güvenlik duvarlarının hem istemci hem de sunucuda kapalı olduğu an için, 2. aynı, 3. yönlendiricinin sunucuya bir yönlendirme kuralı var ve görüyorum sunucu konsolunda görünen trafik, 4. istemci doğru ip adresi, 5. söyleyebileceğim hiçbir güvenlik duvarı vardır.
vmasanas

Dürüst olmak gerekirse şu anda başka bir şey düşünemiyorum. Emin olmak için, Windows sunucusundaki ağ yapılandırması nasıl? Şans eseri birden fazla ağ geçidi var mı? Yönlendiriciyi gösteren varsayılan ağ geçidi mi? Cevabınız evet ise, test edebileceğiniz geri kalanı MadHatter'in önerdiği gibi tcp ile test etmektir.
Elmas

Birisi yardım etmek istiyorsa, TLS el sıkışma hatası sorusunu buraya gönderdim: serverfault.com/questions/867599/…
Ola Tuvesson

Dikkat edilmesi gereken bir diğer şey , iki ana bilgisayar arasındaki yüksek gecikme süresidir . Sadece bu konuda başımı kaşıyordum ve bazı tanrısal nedenlerden dolayı 6000ms + bir yönde (istemci-sunucu) ping turları yapıyordum, ama başka bir şekilde değil. Bu, kilit pazarlığın 60'lardan fazla sürmesine neden oluyordu. ISS'm tarafından sağlanan yönlendiriciyi yeniden başlatmak sorunu çözdü. Muhtemelen nadir bir durum, ama umarım bu birisine yardım eder.
s.co.tt

3

TLS gibi önemli müzakere zaman aşımlarını alıyordum. Ama benim durumumda, uzak bağlantının yerel bir IP adresi olduğunu fark ettim.

PfSense güvenlik duvarımızdaki VPN, WAN arayüzü yerine LAN arayüzüne yanlışlıkla yerleştirilmişti ve bu nedenle dışa aktarılan yapılandırma, güvenlik duvarının LAN IP adresine bağlanmaya çalışacak şekilde ayarlanmıştı; farklı bir LAN.

Bence bu temel çıkarımlar:

  • Önemli bir müzakere zaman aşımı süresi, herhangi bir şeye bağlanmayı bile başardığınız anlamına gelmez.

    Bu aşamada, aslında doğru yere bağlandığınızı kontrol etmeye değer olabilir ve bağlantıyı vb. Engelleyen güvenlik duvarı kuralları yoktur. Özellikle yapılandırmanız otomatik olarak oluşturulduysa.

    Bir oturum açma istemi almanın bağlı olduğunuz anlamına gelmediğini unutmayın , çünkü OpenVPN bağlanmaya çalışmadan önce kimlik bilgilerinizi ister.

  • VPN sunucunuzun doğru arayüzü dinlediğinden emin olun.

    (Tabii ki, bu güvenlik duvarı kuralları, yanlış bağlantı noktası numarası koymak, TCP ve UDP'yi karıştırmak vb. Gibi sunucu tarafı yanlış yapılandırmalarından biridir.)


1

Aynı hatayla karşılaştım ve hiçbir tavsiye yardımcı olmadı, her şey iyi görünüyordu: IP'ler, portlar, güvenlik duvarı, her şey. 2 saat boyunca çıldırdı.

Çözüm, istemci yapılandırmasında protokolü UDP'den TCP'ye değiştirmekti (görünüşe göre UDP'yi uzun süre önce bilerek devre dışı bıraktım).

Umarım bu birine yardımcı olur :)

LE: Bu sorunumu çözdü, ancak aşağıdaki yorumlara göre en iyi yaklaşım değil. TCP yerine UDP kullanmalısınız. İstemci ve sunucu yapılandırmaları arasında farklı ayarlara sahip olduğum için bana yardımcı oldu.


Her iki TCP yığınının birbirleriyle yarışmaya çalıştığı için TCP'nin kapsüllenmesinin TCP'nin çok kötü performans sorunlarına neden olabileceğini bilmelisiniz.
EEAA

Gerçekten de bok gibi çalışır. Ne dediğini anlamama rağmen performans çok düşük. O zaman UDP'ye geçmeli miyim?
Bosch

2
Evet. UDP, VPN uygulamaları için iyi bir nedenden dolayı standarttır. TCP'nin hata düzeltme işlevi vardır - kayıp paketleri vb. Yeniden iletme yeteneği. TCP'yi TCP'nin içine yerleştirirseniz ve paket kaybına maruz kalırsanız, hem TCP yığınları ("iç" trafik hem de şifreli OpenVPN trafiği) kayıp paketleri düzeltmeye çalışın. TCP'yi UDP'ye kapsüllediğinizde bu bir sorun oluşturmaz - yalnızca iç trafik yeniden denenir.
EEAA

İpucu ve açıklamalar için teşekkürler. UDP'ye geçtim ve bağlantılara dikkat ettim. Ayrıca, yığınlar hakkında biraz daha okumam gerekiyor ...
bosch

TCP üzerinden TCP'nin neden kötü bir fikir olduğunu açıklayan yararlı bir sayfa: sites.inka.de/bigred/devel/tcp-tcp.html
mwfearnley

1

OpenVPN sunucusuna başarılı bir şekilde bağlanmadan veya hatta herhangi bir şeye başarılı bir şekilde bağlanmadan TLS anahtar anlaşması hatası alabileceğinizi unutmayın !

Hiçbir şey dinlemeyen bir bağlantı noktasında localhost'a bağlanmak için bir VPN yapılandırmasını değiştirdim:

OpenVPN 2.4.6 x86_64-w64-mingw32 [SSL (OpenSSL)] [LZO] [LZ4] [PKCS11] [AEAD] 26 Nis 2018 tarihinde oluşturuldu
Windows sürüm 6.2 (Windows 8 veya üstü) 64bit
kütüphane versiyonları: OpenSSL 1.1.0h 27 Mar 2018, LZO 2.10
TCP / UDP: Son kullanılan uzak adresi koruma: [AF_INET] 127.0.0.1:12345
Yerel UDP bağlantısı (bağlı): [AF_INET] [undef]: 0
UDP bağlantı uzaktan kumandası: [AF_INET] 127.0.0.1:12345 
TLS Hatası: TLS anahtar anlaşması 60 saniye içinde gerçekleştirilemedi (ağ bağlantınızı kontrol edin)
TLS Hatası: TLS anlaşması başarısız oldu
SIGUSR1 [soft, tls-error] alındı, işlem yeniden başlatılıyor
...

Hata sizi bir VPN sunucusuyla konuştuğunuzun yanlış duygusuna itebilir.

İlk önce kimlik bilgileri bile istenebilir, ancak bilgisayarınızın dışında hiçbir şey gerçekten bunları istemez.


1

Daha önce bahsedilen çözümlerin hiçbiri işe yaramadı. Benim durumumda, istemci günlüğü aynı hatayı gösterse de TLS Error: TLS key negotiation failed to occur within 60 seconds, sunucu günlükleri gösterdi VERIFY ERROR: depth=0, error=CRL has expired.

Sunucuda, aşağıdaki adımlar bağlantı sorununu çözdü:

# cd <easyrsa folder>
# ./easyrsa gen-crl
above command generates new crl.pem file (in my case in pki folder)
using chown/chmod make sure 'pki/crl.pem' is readable by openvpn server (for example: chmod 640 pki/crl.pem)
# systemctl restart openvpn

0

Bu hata, OpenVPN'in genel IP'ye sahip bir sunucuya kurulduğu AWS'de, ancak özel bir alt ağda, yani bir internet ağ geçidine giden yolu olmayan bir alt ağda kurulduğu bir örnekte karşılaştım.

OpenVPN'i genel bir alt ağ içindeki bir sunucuya dağıttıktan sonra, hepsi güzel çalıştı :)


AWS'deki genel / özel alt ağlarda: https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html


0

Sorunla da karşılaştım TLS key negotiation failed to occur within 60 seconds.

Resmi öneriden, Diamant yazısı olarak, ağ bağlantısında bir sorun olmalı. Ancak, ne güvenlik duvarı ne de NAT soruna neden olmaz.

Benim durumumda, önce bağlantıyı kontrol ettim nc -uvz xxx.xxx.xxx.xxx 1194. Bağlantı tamam.

Ayrıca, aynı LAN içindeki diğer birkaç vpn istemcisi iyi çalışır.

Bir yerden udp bağlantısının yanıtta veya bağlantı noktasında bazı sorunları olduğunu fark ettim.

Bu yüzden çalışan vpn istemcilerini en büyük ip'ten asılı istemciye, örneğin "10.8.0.100" den "10.8.0.50" ye durduruyorum.

Sonra durdurulan vpn istemcilerini tersine başlatın.

Bang! Tüm vpn istemcileri düzgün çalışır.

Sonuç olarak, TLS key negotiation failed to occur within 60 secondsbir LAN içinde birden çok vpn istemcisinin yanlış bir sırada başlaması sorununa yol açar .


1
Bunun orijinal sorudaki problemle nasıl ilişkili olduğu belirsizdir.
Ward - Monica'yı eski

0

Olası nedenlerden biri, istemcinin desteklediği TLS'den daha yeni bir TLS sürümü gerektirmesidir. yani 1.2'ye karşı 1.0.

Denenecek en açık şey OpenVPN istemcisini güncellemek veya sunucu tarafını TLS 1.0'ı kabul edecek şekilde değiştirmek.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.