TCP Keepalive ve güvenlik duvarı boş oturumları öldürüyor


10

Bir müşteri sitesinde, ağ ekibi istemci ile sunucu arasına bir güvenlik duvarı ekledi. Bu, yaklaşık 40 dakikalık boşta kalma süresinden sonra boşta kalan bağlantıların kesilmesine neden oluyor. Ağ insanları, güvenlik duvarının boşta bağlantı zaman aşımı olmadığını söylüyor, ancak gerçekte boşta olan bağlantıların kopması.

Bu sorunu aşmak için, önce sunucuyu (bir Linux makinesi) TCP tutmaları açık olarak tcp_keepalive_time = 300, tcp_keepalive_intvl = 300 ve tcp_keepalive_probes = 30000 ile yapılandırdık. Bu işe yarar ve bağlantılar günlerce veya daha uzun süre kullanılabilir kalır. Bununla birlikte, sunucunun ölü istemcileri algılamasını ve bağlantıyı öldürmesini de istiyoruz, bu yüzden ayarları zaman = 300, intvl = 180, problar = 10 olarak değiştirdik. (5 dakika) ve istemci bir ACK ile yanıt verir ve bu da güvenlik duvarının bunu boş bir bağlantı olarak görmesini ve onu öldürmesini önler. İstemci ölmüş olsaydı, 10 probdan sonra sunucu bağlantıyı keserdi. Şaşırtıcı şekilde, boş ama canlı bağlantılar yaklaşık 40 dakika sonra eskisi gibi öldürülür.

İstemci tarafında çalışan Wireshark, sunucuda keepalives etkinleştirilmiş olsa bile, sunucu ve istemci arasında hiçbir kalıcılık göstermez.

Burada ne olabilir?

Sunucudaki keepalive ayarları zaman = 300, intvl = 180, problar = 10 ise, istemci canlı ama boşta kalırsa, sunucunun 300 saniyede bir keepalive probları göndereceğini ve bağlantıyı yalnız bırakacağını ve istemci öldü, bağlantıyı öldürmeden önce her 300 saniyede bir, daha sonra her 180 saniyede 9 prob daha gönderecekti. Haklı mıyım?

Bir olasılık, güvenlik duvarının bir şekilde sunucudan tutucu probları durdurması ve bunları istemciye geçirmemesi ve bir prob alması, bağlantının aktif olduğunu düşündürüyor olmasıdır. Bu bir güvenlik duvarı için ortak davranış mıdır? Ne tür bir güvenlik duvarının dahil olduğunu bilmiyoruz.

Sunucu bir Teradata düğümüdür ve bağlantı bir Teradata istemci yardımcı programından veritabanı sunucusuna, sunucu tarafında 1025 numaralı bağlantı noktasına yapılır, ancak SSH bağlantısıyla aynı sorunu gördük, bu yüzden tüm TCP bağlantılarını etkilediğini düşünüyoruz.


2
İstemcilerin sunucuya bağlanmak için kullandıkları bağlantı noktalarının veya protokollerin bir açıklaması eksik. SSH mı?
ewwhite

Güvenlik duvarını tanımlamak da yardımcı olabilir.
Skaperen

3
Netstat --timers -tn komutunu çalıştırarak sokette keepalive'ın etkinleştirilip etkinleştirilmediğini kontrol edin ve "keepalive" anahtar sözcüğünü kontrol edin (çünkü bu, soket üzerindeki yazılım tarafından etkinleştirilmelidir). Daha fazla bilgi için burayı tıklayın: tldp.org/HOWTO/TCP-Keepalive-HOWTO/index.html Zamanlayıcı değerlerini de kontrol edin, ilk değer bir sonraki saklayıcı pakete kadar saniye, üçüncüsü ise bekleyen bekletici paketlerin sayısıdır. cevap (doğru hatırlıyorsam)
Victor Jerlin 27:30 '


2
Ağ çalışanlarınız büyük olasılıkla yanlış. Durum bilgisi olan bir güvenlik duvarı kullanıyorlarsa, (neredeyse kesinlikle), yapılan her bağlantı için bir giriş gerekir. Boşta kalma zaman aşımı olmadan, güvenlik duvarındaki bellek sızar ve güvenlik duvarı sonunda biter ve kilitlenir. Kesinlikle bir yerde boş bir zaman aşımı var ...
James Shewey

Yanıtlar:


1

Durum bilgisi olan bir güvenlik duvarı paketleri kontrol eder ve ayrıca bağlantının canlı olup olmadığını da onaylar. Güvenlik duvarının, bilgisayarlarda olduğu gibi ayarların ince ayarlanması gerektiğine inanıyorum. Varsayılan olarak birçok güvenlik duvarı boşta kalan bağlantıları yalnızca 60 dakika açık tutar ancak bu süre satıcıya bağlı olarak değişebilir.

Bazı satıcılar sizinki gibi özel durumların üstesinden gelmek için TCP Durdurma, TCP Durum Baypas ve Ölü Bağlantı Algılama gibi özelliklere sahip olacaktır.

Diğer seçenek, güvenlik duvarını, her şeyin tutarlı olduğundan emin olmak için sunuculardaki parametrelerle yapılandırmaktır.

Cisco güvenlik duvarında, yapılandırmak için aşağıdaki komutunuz vardır.

hostname (config) # zaman aşımı özellik süresi

timeout conn ss: dd: ss — Bir bağlantının kapanmasından sonraki 0: 5: 0 ile 1193: 0: 0 arasındaki boşta kalma süresi. Varsayılan 1 saattir (1: 0: 0).

ihtiyaçlarınıza göre birden fazla parametreniz var.

Güvenlik duvarını yöneten ve zamanlamaları ihtiyaçlarınıza göre ayarlayan veya işlevselliklerini kontrol eden ekiple konuşmanızı öneririm.

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.