Temmuz ayında gelen DDoS saldırılarına karşı bir firewall yazmıştım. Bu firewall, yazılım tarafında çalışıyor ve siteye gelen paketleri süzerek "saldırgan" paketleri IPTABLES üzerinden banlıyor. Benim belirlediğim bir saniyede, benim belirlediğim sayıca, aynı IP adresinden giriş olduğunda mesela. Elbette yalnızca bununla sınırlı değil ancak saldırmaya çalışanların bu sayfayı okuyacağını da düşünürsek yazılımın içeriği bakımından detaylı bilgi veremem.
Bash Scripting ile yazılmış örnek bir kod;
Kod
for i in $(netstat -ntu | awk '{print $5}' | awk '{sub("::ffff:","");print}' | cut -f1 -d ':' | sort | uniq -c | sort -n | grep -v -e server -e Address -e 127.0.0.1 -e 0.0.0.0 | awk '{ if ($1 > 30) print $2 }'); do /usr/sbin/csf -d $i;done Not: Güvenlik nedeniyle kodun tamamı verilmemiştir!
Burada da görülebileceği üzere
if ($1 > 30) koşulunda 30'dan fazla aynı IP adresiyle bağlantı kuranlar otomatik olarak banlanıyor. Bu bağlantıdan kasıt, forumda kayıtlı üye olmaları değil. DDoS atmak amacıyla çok sayıda bağlantıyla sisteme yük bindirmek, işleyişini yavaşlatma ve hatta durdurma amacıyla gerçekleştirilen saldırılardır. Yukarıdaki kod da bunu önlüyor. Elbette sistemde etkin olan firewall'ım SYN saldırılarına karşı da etkili.
Özetle:
- Foruma saldırı geliyor.
- Saldırgan, o an ben online değilsem kısa süreli de olsa (birkaç dakika) forumun yavaşlamasını sağlayabiliyor.
- Sonra sistemdeki yazılımım devreye girip yapay bir zeka gibi gerekli önlemi uyguluyor.
- Forum yeniden hızlanıyor.
DDoS saldırılarına karşı ne Türkiye'de ne de Dünya'da kesin bir önlem yoktur. Binlerce kişinin bilgisayarlarına virüs yayılarak, botnet ağına sokulan ve bu şekilde yapılan DDoS saldırıları Google'ı bile kapatabilir. Bu noktada yapılabileceğin en iyisini yaptığımdan şüpheniz olmasın. Başka bir forum olsa saldırı geldiği an değil yavaşlamak, CPU (işlemci) kullanım limitlerini aşacağından foruma erişim uzun bir süre engellenirdi. Bunu minimum düzeyde tutabilmek bile büyük bir özveri ister. Ancak yine de daha iyi bir önlem alacağım.
Biraz teknik terim kullanmak zorunda kalsam da elimden geldiğince basite indirgeyerek açıklamaya çalıştım. Umarım anlaşılır olmuştur.