DDoS qorunması və filtrasiya paketi
1) Niyə lazımdır
DDoS resursların «kütləvi deqradasiyasıdır»: zolaq/pps, vəziyyət cədvəlləri, nüvənin CPU/IRQ, qoşulma hovuzları, tətbiq limitləri. Məqsəd qorunmanın təbəqələşməsidir: şəbəkənin perimetrində həcmi söndürmək, protokol anomaliyalarını TCP/IP yığınına qədər zərərsizləşdirmək və legitim istifadəçilər üçün SLO saxlayaraq L7-də arzuolunmaz sorğuları kəsməkdir.
2) Hücum sinifləri
2. 1 L3/L4 (volumetric/protocol)
Volumetric: UDP flood, UDP-reflection/amplification (DNS/CLDAP/NTP/SSDP/memcached/mDNS), GRE flood.
Protocol/state exhaustion: SYN flood, ACK/RST flood, TCP connection-exhaustion, ICMP flood, TCP fragmentation.
QUIC/UDP xüsusiyyətləri: yanlış Initial/Retry fırtına, spoofed mənbə.
2. 2 L7 (application)
HTTP/1. 1: bahalı marşrutlar üçün sorğular, header oversize/field smuggling.
HTTP/2: Rapid Reset, stream-flood, HEADERS flood, PRIORITY abuse.
HTTP/3 (QUIC): bağlantı/axınlar tamamlanmadan, Initial flood.
Slow-атаки: slowloris/slow-read/slow-POST.
gRPC/WebSocket: sonsuz axınlar, message-flood, böyük çərçivələr.
3) Əsas müdafiə arxitekturası
1. Anycast + Scrubbing
Qlobal olaraq trafiki püskürtün və provayder scrubbing mərkəzləri vasitəsilə sürün (kənarda volumetrik/spufing kəsin).
2. Multi-CDN / Multi-Edge
Domen paylanması (veb, API, statik), qorunma aqreqasiyası və read-yük üçün cache.
3. Onun perimetri aşağı səviyyəli filtrlər
Border marşrutlayıcılarında ACL (RFC1918, bogon, qəsdən yanlış portlar).
eBPF/XDP üçün early-drop işarələri və rate-limitləri conntrack qədər.
4. L7-perimetr (NGINX/Envoy/WAF)
RPS açarları, challenge (captcha/PoW), cache, «bahalı» yolların prioritetləşdirilməsi.
5. Daxili sabitlik
Qoşulma hovuzları, növbələr, circuit/timeout, xidmətlərin izolyasiyası (bulkhead) və «sıxaclar» (shedder) ilə autoscaling.
4) Şəbəkə «klapanları»: dərhal işə salmaq üçün nə
4. 1 Linux sysctl (nüvə/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: əsas filtrlər və paketlərdə 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 (ideya)
spoofed mənbə ilə Early-drop paketleri (uRPF router qəbul edilir).
pps per/32 və per/24 heş-baketlər; dinamik «karantin» mənbələri.
UDP-reflection imzaları: DNS response-like (kontekstdən kənarda süzülür).
5) UDP amplifikasiya: inventar və bloklar
Tez-tez reflektorlar/gücləndiricilər: DNS (open resolvers), NTP (monlist), CLDAP, SSDP, mDNS, Memcached (UDP), Chargen.
Tədbirlər:- Bağla/UDP xidmətlərini məhdudlaşdırın, açıq limanları minimuma endirin.
- perimetri məşhur limanları üçün pps/bitrate məhdudlaşdırın.
- DNS tövsiyəsi: yalnız öz şəbəkələri üçün rekursiv, RRL (Response Rate Limiting), ANY-nin minimuma endirilməsi.
- NTP - etibarlı yalnız «butstrap», ictimai üçün 'noquery'.
6) TCP state exhaustion
SYN flood: 'tcp _ syncookies = 1', artan 'tcp _ max _ syn _ backlog', 'synack _ retries = 3', pps üzrə drop.
ACK/RST flood: aşağı səviyyəli limitlər, qeyri-legitim ardıcıllıqlar (nftables/ebpf).
Borderdə Conntrack-less: stateless işarəsi ilə filtrin mümkün olduğu yerdə state cədvəllərini sərf etməyin.
7) HTTP/2/3 və «ağıllı» L7 hücumları
HTTP/2 Rapid Reset: RST frekansı və açıq axınların sayı; anomaliyalar zamanı əlaqəni bağlamaq.
Stream abuse: лимит concurrent streams, headers size, max frame size.
QUIC/HTTP/3: Initial pps məhdudlaşdırmaq, Retry daxil; qısa vaxt handshake.
NGINX (L7 parçası)
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;
Envoy (anti-reset və limitlər)
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) Slow-hücum və resurs qorunması
Slowloris/slow-read/slow-POST: 'proxy _ request _ buffering on', aşağı idle-timeout, minimal məqbul 'read _ rate' daxil edin.
Sorğu üçün uzun paket aralığında bağlantıları dayandırın.
Tətbiqdə - bədənin erkən oxunması/atılması, JSON ölçüsü/dərinliyi limitləri.
9) L7 filtrasiya: kim daha vacibdir - keçsin
Trafik təsnifatı: known good (mTLS/JWT tərəfdaşları), qeydiyyatdan keçmiş istifadəçilər, anonim.
Prioritetlər: «bahalı» write-marşrutlar (depozitlər/nəticələr) - təsdiq olunanları qorumaq, lakin qaçırmaq; read-kataloqlar - cache + throttle.
Challenge-qat: captcha/PoW/JS-pik boz zonalar üçün challenge.
10) Cache, coalescing və deqradasiya
Statik/kvazistatik cavablar üçün Edge-cache, 'stale-while-revalidate'.
Request coalescing: paralel sorğuları bir açara - proxy və tətbiqdə vurun.
Degrade rejimi: ikinci dərəcəli fişləri (personallaşdırma, ağır hesabatlar) söndürmək, «yüngül» səhifələr vermək.
11) Müşahidə və telemetriya
Metrika (per ROR/düyün/klaster):- 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`.
- Asılılıq: CPU IRQ soft/hard, NIC queue drops, run-queue length.
Loqi :/24, ASN, liman və siqnal ilə yığılmış sample; PII olmadan.
Tracing: ağ siyahılar daxil, təcili hata ayıklamaq üçün sampling genişləndirmək.
12) Cavab planları (runbook)
1. Detekt: pps/bps/429/h2_rst_rate astanalarının işə salınması.
2. Təsnifat: səviyyə (L3/4/7), protokol (UDP/TCP/h2/h3), geo/ASN.
- scrubbing/blackhole profillərini provayderə daxil edin,
- nftables/ebpf limitləri gücləndirmək,
- L7 limitlərini azaltmaq və çətinlikləri artırmaq,
- QUIC (Initial flood) üçün Retry daxil edin.
- 4. Rabitə: status-səhifə, tərəfdaşlara bildiriş şablonları.
- 5. Forensics: 60-120 saniyə PCAP tutma, top talkers ASNs/ports nümunə.
- 6. Retrospektiv: siqnalları, eşikləri, reflektorların siyahılarını yeniləyin.
13) Test və təlimlər
DDoS-drill playbook rüblük: sintetik UDP/HTTP burst, slow-trafik, HTTP/2 reset.
Game day: Anycast keçid/CDN arasında miqrasiya, «yüngül rejimi» qədər deqradasiya.
Provayder təsdiqi: SLA scrubbing, filtr açma/söndürmə vaxtı, max pps/bps.
14) Antipattern
Yalnız volumetrik hücumda L7-WAF etibar edin.
Borderdə uRPF/ACL və conntrack-heavy «alın» filtrasiyası yoxdur.
Limitsiz başlıqlar/bədən və pik uzun keep-alive.
Anycast/multi-edge olmadan vahid region/ROP.
NIC/IRQ/CPU və növbə monitorinqi üçün ehtiyatların olmaması.
Heç bir cache/koalitesing - arxa planda əlavə RPS.
15) iGaming/Maliyyə Xüsusiyyətləri
Müvəqqəti zirvələr (matçlar/derbi/loto püşkatmalar): əvvəlcədən POP tutumunu genişləndirin, aqressiv cache əmsalları daxil edin, anonim üçün canary-challenge qoyun.
Ödəniş/çıxış marşrutları: mTLS ilə ayrıca edge-hovuz, qısa vaxtlar, rəqabət limitləri; heç bir 0-RTT.
Geo-siyasətlər: regional allow-laysts, ASN-filtrasiya «hosting», sürətli geo-keçid.
Antifrodla kəsişmə: velocity limitləri və Risk API DDoS hadisəsi zamanı «sərt» profilə keçir.
16) Prod hazırlıq yoxlama siyahısı
- Anycast или multi-edge/CDN; scrubbing kanalları yoxlanılır.
- Border-ACL/uRPF; nftables/ebpf/XDP profilləri, conntrack-less filtrasiya.
- Sysctl-tuning TCP/SYN, UDP port gücləndiriciləri üçün limity pps.
- HTTP/2/3 limitlər (streams, frames, headers), slow-müdafiə, body/header-limits.
- L7-limitləri və challenge; perimetri cache və coalescing.
- Dashboard pps/bps/conntrack/IRQ + L7 RED; h2_rst/429 anomaliyasında alertlər.
- Runbook/playbook, provayder əlaqə, profil daxil bir-click.
- Təlimlər: Burst, slow, HTTP/2 reset; hesabat və təkmilləşdirmələrin fiksasiyası.
- Ödəniş/kritik marşrutlar, mTLS və ciddi limitlər üçün ayrılmış hovuzlar.
17) TL; DR
Qoruyucu təbəqə: Anycast + scrubbing həcmi söndürür, eBPF/XDP + nftables yığına qədər zibil kəsir, L7-limitləri/çağırışlar/cache SLA saxlayır. TCP (SYN cookies, backlog) sazlayın, UDP gücləndiricilərini məhdudlaşdırın, HTTP/2/3 və yavaş qorunma limitlərini təyin edin. Runbook var və təlim; iGaming üçün - həddi pik saatlarda əvvəlcədən genişləndirin və mTLS və sərt limitlərlə ödəniş yollarını ayırın.