· 6 dk okuma

DDoS Saldırısı Nedir? Türleri, Belirtileri ve Korunma Yolları

DDoS saldırısı (Distributed Denial of Service), çok sayıda kaynaktan gelen sahte veya anlamsız trafikle bir sunucunun, ağın ya da uygulamanın hizmet veremez hale getirilmesidir. DDoS korumalı sunucu ise bu trafiği sizin sunucunuza ulaşmadan, ağın kenarında ayıklayıp yalnızca meşru isteklerin geçmesini sağlayan altyapı demektir.

Bu rehberde saldırının mantığını, üç ana türü, belirtilerini, sunucu üzerinde yapabileceğiniz ilk müdahaleleri ve korumalı altyapının nasıl çalıştığını sırayla ele alıyoruz.

DDoS Saldırısı Nasıl Çalışır?

Saldırgan, ele geçirilmiş cihazlardan (zayıf şifreli IoT cihazları, yamasız sunucular, kiralık botnet'ler) oluşan bir ağ kullanır. Bu cihazlar tek bir hedefe aynı anda trafik gönderir. "Dağıtık" olması iki sorun yaratır:

Hedef olarak üç kaynak tükenir: bant genişliği (hat dolar), bağlantı/durum tabloları (firewall, load balancer, işletim sistemi) ya da uygulama kaynakları (CPU, veritabanı, worker sayısı). Saldırı türleri bu üç kaynağa karşılık gelir.

DDoS Saldırı Türleri

1. Volumetrik saldırılar (L3/L4)

Amaç, hedefin internet bağlantısını doldurmaktır. Trafik sunucuya ulaştığında iş işten geçmiştir; çünkü hat sunucunun önünde, yukarı akışta dolmuştur.

2. Protokol saldırıları

Ağ yığınının ve ara cihazların durum tablolarını hedefler. Bant genişliğinden çok paket sayısı (pps) ve bağlantı sayısı önemlidir.

3. Uygulama katmanı (L7) saldırıları

Trafik hacmi düşüktür ama istekler meşru görünür. Hedef web sunucusu, API ya da oyun sunucusunun uygulama mantığıdır.

L7 saldırıları en zor ayırt edilenlerdir; çünkü bant genişliği grafiğinde belirgin bir sıçrama olmayabilir.

Tür Hedef kaynak Tipik belirti
Volumetrik Bant genişliği Hat doluluğu, tüm servislerde kopma
Protokol Bağlantı tablosu, pps Yüksek SYN-RECV, firewall CPU artışı
L7 CPU, worker, veritabanı Yüksek load, 5xx hataları, yavaş sayfalar

DDoS Saldırısı Belirtileri

Şu işaretlerden birkaçını aynı anda görüyorsanız saldırıdan şüphelenin:

Önce meşru bir yoğunluk (kampanya, duyuru, bot taraması) ile saldırıyı ayırmak gerekir. Bunun için trafik kaynağının dağılımına ve istek desenine bakın.

Sunucuda İlk Teşhis Komutları

Aşağıdaki komutlarda IP'ler dokümantasyon aralığındandır (203.0.113.0/24, 198.51.100.0/24).

Bağlantı durumlarının özetini görün:

ss -s
ss -ant state syn-recv | wc -l

syn-recv sayısı yüzlerce/binlerce ise SYN flood olasıdır. Gelen SYN paketlerinin kaynaklarına bakın:

tcpdump -nn -i eth0 -c 2000 'tcp[tcpflags] & tcp-syn != 0 and dst port 443' \
  | awk '{print $3}' | cut -d. -f1-4 | sort | uniq -c | sort -rn | head

Web sunucusunda en çok istek yapan IP'ler (nginx erişim logu):

awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -20

En çok istenen URL'ler:

awk '{print $7}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -20

Sunucu Tarafında Hafifletme

Bu önlemler küçük L7 ve protokol saldırılarında işe yarar. Volumetrik saldırıyı sunucudan durduramazsınız; çünkü hat zaten sunucunuza gelmeden dolmuştur.

sysctl -w net.ipv4.tcp_syncookies=1
sysctl -w net.ipv4.tcp_max_syn_backlog=4096
sysctl -w net.ipv4.tcp_synack_retries=2

Kalıcı yapmak için /etc/sysctl.d/99-ddos.conf dosyasına ekleyip sysctl --system çalıştırın.

nftables ile yeni bağlantı hız sınırı

nft add table inet filter
nft add chain inet filter input '{ type filter hook input priority 0; }'
nft add rule inet filter input tcp dport 443 ct state new \
  limit rate over 50/second burst 100 packets drop

Değerleri kendi normal trafiğinize göre ayarlayın. Çok düşük bir limit meşru kullanıcıları da keser.

Nginx ile istek sınırlama

http {
    limit_req_zone $binary_remote_addr zone=perip:10m rate=10r/s;
    limit_conn_zone $binary_remote_addr zone=connperip:10m;

    server {
        location /login {
            limit_req zone=perip burst=20 nodelay;
            limit_conn connperip 20;
        }
    }
}

Bir CDN/proxy arkasındaysanız $binary_remote_addr proxy IP'sini gösterir. Gerçek istemci IP'si için real_ip modülünü doğru yapılandırın.

DDoS Korumalı Sunucu Nasıl Korur?

Korumalı altyapının temel fikri, saldırı trafiğini hedefe ulaşmadan ağın kenarında ayıklamaktır. Tipik akış:

  1. Tespit: Router'lardan gelen akış verisi (NetFlow/sFlow/IPFIX) ve paket örnekleri analiz edilir; pps, bps, protokol dağılımı, kaynak sayısı gibi eşikler aşıldığında saldırı ilan edilir.
  2. Yönlendirme: Saldırı altındaki IP için trafik filtreleme katmanına alınır.
  3. Filtreleme: Sahte kaynaklı paketler, hatalı biçimli paketler, kullanılmayan UDP portları, SYN doğrulama (cookie/proxy) ve hız sınırları uygulanır. Meşru trafik için bu aşamada davranış tabanlı kurallar da devreye girer.
  4. Temiz trafiğin iletilmesi: Geçen trafik sunucuya ulaşır; saldırı sürerken servis çalışmaya devam eder.

Bu işin önemli yanı, filtrelemenin hattınız dolmadan önce, yani yukarı akışta yapılmasıdır. Sunucudaki iptables kuralları bu yüzden volumetrik saldırıda tek başına yetmez.

Kendi ASN'iniz ve IP bloğunuz varsa

Kendi IP bloğunu kullanan ağlarda koruma, genellikle BGP ile sağlanır. Nixcon'un NixGuard Edge / BGP tünel hizmetinde trafik koruma katmanından geçer ve temiz trafik, GRE tüneli içindeki BGP oturumuyla size iletilir. Kendi ASN'iniz (örneğin dokümantasyon ASN'i AS64500) ve bloğunuz (192.0.2.0/24) için AS-SET desteği de bulunur. GRE kapsülleme MTU'yu düşürdüğü için tünel arayüzünde MSS clamping ve MTU ayarını kontrol etmeyi unutmayın.

Nixcon, kendi ağı AS40368 üzerinden İzmir'deki ana veri merkezi ile Frankfurt ve Fremont POP'larını işletir. Sunucu tarafında DDoS korumalı çözümleri ve firewall seçeneklerini DDoS koruma ve firewall sayfasında inceleyebilirsiniz.

Tespit ve İzleme: Saldırıyı Önceden Görmek

Koruma kadar görünürlük de önemlidir. Flow tabanlı izleme, saldırının hangi IP'ye, hangi porta ve hangi protokolle geldiğini dakikalar içinde gösterir. NixMon bu amaçla flow tabanlı ağ izleme ve DDoS tespiti sunar; ayrıntılar NixMon sayfasında yer alıyor.

Yaygın Hatalar ve Çözümleri

Saldırı Anında Kontrol Listesi

  1. Trafik grafiğine ve ss -s çıktısına bakarak saldırı türünü belirleyin (hat mı, bağlantı tablosu mu, uygulama mı).
  2. Saldırı altındaki IP/port bilgisini ve zaman damgasını kaydedin.
  3. Sunucu tarafında SYN cookie, hız limiti gibi hızlı önlemleri uygulayın.
  4. Hat doluysa altyapı sağlayıcınıza hemen bildirin; filtreleme yukarı akışta yapılmalı.
  5. Saldırı bittikten sonra log'ları inceleyip kalıcı kuralları ve izleme eşiklerini güncelleyin.

Sonuç

DDoS saldırıları hat, bağlantı tablosu ya da uygulama kaynaklarını hedefler ve her tür farklı bir savunma gerektirir. Sunucudaki ayarlar küçük ve uygulama katmanı saldırılarında faydalıdır; büyük hacimli saldırılarda ise ağın kenarında filtreleme yapan korumalı altyapı şarttır. Ne kadar erken tespit ederseniz, müdahale de o kadar kolay olur.

Sık sorulan sorular

DDoS saldırısı ile DoS saldırısı arasındaki fark nedir?

DoS tek bir kaynaktan, DDoS ise çok sayıda dağıtık kaynaktan yapılır. DDoS'ta kaynak sayısı fazla olduğu için tek IP engelleyerek durdurmak mümkün değildir.

DDoS saldırısını sunucudaki firewall tek başına durdurur mu?

Küçük SYN flood ve uygulama katmanı saldırılarında hız limiti ve SYN cookie yardımcı olur. Hattı dolduran volumetrik saldırılarda trafik sunucuya ulaşmadan hat dolduğu için yukarı akışta filtreleme gerekir.

DDoS saldırısı altında olduğumu nasıl anlarım?

Trafik grafiğinde ani sıçrama, yüksek syn-recv sayısı, tek URL veya porta aşırı istek, yavaşlama ve bağlantı kopmaları tipik belirtilerdir. ss -s, tcpdump ve erişim logları ile türü ayırt edebilirsiniz.

Kendi ASN ve IP bloğum varsa DDoS koruması alabilir miyim?

Evet. NixGuard Edge / BGP tünel hizmetinde kendi ASN'i ve IP bloğu olan ağlara, GRE tüneli içindeki BGP oturumuyla DDoS korumalı temiz trafik iletilir.

DDoS korumalı sunucu seçeneklerini Nixcon'da inceleyin.İncele