Linux tabanlı sunucunuzun işlemci yükü (load average) aniden ve açıklanamayan bir şekilde yükseliyorsa, sunucunuz bir HTTP flood veya DDoS saldırısı altında olabilir. Özellikle Apache veya Nginx gibi web servislerini hedef alan bu temel düzeydeki saldırıları tespit etmek ve iptables güvenlik duvarı ile engellemek oldukça kolaydır.
Bu rehberdeki ağ izleme ve engelleme komutlarını tüm
1. Web Sunucusuna (Port 80 ve 443) Gelen Bağlantıları Listeleme
Sitenize o an hangi IP adreslerinin, kaçar adet bağlantı (connection) açtığını görmek için netstat aracını kullanıyoruz. Aşağıdaki komut, sunucunuza bağlanan IP adreslerini tespit eder ve en çok bağlantı açandan en aza doğru sıralar:
netstat -pant | grep -E ":80|:443" | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr
Çıktı Analizi: Komutu çalıştırdığınızda iki sütunlu bir liste göreceksiniz. Sol taraftaki rakam bağlantı sayısını, sağ taraftaki ise IP adresini belirtir. Eğer tek bir IP adresinden 100 veya daha fazla bağlantı görüyorsanız, bu durum normal bir ziyaretçi trafiğinden ziyade bir bot veya saldırgan faaliyetine işaret ediyor olabilir.
2. SYN Flood Saldırılarını (Yarım Kalan Bağlantılar) Tespit Etme
Saldırganlar bazen sunucuyu meşgul etmek için bağlantıyı tam olarak kurmaz ve "SYN" paketleri göndererek sunucunun yanıt beklemesini sağlarlar (SYN Flood). Bu tür şüpheli bağlantıları filtrelemek için şu komutu kullanabilirsiniz:
netstat -ntu | grep SYN_RECV | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr
Bu komut sayesinde yalnızca bağlantı kurmaya çalışan ancak işlemi tamamlamayan zararlı botnet IP'lerini net bir şekilde izole edebilirsiniz.
3. Şüpheli IP Adresini Iptables ile Banlama
Yukarıdaki komutlar yardımıyla saldırgan IP adresini (örneğin: 192.168.1.50) tespit ettikten sonra, sunucunuza erişimini tamamen kesmek için iptables kuralı eklememiz gerekir.
İlgili IP'yi anında engellemek (DROP) için şu komutu yürütün:
iptables -I INPUT -s IP_ADRESINI_BURAYA_YAZIN -j DROP
(Not: -I parametresini kullanmak, kuralı listenin en üstüne ekleyerek engellemenin anında devreye girmesini sağlar.)
Eğer engellediğiniz bir IP adresinin banını daha sonra kaldırmak isterseniz, -I yerine -D (Delete) parametresini kullanarak kuralı silebilirsiniz:
iptables -D INPUT -s IP_ADRESINI_BURAYA_YAZIN -j DROP
DoğruHost Güvenlik İpucu:
iptablesile IP engellemek, anlık ve manuel müdahaleler için harikadır. Ancak gelişmiş Layer 7 (uygulama katmanı) saldırılarına karşı sürekli manuel ban atmak yorucu olabilir. Üst düzey koruma için Nginx Rate Limit yapılandırmaları ve OpenResty tabanlı dinamik WAF (Web Application Firewall) kuralları kullanmak, kötü amaçlı trafiği sunucuya ulaşmadan çok daha verimli bir şekilde filtrelemenizi sağlar.
