DDoS Koruması Bulut Sunucunuz İçin Neden Hayati Önem Taşır?
DDoS (Distributed Denial of Service) saldırıları, bulut sunucunuzu erişilemez hale getirebilecek en yaygın tehditlerden biridir. Bu saldırılarda, saldırgan sunucunuzun IP adresine devasa miktarda sahte istek göndererek işlemci kaynaklarınızı, bant genişliğinizi ve ağ bağlantılarınızı doyurur. Sonuç olarak, gerçek kullanıcılar artık hizmetinize erişemez ve işletmeniz ciddi şekilde kesintiye uğrar.
Bulut sunucunuzda DDoS korumasını etkinleştirmek, bu saldırılara karşı ilk savunma katmanıdır. Ancak önemli olan nokta, DDoS korumasının sadece "bir düğmeyi açmak" anlamına gelmemesidir; uygun koruma seviyesini seçmeli, normal trafik üzerindeki etkisini anlamalı ve saldırı izleme yöntemlerini bilmelisiniz. Bu makalede, her üç hususu da teknik detaylarıyla inceleyeceğiz.
Farklı DDoS Koruması Seviyeleri
Bulut sunucularda DDoS koruması genellikle üç seviyede uygulanır. Her seviye, güvenlik ve performans arasında farklı bir denge kurar ve doğru seviyenin seçimi hizmetinizin türüne bağlıdır.
Seviye 1: Ağ Tabanlı Koruma (Ağ Katmanı)
Bu seviye, OSI modelinin 3. ve 4. katmanlarında çalışır ve trafiği IP adresi, protokol ve port bazında filtrelemeye odaklanır. SYN Flood, UDP Flood ve ICMP Flood gibi yaygın saldırılar bu seviyede etkisiz hale getirilir.
Bu seviyenin ana mekanizması Hız Sınırlama (Rate Limiting) ve Erişim Kontrol Listesi (ACL)'dir. Örneğin, Linux'ta iptables kullanarak yeni bağlantı oranını sınırlayabilirsiniz:
iptables -A INPUT -p tcp --syn -m limit --limit 10/s --limit-burst 20 -j ACCEPT
iptables -A INPUT -p tcp --syn -j DROP
Bu kurallar, saniyede en fazla 10 yeni SYN bağlantısına izin verir ve fazlasını engeller. Bu seviyenin avantajı, çok düşük gecikme (1 milisaniyenin altında) ve normal trafik için tam şeffaflıktır.
Seviye 2: Uygulama Tabanlı Koruma (Uygulama Katmanı)
HTTP Flood veya Slowloris gibi 7. katman saldırıları daha karmaşıktır ve basit ağ filtreleriyle tespit edilemez. Bu seviyede, anormal davranış kalıplarını belirlemek için HTTP/HTTPS trafiği incelenir.
Örneğin, normal bir HTTP isteği genellikle User-Agent ve Accept-Language gibi belirli başlıklar içerir. HTTP Flood saldırıları genellikle bu başlıklara sahip değildir veya tekrarlayan değerler içerir. Apache için mod_evasive veya Nginx için ngx_http_limit_req_module gibi araçlar bu kalıpları tespit edebilir:
limit_req_zone $binary_remote_addr zone=req_limit:10m rate=5r/s;
server {
location / {
limit_req zone=req_limit burst=10 nodelay;
proxy_pass http://backend;
}
}
Bu Nginx ayarları, her IP'den saniyede en fazla 5 isteğe izin verir ve 10 ek isteğin ani (burst) olarak işlenmesine olanak tanır.
Seviye 3: Akıllı ve Uyarlanabilir Koruma (Adaptive Protection)
En gelişmiş DDoS koruma seviyesi, trafiği anlık olarak analiz etmek için makine öğrenimi algoritmaları kullanır. Bu sistemler, sunucunuzun normal trafik profilini öğrenir ve bu profilden herhangi bir sapmayı olası saldırı olarak işaretler.
Bu seviyenin ana avantajı, yanlış pozitif (False Positive) hatalarının azaltılmasıdır. Örneğin, hizmetiniz doğal olarak günün belirli saatlerinde daha fazla trafik alıyorsa, uyarlanabilir sistem bu kalıbı anlar ve bunu saldırı olarak değerlendirmez. Bu seviye genellikle bulut hizmeti olarak sunulur ve özel bir altyapı gerektirir.
Kapsamlı bir çözüm arıyorsanız, ServerNet bulut hizmetleri, ihtiyaçlarınıza göre seçebileceğiniz farklı seviyelerde DDoS koruması etkinleştirme imkanı sunar.
DDoS Korumasının Normal Trafik Üzerindeki Etkisi
Sunucu yöneticilerinin ana endişelerinden biri, DDoS korumasının gerçek kullanıcı deneyimi üzerindeki etkisidir. Bu etkileri anlamak, ayarları optimize etmenize yardımcı olur.
Gecikme (Latency) ve Yönlendirme
Ağ tabanlı korumada, trafik genellikle doğrudan ve aracısız işlenir, bu nedenle ek gecikme ihmal edilebilir düzeydedir (0.5 milisaniyeden az). Ancak daha yüksek seviyelerde, trafik bir proxy veya merkezi filtre üzerinden geçebilir ve bu da 5 ila 20 milisaniye ek gecikme ekleyebilir.
Bu gecikmeyi azaltmak için, kullanıcıları en yakın giriş noktasına yönlendirmek amacıyla Anycast DNS kullanabilirsiniz. Ayrıca, hizmetiniz gecikmeye duyarlıysa (çevrimiçi oyun gibi), Seviye 1'i seçmek daha iyidir ve normal web hizmetleri için Seviye 2 yeterlidir.
Hız Sınırlama ve Yanlış Engelleme
DDoS korumasındaki en yaygın sorun, gerçek kullanıcıların yanlışlıkla engellenmesidir. Hız sınırını çok katı ayarlarsanız, ortak bir NAT veya proxy arkasından gelen kullanıcılar (mobil internet kullanıcıları gibi) yanlışlıkla engellenebilir.
Bu sorunu önlemek için şunları öneririm:
- Hız sınırını yalnızca IP adresine değil, IP adresi ile birlikte
User-Agent'a göre uygulayın. - Şüpheli istekler için tamamen engelleme yerine meydan okuma-yanıt (CAPTCHA gibi) kullanın.
- Arama motoru botları gibi geçerli IP'ler için beyaz liste (Whitelist) oluşturun.
Yaygın bir hata, yöneticilerin hız sınırını tüm trafiğe uygulamasıdır; oysa bu yalnızca /login veya /api gibi hassas yollara uygulanmalıdır.
Bant Genişliği ve Maliyetler
DDoS koruması genellikle trafiği filtreler, ancak bazı durumlarda ek trafik (filtreden dönen trafik gibi) bant genişliği tüketimini artırabilir. Sınırlı bant genişliğine sahip bulut hizmetlerinde bu durum maliyetli olabilir.
Bu maliyeti yönetmek için, her IP'nin tükettiği bant genişliğini sınırlamak amacıyla Trafik Şekillendirme (Traffic Shaping) kullanabilirsiniz. Linux'ta tc (Trafik Kontrolü) ile örnek:
tc qdisc add dev eth0 root handle 1: htb default 30
tc class add dev eth0 parent 1: classid 1:1 htb rate 100mbit
tc class add dev eth0 parent 1:1 classid 1:10 htb rate 10mbit ceil 20mbit
tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip src 192.168.1.0/24 flowid 1:10
Bu ayarlar, 192.168.1.0/24 ağından gelen trafiği saniyede maksimum 20 megabit ile sınırlar.
DDoS Saldırısı İzleme
Uygun izleme olmadan DDoS koruması etkisizdir. Saldırıyı anında tespit edebilmeli ve hızlıca tepki verebilmelisiniz.
Temel İzleme Göstergeleri
Saldırıyı erken tespit etmek için şu göstergeleri anlık olarak takip edin:
- Eşzamanlı Bağlantı Sayısı (Concurrent Connections): Normal ortalamanın 2 katından fazla ani artış.
- Bant Genişliği Kullanımı: Mantıklı bir neden olmadan bant genişliği sınırına ulaşılması.
- 5xx Hata Oranı: Kaynak doygunluğunu gösteren 502 veya 503 hatalarındaki artış.
- Yanıt Süresi (Response Time): Ortalamanın 3 katından fazla gecikme artışı.
- SYN Paket Oranı: Handshake tamamlanmadan SYN isteklerindeki ani artış.
Pratik İzleme Araçları
Anlık izleme için açık kaynaklı araçlar kullanabilirsiniz. Basit bir çözüm, aktif bağlantıları görüntülemek için netstat kullanmaktır:
watch -n 1 'netstat -ant | grep SYN_RECV | wc -l'
Bu komut, her saniye SYN_RECV durumundaki bağlantı sayısını gösterir. Bu sayı sürekli olarak 1000'in üzerindeyse, muhtemelen bir SYN Flood saldırısı devam ediyordur.
Daha kapsamlı izleme için, her IP'nin tükettiği bant genişliğini görmek amacıyla iftop kullanabilirsiniz:
iftop -i eth0 -n -B
Bu aracın çıktısı, hangi IP'lerin en fazla trafiği ürettiğini gösterir. Tek bir IP bant genişliğinin %50'sinden fazlasını tüketiyorsa, büyük olasılıkla saldırının bir parçasıdır.
Otomatik Uyarı Ayarlama
Hızlı tepki için otomatik uyarılar ayarlayın. cron ve basit bir betik kullanarak, anormallik tespit edildiğinde e-posta veya SMS alabilirsiniz:
#!/bin/bash
CONN=$(netstat -ant | grep SYN_RECV | wc -l)
if [ "$CONN" -gt 500 ]; then
echo "Olası DDoS saldırısı: $CONN SYN_RECV bağlantısı" | mail -s "DDoS Uyarısı" admin@example.com
fi
Bu betiği cron ile her 5 dakikada bir çalıştırın:
*/5 * * * * /usr/local/bin/ddos_check.sh
İzlemede Yaygın Hata
Birçok yönetici yalnızca sunucu kaynaklarını (CPU ve RAM) izlemekle yetinir. Ancak DDoS saldırıları genellikle CPU doygunluğundan önce bant genişliğini veya bağlantı tablosunu doyurur. Bu nedenle, ağ ve bağlantı izleme öncelikli olmalıdır. Ayrıca, saldırı kalıplarını analiz edebilmek ve koruma ayarlarını iyileştirebilmek için sunucu günlüklerini en az 30 gün saklayın.
Özet ve Son Öneri
DDoS korumasını etkinleştirmek tek seferlik bir işlem değil, sürekli bir döngüdür: uygun seviyeyi seçme, hassas ayar yapma, sürekli izleme ve kademeli iyileştirme. Farklı koruma seviyelerini anlayarak, normal trafik üzerindeki etkiyi yöneterek ve etkili izleme uygulayarak bulut sunucunuzu saldırılara karşı dayanıklı hale getirebilirsiniz.
Önerim, önce Seviye 1 ile başlamanız ve ihtiyaçlarınıza ve trafik kalıbınıza göre koruma seviyesini kademeli olarak yükseltmenizdir. Her zaman bir saldırı tepki planınız olsun ve ekibinizin saldırı tespit edildiğinde ne yapacağını bildiğinden emin olun. Bu yaklaşımla DDoS koruması, işletmeniz için ek bir maliyet değil, rekabet avantajı haline gelir.