Linux: giden TCP selini önleme


9

Loadbalancer'ların arkasında yüzlerce web sunucusu çalıştırıyorum, çok fazla uygulamayı barındıran çok sayıda siteye ev sahipliği yapıyorum (bunların hiçbir kontrolü yok). Yaklaşık ayda bir kez, sitelerden biri saldırıya uğrar ve bazı bankalara veya siyasi kurumlara saldırmak için bir sel betiği yüklenir. Geçmişte, bunlar her zaman bireysel web sunucusunda giden UDP trafiğini engelleyerek etkili bir şekilde çözülen UDP selleriydi. Dün, 80 numaralı bağlantı noktasına birçok TCP bağlantısı kullanarak büyük bir ABD bankasını sunucularımızdan sulamaya başladılar. Bu tür bağlantılar uygulamalarımız için mükemmel bir şekilde geçerli olduğundan, bunları engellemek kabul edilebilir bir çözüm değildir.

Aşağıdaki alternatifleri düşünüyorum. Hangisini önerirsiniz? Bunları uyguladınız ve nasıl?

  • Kaynak sunucuya sahip web sunucusu (iptables) giden TCP paketlerinde sınır! = 80
  • Aynı ama kuyrukta (tc)
  • Sunucu başına kullanıcı başına ücret sınırlaması giden trafik sınırı. Uygulama sunucusu başına potansiyel olarak 1000 farklı kullanıcı olduğu için oldukça idari bir yük. Belki bu: kullanıcı bant genişliği başına nasıl sınırlandırabilirim?
  • Başka herhangi bir şey?

Doğal olarak, bilgisayar korsanlarının barındırılan sitelerimizden birine girme şansını en aza indirmenin yollarını da arıyorum, ancak bu mekanizma asla% 100 su geçirmez olmayacağından, bir izinsiz girişin etkisini ciddi şekilde sınırlamak istiyorum.

Güncelleme: Şu anda bu kuralları deniyorum, bu özel saldırıyı önleyecektir. Onları daha genel hale getirmeyi nasıl önerirsiniz? Yalnızca SYN paketlerinde hızı sınırlandırdığımda bilinen bir TCP DoS saldırısını kaçırıyor muyum?

iptables -A OUTPUT -p tcp --syn -m limit --limit 100/min -j ACCEPT
iptables -A OUTPUT -p tcp --syn -m limit --limit 1000/min -j LOG --log-prefix "IPTables-Dropped: " --log-level 4
iptables -A OUTPUT -p tcp --syn -j REJECT --reject-with tcp-reset

Şerefe!

Yanıtlar:


3

Bence ve benim için çok iyi çalıştı biri için mümkün olan en iyi çözümler hedef ip için bağlantı / paket sayısını sınırlamaktır. Sınırın makul bir hıza ayarlanması, saldırganın hedefe büyük miktarda bağlantı göndermesini önleyecektir. Bağlantı noktasını ve protokolü ayarlamak iyi bir fikir değildir, çünkü saldırgan bugün http sel gönderiyorsa yarın farklı saldırı türleri kullanacaktır. genel olarak ip başına bağlantıları sınırlamak probleminiz için bir çözüm olacaktır.

Umut ediyorum bu yardım eder :)


-3

Her zaman aldığım duruş, bir web sunucusunun giden TCP bağlantılarını hiç yapmaması gerektiğidir - yalnızca gelen isteklere yanıt veren bir sunucu olarak trafik gönderir. (Ben de sadece web sunucusu ve SSH için gelen TCP izin.) (Bununla ilgili bir web sunucusu asla posta göndermek için doğru ana bilgisayar olduğuna inanıyorum.) Bu sadece giden saldırıları önlemek olmaz - aynı zamanda biraz zorluk ekler (bilgisayar korsanları bir xterm penceresi elde edemez veya araç takımlarını ana makinenize alamaz).


Peki, bir web sitesi nasıl gidip başka bir web sitesinden bir RSS beslemesi alır?
Michael Hampton
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.