Web sunucunuza ip bazlı olarak aynı anda yüzlerce istek gönderilmesi neticesinde hizmetinizin durma noktasına gelmesi sinir bozucu bir durumdur. Bu duruma Request flood yada Ddos denebilir.  Aynı şey web sunucunuz dışında posta sunucunuz veya tcp portu ile konuşan başka bir servisinizde de yaşanabilir. Siteniz veya ilgili servis linux ortamında çalışıyorsa çözümü Iptables’dir.  Diğer ortamlar için Firewall yada ortamın network seçeneklerine göz atınız.

Porta gelen isteği IP bazında sınırlamak:

iptables -A INPUT -p tcp –syn –dport 80 -m connlimit –connlimit-above 20 –connlimit-mask 32 -j REJECT –reject-with tcp-reset

Bu örnekte anlık (per second) her kullanıcı 20 adet istek gönderebilir.

Porta gelen isteği toplam olarak sınırlamak:
iptables -A INPUT -m state –state RELATED,ESTABLISHED -m limit –limit 150/second –limit-burst 160 -j ACCEPT

Bu örnekte tüm kullanıcılardan anlık (per second) 150 istek gelebiliyor.

Sonuç olarak; Ip bazında sınırlamak daha uygun bir çözüm olacaktır. Ancak iki sınırlamayı da kullanmak isteyenler için önerim Web Server’inizin (Apache) toplam kabul edebileceği bağlantı sayısına bakarak ona göre toplam sınırlama yapmak ve kullanı başına ise makul(20) bir sınırlama koymaktır.

Kategoriler: Linux