CentOS ile DDoS Önleme ve IP Banlama
Şüpheli bağlantıları tespit edip banlamak ve sunucuyu tekrar kararlı hale getirmek için üç adımlık temel prosedür.
CentOS işletim sisteminde, zaman zaman DDoS saldırılarını önlemek için hayati önem taşıyan iki temel komutu sizlerle paylaşıyorum.
Bağlantı kuyruğunu kontrol etme
Sunucuya root olarak bağlandıktan sonra; henüz tam olarak derlenmemiş, bağlı ancak kuyrukta bekleyen (SYN_RECV durumundaki) IP adreslerini listelemek için bu komutu kullanıyoruz:
netstat -np | grep SYN_RECV
Saldırgan IP adreslerini banlama
Yukarıdaki listede şüpheli gördüğünüz IP adreslerinden herhangi birini ya da birçoğunu sunucudan uzaklaştırmak (banlamak) istiyorsanız, aşağıdaki komutun ortasındaki IP kısmını değiştirerek uygulamalısınız:
iptables -A INPUT -s 11.111.77.88 -j DROP
Eğer birçok IP adresini aynı anda banlamak istiyorsanız, sadece ortadaki IP'leri değiştirmeniz yeterlidir. Komutları alt alta SSH terminaline yapıştırdığınızda sırasıyla hepsini banlayacaktır:
iptables -A INPUT -s 11.111.77.88 -j DROP
iptables -A INPUT -s 22.222.88.99 -j DROP
iptables -A INPUT -s 33.333.99.11 -j DROP
Sunucuyu rahatlatma ve servisi yeniden başlatma
IP banlama işleminden sonra sunucunuzun durumunu rahatlatmak ve son durumu net bir şekilde görebilmek için öncelikle Apache web sunucusunu yeniden başlatmalısınız (restart):
service httpd restart
Servisi yeniden başlattıktan sonra, bağlı IP'leri kontrol etmek için ilk komutumuzu tekrar çalıştırın:
netstat -np | grep SYN_RECV
Yeniden kontrol ettiğinizde hala aynı IP'leri bağlı görüyor olabilirsiniz; ancak genel olarak sistem arka planında o IP'ler düşürülmüştür. Eğer hala aşırı yoğunlukta farklı IP adresleri gelmeye devam ediyorsa, banlama işlemine aynı kararlılıkla devam etmelisiniz.