Apache web sunucusuna karşı "slowloris" DOS saldırısına karşı en iyi nasıl savunulur?


32

Son zamanlarda "slowloris" adlı bir senaryo dikkat çekmiştir. Slowloris'in ne yaptığı ile ilgili temel kavram yeni bir saldırı değil, son zamanlarda dikkatleri üzerine bazı Apache web sitelerimize yapılan saldırılarda küçük bir artış olduğunu gördüm.

Şu anda buna karşı herhangi bir% 100 savunma görünmüyor.

Belirlediğimiz en iyi çözüm (şimdiye kadar) MaxClients'ı arttırmaktır.

Elbette bu, saldırganın bilgisayarının gereksinimlerini arttırmaktan başka bir şey yapmaz ve sunucuyu% 100 korumaz.

Diğer bir rapor Apache sunucusunun önünde ters bir proxy (Perlbal gibi) kullanmanın saldırının önlenmesine yardımcı olabileceğini göstermektedir.

Bir ana bilgisayardan bağlantıların sayısını sınırlamak için mod_evasive kullanmak ve slowloris tarafından yapılmış gibi görünen istekleri reddetmek için mod_security kullanmak, şu ana kadarki en iyi savunma gibi görünüyor.

ServerFault'daki herhangi biri bunun gibi saldırılar geçirdi mi? Eğer öyleyse, savunmak / önlemek için hangi önlemleri uyguladınız?

NOT: Bu soru Apache sunucuları içindir, çünkü benim Windows IIS sunucularının etkilenmediğini anlamıyorum.

Yanıtlar:


22

Bu tür bir saldırı yaşadım ... orta yaz ortasında (23 Haziran), burada kırsal kesimde olmanız ve bira içmeniz gerekiyordu:

Geride benim Apache koymak Varnish sadece Slowloris korunmaktadır değil, aynı zamanda hızlandırılmış web biraz ister.

Ayrıca, iptablesbana yardımcı oldu:

iptables -I INPUT -p tcp --dport 80 \
         -m connlimit --connlimit-above 20 --connlimit-mask 40 -j DROP

Bu kural, bir sunucuyu, bağlantı noktası 80'e bağlanan 20 bağlantıyla sınırlandırır; bu da kötü amaçlı olmayan kullanıcıyı etkilememelidir;


4
İptables kuralı için +1.
Tim

1
Sadece bir kafa yukarı. "Kutunun dışında", çerez alırsa vernik sayfaları önbelleğe almaz. Bunu aşmak için bazı özel yapılandırmalar yapmanız gerekir. Örnekler sitelerinde mevcuttur ve uygulanması kolaydır.
David

Cila, oldukça programlanabilir olduğundan, neyin olup bittiğini görecek şekilde yapılandırabilirsiniz. Ancak apache'nin önüne bir proxy koyarak sorunu sadece web sunucusundan proxy'ye taşıdığınızı düşünüyorum. Sorun hala orada, sadece farklı bir yerde. Bağlantılar / portlar hala kullanılmaya devam edecek. Listelenen iptables kuralıyla (veya güvenlik duvarınız için eşdeğeriyle) başlar, sonra bir proxy'ye bakardım.
David

1
sloworis saldırısı ile ilgili sorun apache'nin multi-thread modeli (ve benzer bir model kullanan diğer birkaç web sunucusu) ile sınırlıdır. Vernik buna dayanmalı.
Cian,


3

Tüm apache modülleriniz iplik güvenliyse, slowloris sadece olaya veya çalışan MPM'lere geçerek yenilebilir. ref: burada


0

Şu anda, sunucuda ip başına maksimum eşzamanlı bağlantıyı sınırlayan daha fazla bir şey olmadığı görülüyor.


0

Deneyebileceğiniz bir kullanıcı yaması var. Sunucunun altında kaldığı yüke bağlı olarak zaman aşımını değiştirir, ancak durumunu göz önünde bulundurarak, bazı ciddi testler yapmadan bir üretim makinesinde kullanmak istemeyebilirsiniz. Buraya bir göz atın .


0

iptable tabanlı güvenlik duvarı sizi 1 ipten çoklu bağlantılardan korumalıdır.


0

Bu, başkalarına yardımcı olursa, aşağıdaki yapılandırmayı kullanarak Apache 2.2.15 veya daha üst bir sürümle bu sorunun üstesinden gelebilirsiniz:

LoadModule reqtimeout_module modules/mod_reqtimeout.so
RequestReadTimeout header=20-40,MinRate=500 body=20,MinRate=500

Burada daha fazla bilgi: https://httpd.apache.org/docs/2.2/mod/mod_reqtimeout.html

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.