DDoS коргоо жана чыпкалоо пакеттери
1) Эмне үчүн керек
DDoS ресурстардын "массалык деградациясы" болуп саналат: тилке/pps, шарттар таблицалары, ядро/IRQ процессору, байланыш пулдары, колдонмо чектери. Максаты - коргоону катмарлаштыруу: тармактын периметри боюнча көлөмдү өчүрүү, протоколдук аномалияларды TCP/IP стегине чейин нейтралдаштыруу жана L7 боюнча мыйзамдуу колдонуучулар үчүн SLO сактоо менен керексиз суроо-талаптарды кесип салуу.
2) кол класстары
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 өзгөчөлүктөрү: жалган Initial/Retry бороон, spoofed source.
2. 2 L7 (application)
HTTP/1. 1: кымбат маршруттар үчүн суроо-талап, header oversize/field smuggling.
HTTP/2: Rapid Reset, stream-flood, HEADERS flood, PRIORITY abuse.
HTTP/3 (QUIC): бүтпөгөн байланыштар/агымдар, Initial flood.
Slow-атаки: slowloris/slow-read/slow-POST.
gRPC/WebSocket: чексиз агымдар, message-flood, чоң кадрлары.
3) негизги коргоо архитектурасы
1. Anycast + Scrubbing
Global жол чачып жана жөнөтүүчү scrubbing борборлору аркылуу кууп (четинде volumetric/spufing кесип).
2. Multi-CDN / Multi-Edge
Домендерди бөлүштүрүү (веб, API, статика), коргоо агрегациясы жана окуу жүктөмү үчүн кэш.
3. Анын периметри боюнча төмөн деңгээл чыпкалар
Бордер-роутерлерде ACL (RFC1918, bogon, атайылап жалган порттор).
eBPF/XDP early-drop үчүн conntrack чейин белгилер жана rate-лимиттери боюнча.
4. L7 периметри (NGINX/Envoy/WAF)
RPS ачкычтар кысуу, challenge (captcha/PoW), кэш, "кымбат" жолдорду артыкчылык.
5. Ички туруктуулук
Pool байланыш, кезек, circuit/убакыт, обочолонуу кызматтары (bulkhead) жана autoscaling менен "тыгындар" (shedder).
4) Тармак "клапандар": ошол замат күйгүзүү
4. 1 Linux sysctl (ядро/стек)
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: базалык чыпкалар жана 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 (идея)
Early-drop пакеттерди spoofed булагы менен (маршрутизатор боюнча uRPF кабыл алынат).
pps per/32 жана per/24 хеш-бакеттер; динамикалык "карантин" булактары.
UDP-reflection кол тамгалар: DNS response-like кирүү (контексттен тышкары чыпкалоо).
5) UDP amplification: жабдуулар жана блоктор
Тез-тез чагылдыргычтар/күчөткүчтөр: DNS (open resolvers), NTP (monlist), CLDAP, SSDP, mDNS, Memcached (UDP), Chargen.
Чаралар:- Жабуу/UDP кызматтарын чектөө, ачык портторду азайтуу.
- периметри белгилүү порттор үчүн pps/битрейт чектөө.
- DNS-сунуш: өз тармактары үчүн гана рекурсивдик, RRL (Response Rate Limiting), ANY минималдаштыруу.
- NTP - гана "bootstrap" ишенимдүү, коомдук үчүн "noquery".
6) TCP state exhaustion
SYN flood: 'tcp _ syncookies = 1', жогорулатылган 'tcp _ max _ syn _ backlog', 'synack _ retries = 3', pps боюнча drop.
ACK/RST агымы: төмөн деңгээл чеги, мыйзамсыз ырааттуулугу (nftables/ebpf).
Conntrack-less бордер боюнча: чыпкасы stateless-белги боюнча мүмкүн болгон жерде мамлекеттик таблицаларды сарптоо эмес.
7) HTTP/2/3 жана "акылдуу" L7 кол салуу
HTTP/2 Rapid Reset: RST-кадрлардын жыштык чеги жана ачык агымдардын саны; аномалиялар менен байланышты жабуу.
Stream abuse: лимит concurrent streams, headers size, max frame size.
QUIC/HTTP/3: Initial pps чектөө, Retry камтыйт; кыска убакыт handshake.
NGINX (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;
Envoy (анти-reset жана чектөөлөр)
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 кол салуу жана ресурстук коргоо
Slowloris/slow-read/slow-POST: 'proxy _ request _ buffering', төмөн idle-timeout, минималдуу алгылыктуу 'read _ rate' кирет.
Узун пакеттер аралык аралыкта байланышты токтотуу.
Тиркемеде - эрте окуу/дене ыргытуу, JSON өлчөмүнүн/тереңдигинин чектери.
9) L7 чыпкалоо: ким маанилүү - өтүп кетсин
Жол классификациясы: жакшы билүү (mTLS/JWT өнөктөштөрү), катталган колдонуучулар, анонимдүү.
Артыкчылыктар: "кымбат" write-маршруттар (депозиттер/корутундулар) - коргоо, бирок тастыкталгандарды өткөрүп жиберүү; read-каталогдор - кэш + throttle.
Challenge-катмары: captcha/PoW/JS-челленджи чокусунда боз зоналар үчүн.
10) Кэш, coalescing жана деградация
статикалык/квазистатикалык жооптор үчүн Edge-кэш, 'stale-while-revalidate'.
Request coalescing: бир ачкычка параллелдүү суроо-талаптарды талкалап - прокси жана арыз.
Degrade-режими: (жекелештирүү, оор отчеттор), "жарык" барактар берүү, экинчи даражадагы ийгиликтерди өчүрүү.
11) Байкоо жана телеметрия
Метрика (per РОР/түйүн/кластер):- 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`.
- Көз карандылык: CPU IRQ soft/hard, NIC queue drops, run-queue length.
Логи :/24, ASN, порттор жана белгилер боюнча чогултулган; PII жок.
Tracing: Ак тизмелер боюнча киргизүү, өзгөчө сактоо үчүн самплинг кеңейтүү.
12) жооп пландары (runbook)
1. Детект: pps/bps/429/h2_rst_rate босоголорунун иштеши.
2. Классификация: деңгээл (L3/4/7), протокол (UDP/TCP/h2/h3), гео/ASN.
- тейлөөчү боюнча scrubbing/blackhole профилдерин киргизүү,
- nftables/ebpf лимиттерин күчөтүү,
- L7-чектөөлөрдү азайтуу жана кыйынчылыктарды жогорулатуу,
- QUIC (Initial flood) үчүн Retry кирет.
- 4. Байланыш: статус-бет, өнөктөштөргө кабарлоо шаблондору.
- 5. Forensics: 60-120 сек PCAP кармоо, Top Talkers ASNs/портторду тандоо.
- 6. Ретроспектива: белгилерди, босоголорду, чагылдыруучулардын тизмелерин жаңыртуу.
13) Тестирлөө жана машыгуу
DDoS-Drill Playbook чейрек сайын: синтетикалык UDP/HTTP бурст, slow-traffic, HTTP/2 reset.
Game day: Anycast которуу/CDN ортосундагы миграция, "жеңил режим" деградация.
Провайдерди текшерүү: SLA scrubbing, чыпкаларды ачуу/өчүрүү убактысы, макс pps/bps.
14) Антипаттерндер
volumetric кол салуу гана L7-WAF таянуу.
Жок uRPF/ACL бордер жана conntrack-heavy чыпкалоо "чекеге".
Чексиз аталыштар/дене жана узун keep-alive чокусунда.
Anycast/multi-edge жок бирдиктүү аймак/РОР.
NIC/IRQ/CPU жана кезек мониторинг боюнча запастардын жоктугу.
Эч кандай кэш/coalesing - кошумча RPS.
15) iGaming/каржы өзгөчөлүктөрү
Убактылуу чокулары (дан/дерби/loto чүчүкулак): алдын ала POP кубаттуулугун кеңейтүү, агрессивдүү кэш коэффициенттерин киргизүү, анонимдүү үчүн canary-челлендждерди коюу.
Төлөм/чыгаруу маршруттары: mTLS менен өзүнчө edge-пул, кыска таймауттар, атаандаштык лимиттери; эч кандай 0-RTT.
Гео-саясат: аймактык allow-laysts, ASN-чыпкалоо "хостинг", тез гео-которуу.
Антифрод менен кесилишүү: velocity-лимиттери жана Risk API DDoS окуясында "катуу" профилге өтөт.
16) Prod-даярдык чек тизмеси
- Anycast или multi-edge/CDN; текшерилген scrubbing каналдар.
- Бордер-ACL/uRPF; nftables/ebpf/XDP профилдери, conntrack-less чыпкалоо.
- Sysctl-тюнинг TCP/SYN, UDP-порт-күчөткүчтөр үчүн pps limity.
- HTTP/2/3 лимиттери (streams, frames, headers), slow-коргоо, body/header-limits.
- L7-лимиттери жана challenge; кэш жана coalescing периметри боюнча.
- Dashboard pps/bps/conntrack/IRQ + L7 RED; аномалия боюнча h2_rst/429.
- Runbook/playbook, жөнөтүүчүнүн байланыш, бир-click киргизүү профилдери.
- көнүгүүлөр: бурст, slow, HTTP/2 reset; отчеттуулук жана жакшыртууларды бекитүү.
- Төлөм/критикалык каттамдар үчүн бөлүнгөн бассейндер, mTLS жана катуу лимиттер.
17) TL; DR
Катмарлоо коргоо: Anycast + scrubbing көлөмүн өчүрүп, eBPF/XDP + nftables таштандыларды казып, L7-чеги/чакырык/кэш сактоо SLA. Тюнинг TCP (SYN кукилер, backlog), UDP күчөткүчтөрдү чектөө, HTTP/2/3 жана slow коргоо чектөөлөрдү коюу. Runbook бар жана аны үйрөтүү; iGaming үчүн - жогорку сааттарда edge алдын ала кеңейтүү жана mTLS жана катуу чектер менен төлөм жолдорун бөлүп.