DDoS Paket Koruma ve Filtreleme
1) Neden ihtiyacınız var
DDoS, kaynakların "büyük ölçüde bozulması'dır: bant/pps, durum tabloları, çekirdek CPU/IRQ, bağlantı havuzları, uygulama sınırları. Amaç, korumayı katmanlaştırmak: Ağ çevresindeki hacmi söndürmek, TCP/IP yığınına protokol anomalilerini etkisiz hale getirmek ve L7'de istenmeyen istekleri kesmek ve SLO'yu meşru kullanıcılar için kaydetmektir.
2) Saldırı sınıfları
2. 1 L3/L4 (hacimsel/protokol)
Hacimsel: UDP flood, UDP-reflection/amplification (DNS/CLDAP/NTP/SSDP/memcached/mDNS), GRE flood.
Protokol/durum tükenmesi: SYN taşması, ACK/RST taşması, TCP bağlantısı tükenmesi, ICMP taşması, TCP parçalanması.
QUIC/UDP özellikleri: yanlış İlk/Yeniden deneme fırtınaları, sahte kaynak.
2. 2 L7 (uygulama)
HTTP/1. 1: pahalı rotaların arkasındaki sorgular, başlık büyük boy/alan kaçakçılığı.
HTTP/2: Hızlı Sıfırlama, akış-sel, HEADERS sel, PRIORITY kötüye kullanımı.
HTTP/3 (QUIC): sonlandırılmadan bağlantılar/iş parçacıkları, İlk sel.
Slow- атаки: slowloris/slow-read/slow-POST.
gRPC/WebSocket: sonsuz akışlar, mesaj akışı, büyük çerçeveler.
3) Temel güvenlik mimarisi
1. Anycast + Ovma
Küresel olarak trafiği püskürtün ve sağlayıcı temizleme merkezlerinden geçin (kenardaki hacimsel/sahteciliği kesin).
2. Çoklu CDN/Çoklu Kenar
Etki alanı ayrımı (web, API, statik), koruma toplama ve okuma yükü için önbellek.
3. Çevresinde düşük seviyeli filtreler
Sınır yönlendiricilerindeki ACL'ler (RFC1918, bogon, bilinen sahte portlar).
İmzalarda erken düşüş ve conntrack'e kadar olan oran limitleri için eBPF/XDP.
4. L7 Çevre (NGINX/Elçi/WAF)
Tuşlarla RPS sıkıştırması, zorluk (captcha/PoW), önbellek, "pahalı" yolların önceliklendirilmesi.
5. İç istikrar
Bağlantı havuzları, kuyruklar, devre/zaman aşımı, servis yalıtımı (bölme) ve shedder otomatik ölçeklendirme.
4) Ağ "vanaları": hemen ne açılacağı
4. 1 Linux sysctl (çekirdek/yığın)
bash
TCP SYN flood sysctl -w net. ipv4. tcp_syncookies=1 sysctl -w net. ipv4. tcp_max_syn_backlog=4096 sysctl -w net. ipv4. tcp_synack_retries=3
Conntrack/sysctl -w net tables. netfilter. nf_conntrack_max=262144 sysctl -w net. netfilter. nf_conntrack_tcp_timeout_established=300
ICMP/redirect sysctl -w net. ipv4. icmp_echo_ignore_broadcasts=1 sysctl -w net. ipv4. conf. all. accept_redirects=0 sysctl -w net. ipv4. conf. all. send_redirects=0
sysctl -w net socket resources. core. somaxconn=4096 sysctl -w net. core. netdev_max_backlog=250000 sysctl -w net. core. rmem_max=134217728 sysctl -w net. core. wmem_max=134217728
4. 2 nftables: temel filtreler ve paketlerdeki ratelimit
nft table inet filter {
sets {
bogon { type ipv4_addr; flags interval; elements = { 0. 0. 0. 0/8, 10. 0. 0. 0/8, 100. 64. 0. 0/10,
127. 0. 0. 0/8, 169. 254. 0. 0/16, 172. 16. 0. 0/12, 192. 0. 2. 0/24, 192. 168. 0. 0/16, 198. 18. 0. 0/15, 224. 0. 0. 0/4 } }
}
chains {
input {
type filter hook input priority 0; policy drop;
ip saddr @bogon drop ct state established,related accept
UDP amplification ports - limit pps udp dport {53,123,1900,11211,389,1900,5353} limit rate over 2000/second drop
SYN rate-limit tcp flags syn tcp dport {80,443} limit rate over 2000/second drop
ICMP flood ip protocol icmp limit rate 100/second accept
}
}
}
4. 3 XDP/eBPF (fikir)
Sahte kaynak içeren erken bırakma paketleri (uRPF yönlendiricide memnuniyetle karşılanır).
Özet kovaları/32 ve/24 başına pps; Kaynakların dinamik "karantinası".
UDP yansıması: DNS yanıtı benzeri imzalar (bağlam dışı filtre).
5) UDP amplifikasyonu: envanter ve bloklar
Sık reflektörler/amplifikatörler: DNS (açık çözümleyiciler), NTP (monlist), CLDAP, SSDP, mDNS, Memcached (UDP), Chargen.
Önlemler:- UDP servislerini kapatın/kısıtlayın, açık portları en aza indirin.
- Çevrede, bilinen portlar için pps/bit hızını sınırlayın.
- DNS önerisi: yalnızca ağları için özyinelemeli, RRL (Yanıt Hızı Sınırlaması), ANY'yi en aza indirir.
- NTP - halk için güvenilir, 'noquery' sadece "bootstrap".
6) TCP durum tükenmesi
SYN flood: 'tcp _ syncookies = 1', artırılmış 'tcp _ max _ syn _ backlog', 'synack _ retries = 3', pps.
ACK/RST flood: düşük seviyeli limitler, gayri meşru dizilerin taranması (nftables/ebpf).
Sınırda Conntrack-less: durumsuz imza ile filtrenin mümkün olduğu durum tablolarını boşa harcamayın.
7) HTTP/2/3 ve akıllı L7 saldırıları
HTTP/2 Hızlı Sıfırlama: RST çerçevelerinin frekansını ve açık akışların sayısını sınırlayın; Anomali durumunda bağlantıyı kapatın.
Akış kötüye kullanımı: Eşzamanlı akışları, üstbilgi boyutunu, maksimum kare boyutunu лимит.
QUIC/HTTP/3: limit Initial pps, enable Retry; Kısa el sıkışma süreleri.
NGINX (parça L7)
nginx
Header/body constraint client_max_body_size 1m;
large_client_header_buffers 4 8k;
HTTP/2 limits http2_max_concurrent_streams 128;
http2_recv_buffer_size 256k;
Rate limit by IP (example)
limit_req_zone $binary_remote_addr zone=reqs:20m rate=100r/s;
limit_req zone=reqs burst=200 nodelay;
Elçi (sıfırlama karşıtı ve limitler)
yaml http2_protocol_options:
max_concurrent_streams: 128 initial_stream_window_size: 65536 max_outbound_frames: 10000 stream_error_on_invalid_http_messaging: true
8) Yavaş saldırılar ve kaynak koruması
Slowloris/slow-read/slow-POST: 'proxy _ request _ bufffering on', düşük boşta kalma-zaman aşımı, minimum kabul edilebilir 'read _ rate' seçeneğini etkinleştirin.
İstek başına uzun bir paket arası aralıkta bağlantıları sonlandırın.
Uygulamada - erken okuma/vücut atma, JSON boyut/derinlik sınırları.
9) L7 filtreleme: kim daha önemli - geçmesine izin verin
Trafik sınıflandırması: Bilinen iyi (mTLS/JWT ortakları), kayıtlı kullanıcılar, anonim.
Öncelikler: "pahalı" yazma yolları (mevduat/sonuçlar) - korumak, ama bayan doğruladı; okuma dizinleri - önbellek + gaz kelebeği.
Zorluk katmanı: Zirvede gri bölgeler için captcha/PoW/JS zorlukları.
10) Önbellek, birleştirme ve bozulma
Statik/yarı statik yanıtlar için kenar önbelleği, 'bayat-while-revalidate'.
Birleştirme isteği: paralel istekleri tek bir anahtara daraltın - proxy'de ve uygulamada.
Degrade modu: ikincil özellikleri devre dışı bırakın (kişiselleştirme, ağır raporlar), "hafif" sayfalar yayınlayın.
11) Gözlemlenebilirlik ve telemetri
Metrikler (POP/düğüm/küme başına):- L3/L4: 'pps _ in/out', 'bps _ in/out', 'drop _ pps {reason}', 'syn _ recv', 'conntrack _ used/limit', 'xdp _ drop _ pps'.
- L7: 'requests _ total {route}', '429 _ total', 'challenge _ total {type}', 'h2 _ rst _ rate', 'slow _ req _ total'.
- Bağımlılıklar: CPU IRQ yumuşak/sert, NIC kuyruğu düşer, çalışma kuyruğu uzunluğu.
Günlükler: örneklenmiş ,/24 tarafından toplanmış, ASN, bağlantı noktaları ve imzalar; PII olmadan.
İzleme: beyaz listelerde etkinleştir, hata ayıklama için örneklemeyi genişlet.
12) Yanıt planları (runbook)
1. Algılama: pps/bps/429/h2_rst_rate eşiklerin tetiklenmesi.
2. Sınıflandırma: Seviye (L3/4/7), protokol (UDP/TCP/h2/h3), geo/ASN.
- Sağlayıcıda temizleme/kara delik profillerini etkinleştirme
- nftables/ebpf sınırlarını güçlendirmek,
- L7 limitlerini düşürmek ve zorlukları artırmak,
- QUIC (Initial flood) için yeniden denemeyi etkinleştir.
- 4. İletişim: durum sayfası, ortak bildirim şablonları.
- 5. Adli: PCAP yakalama 60-120 saniye, örnekleme üst konuşmacılar ASNs/portları.
- 6. Geriye dönük: güncelleme imzaları, eşikler, reflektör listeleri.
13) Test ve matkaplar
DDoS-matkap oyun kitapları üç ayda bir: sentetik UDP/HTTP patlamaları, yavaş trafik, HTTP/2 sıfırlama.
Oyun günü: Anycast, CDN'ler arasında geçiş/geçiş yapar,'kolay mod'a düşer.
Sağlayıcı doğrulama: SLA ovma, filtre açma/kapama süresi, maksimum pps/bps.
14) Antipatterns
Hacimsel saldırı için sadece L7-WAF güvenin.
Kaldırımda uRPF/ACL yok ve conntrack-ağır filtreleme kafa kafaya.
Sınırsız başlık/gövde ve zirvede uzun süre hayatta kalma.
Anycast/multi-edge olmadan tek bölge/ROR.
NIC/IRQ/CPU envanteri ve kuyruk izleme yok.
Önbellek/birleştirme yok - arka uç için ekstra RPS.
15) iGaming/Finansın Özellikleri
Geçici zirveler (maçlar/derbi/loto çekilişleri): POP kapasitesini önceden genişletin, agresif bir katsayılar önbelleği ekleyin, anonim insanlar için kanarya zorlukları koyun.
Ödeme/çıkış yolları: mTLS ile ayrı bir kenar havuzu, kısa zaman aşımları, rekabet sınırları; 0-RTT yok.
Jeo-politikacılar: bölgesel izin-ışıkları, ASN-filtreleme "barındırma", hızlı geo-anahtarlama.
Antifraud ile kesişme: Hız limitleri ve Risk API, bir DDoS olayında "sert'bir profile girer.
16) Prod Hazırlık Kontrol Listesi
- Anycast или çok kenarlı/CDN; ovma kanalları kontrol edildi.
- Sınır-ACL/uRPF; nftables/ebpf/XDP profilleri, bağlantısız filtreleme.
- Sysctl TCP/SYN ayarlama, UDP amplifikatör portları için limit pps.
- HTTP/2/3 sınırları (akışlar, çerçeveler, başlıklar), yavaş koruma, gövde/başlık sınırları.
- L7 sınırları ve meydan okuma; Önbellek ve çevre üzerinde birleşiyor.
- Panolar pps/bps/conntrack/IRQ + L7 RED; h2_rst/429 anomalileri uyarır.
- Runbook/playbooks, sağlayıcı kişileri, tek tıklamayla etkinleştirme profilleri.
- Öğretiler: patlamalar, yavaş, HTTP/2 sıfırlama; Rapor ve kayıt iyileştirmeleri.
- Ödeme/kritik yollar, mTLS ve katı sınırlar için bölünmüş havuzlar.
17) TL; DR
Katmanlı koruma: Anycast + ovma ses seviyesini düşürür, eBPF/XDP + nftables çöp yığınına keser, L7 sınırları/zorluklar/önbellek SLA'ları korur. TCP'yi ayarlayın (SYN çerezleri, backlog), UDP amplifikatörlerini sınırlayın, HTTP/2/3 limitleri ve yavaş koruma ayarlayın. Bir runbook alın ve eğitin; IGaming için - yoğun saatlerde kenarı önceden genişletin ve mTLS ve sabit limitlerle ödeme yollarını ayırın.