DDoS պաշտպանություն և ֆիլտրում
1) Ինչո՞ ւ է դա անհրաժեշտ
DDoS-ը ռեսուրսների «զանգվածային դեգրադացիա» է 'շերտեր/pps, պետության սեղաններ, CPU միջուկ/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/WindowSocket: անվերջ սթրիմներ, 108-flood, մեծ շրջանակներ։
3) Ռուսական պաշտպանության ճարտարապետությունը
1. Anycast + Scrubbing
Ներմուծումը գլոբալ և պոկել պրովայդերական scrubbing կենտրոնների միջոցով (volumetric/spufing)։
2. Multi-CDN / Multi-Edge
Ածխաջրածինների բազմազանությունը (վեբ, API, ստատիկա), պաշտպանության և քեշի ագրեգացիան read բեռի համար։
3. Ցածր մակարդակի ֆիլտրեր իր պարագծի վրա
ACL-ը բորդեր-երթուղիչների վրա (RFC1918, bogon, ակնհայտորեն կեղծ կոդեր)։
EBPF/XDP-ի համար early-drop ազդանշանների և rate-լիմիտների համար մինչև conntrack։
4. L7-պարիմետրը (NGINX/Envoy/WAF)
Սեղմելով RPS-ը, challenge (captcha/PoW), քեշը, «թանկ» ճանապարհների գերակայությունը։
5. Ներքին կայունություն
Պուլներ, գծեր, circuit/timeout, ծառայությունների մեկուսացում (bulkhead) և autoscaling հետ (sheder)։
4) Ցանցային «փականները» 'ի՞ նչ միացրեք անմիջապես
4. 1 Linux sctl (միջուկ/stek)
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-ը երթուղիչի վրա ողջունվում է)։
հեշ բակտերիաներ ppps per/32 և per/24; դինամիկ «կարանտին» աղբյուրներ։
UDP-refl.ru: ISO response-like-ի ստորագրությունները կոդավորման վրա (ֆիլտրել կոնտեքստից դուրս)։
5) UDP amplif.ru: Amplif.ru: Amplific
Հաճախակի արտացոլողներ/ուժեղացուցիչներ ՝ CSA (բաց resolvers), NTP (monlist), CLDAP, SSDP, mSSA, Memcached (UDP), Chargen։
Միջոցները
Փակել/սահմանափակել UDP ծառայությունները, նվազեցնել բաց կոդերը։
Պարագծի վրա սահմանափակվում է pps/bitrate հայտնի կոմպոզիցիաների համար։
RED առաջարկություն 'ռեկուրսիվ միայն իր ցանցերի համար, RRL (Response Rate Limiting), ANY-ի նվազեցումը։
NTP-ն միայն «կոշիկ» է վստահված, «www.query» հասարակական համար։
6) TCP state exhaustion
MSN flood: "tcp _ www.ncookies = 1", բարձրացված 'tcp _ max _ www.n _ backlog "," nack _ retries = 3 ", drop pps։
ACK/RST flood: ցածր մակարդակի լիմիտներ, անօրինական հաջորդականությունների (nftables/ebpf)։
Conntrack-less-ը բորդերի վրա 'չթողնել պետության սեղանները, որտեղ ֆիլտրը հնարավոր է ստատելեսային ազդանշանով։
7) HTTP/2/3 և «խելացի» L7 հարձակումները
HTTP/2 Rapid Reset: RST ֆրեյմերի հաճախականության սահմանը և բաց հոսքերի քանակը։ փակել կապը անոմալիաների հետ։
Stream abuse: лимит concurrent streams, headers size, max frame size.
QUIC/HTTP/3 'սահմանափակել Initial ppps, ներառել 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 (anti reset և limits)
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 on», ցածր idle-timeout, նվազագույն ընդունելի «read _ rate»։
Դադարեցնել կապերը երկար միջբանկային ընդմիջումով հարցման համար։
Հանդիպման ժամանակ 'վաղ կարդալը/մարմնի հեռացումը, JSON չափի/խորության սահմանաչափերը։
9) L7 ֆիլտրում. Ով ավելի կարևոր է, թող անցնի
Կոդավորման դասակարգումը 'known good (mTSA/JWT), գրանցված օգտագործողները, անանուն։
Առաջնահերթությունները '«թանկ» write-երթուղիները (դեպոզիտներ/եզրակացություններ) - պաշտպանել, բայց բաց թողնել հաստատված։ read-line - cash + throttle։
Challenge շերտը 'captcha/PoW/JS-Chelengi մոխրագույն գոտիների համար պիկի ժամանակ։
10) Քաշ, coalescing և դեգրադացիա
Edge-cash ստատիկ/քվասիստատիկ պատասխանների համար, «stale-wile-revalidate»։
Request coalescing: Զուգահեռ հարցումներ անել մեկ բանալին 'գրանցամատյանում և գրանցամատյանում։
Degrade-ռեժիմը 'անջատել երկրորդական ֆիտները (կերպարներ, ծանր հաշվետվություններ), տալ «թեթև» էջեր։
11) Դիտողությունն ու հեռուստատեսությունը
Մետրիկները (per ROR/հանգույց/կլաստեր)
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։
Logs: semple, համախմբված/24, ASN, պորտալներ և ազդանշաններ։ Առանց PII-ի։
Թրեյսինգը 'ներառել սպիտակ ցուցակներում, անհապաղ ընդլայնել սեմպլինգը կարգաբերման համար։
12) Մրցույթի պլանները (runbook)
1. Մանկական 'pps/bps/429/h2 _ rst _ rate։
2. Դասակարգումը 'մակարդակը (L3/4/7), արձանագրությունը (UDP/TCP/h2/h3), geo/ASN։
3. Փականներ
միացրե՞ լ եք scrubbing/blackhole պրովայդերի վրա,
nftables/ebpf limites,
Նվազեցնել L7-limits և բարձրացնել Chelengi,
Ներառել Retry-ը QUIC-ի համար (Initial flood)։
4. Հաղորդակցություն 'կարգավիճակ-էջ, ծանուցման ձևանմուշներ։
5. Ֆորենզիկա 'PCAP-ի գրավումը 60-120 վայրկյանում, top talkers ASNs/ports ընտրելը։
6. Հետադարձ հայացք ՝ թարմացնել ազդանշանները, շեմերը, արտացոլողների ցուցակները։
13) Փորձարկում և ուսուցում
DDoS-intekvartal-ի պլեյբուսները 'սինթետիկ UDP/HTTP բուրգեր, slow-2019, HTTP/2 reset։
Game day: www.Anycrim/CDN-ի միջև, դեգրադացիան մինչև «թեթև ռեժիմի»։
Պրովայդերի վերաֆինանսավորումը 'SLA scrubbing, ֆիլտրերի միացման/անջատման ժամանակը, max ppps/bps։
14) Անտիպատերնի
Ապավինել միայն L7-WAF-ին volumetric-հարձակման ժամանակ։
URPF/ACL բացակայությունը բորդերի վրա և conntrack-heavy ֆիլտրում «լո»։
Անսահմանափակ վերնագրեր/մարմիններ և երկար keep-alive գագաթնակետին։
Միասնական տարածք/ROR առանց Anycrim/multi-edge։
NIC/IRQ/CPU և հերթերի մոնիտորինգի բացակայությունը։
Ոչ մի քաշա/կոալեսինգի 'լրացուցիչ RPS-ը backend-ի վրա։
15) iGaming/ֆինանսական առանձնահատկությունները
Ժամանակավոր պիկի (խաղեր/դերբի/լոտո-վիճակախաղեր) 'նախապես ընդլայնել POP-ի հզորությունը, միացնել գործակիցների ագրեսիվ քեշը, տեղադրել կանարի-chelengi անանուն անանուն։
Հիբրիդային/եզրակացական երթուղիներ 'առանձին edge-փուլ mTSA-ից, կարճ թայմաուտներ, մրցակցության սահմաններ։ 0-RTT։
Գեո քաղաքական գործիչները 'տարածաշրջանային allow-lists, ASN ֆիլտրը «հոստինգներ», արագ geo-փոխանցում։
Հակաֆրոդի հետ խաչմերուկը 'velocity-limits և Risk API-ն անցնում են DDoS-ի «կոշտ» պրոֆիլին։
16) Չեկ-թուղթ պատրաստակամության համար
- Anycast или multi-edge/CDN; ստուգված են scrubbing ալիքները։
- Border-ACL/uRPF; nftables/ebpf/XDP պրոֆիլներ, conntrack-less ֆիլտրում։
- Corsctl-tuning TCP/CSN, limity pps UDP-2019-ուժեղացուցիչների համար։
- HTTP/2/3 limits (streams, frames, headers), slow-պաշտպանություն, body/header-limits։
- L7-limits և challenge; kash և coalescing պարագծի վրա։
- Dashbords pps/bps/conntrack/IRQ + L7 RED; ալտերտները h2 _ rst/429 անոմալիայի վրա։
- Runbook/pleybuks, պրովայդերի կոնտակտներ, one-click no։
- Ուսմունքներ 'բուրստներ, սլոու, HTTP/2 reset; հաշվետվություն և բարելավումների ամրագրում։
- Բաժանված փամփուշտներ մետրոպոլիտենի/քննադատական երթուղիների, mTRK-ի և խիստ սահմանների համար։
17) TL; DR
Ծածկեք պաշտպանությունը 'Anycrim + scrubbing gast, eBPF/XDP + nftables կտրում են աղբը ապակու, L7-limits/chelengi/kash պահպանում են SLA-ը։ TCP (MSN cookies, backlog), սահմանափակեք UDP ուժեղացուցիչները, տեղադրեք HTTP/2/3 և slow պաշտպանություն։ Ունեցեք runbook և սովորեցրեք այն։ iGaming-ի համար, նախօրոք ընդլայնեք edge-ը գագաթների ժամերին և բաժանեք հիբրիդային ճանապարհները mTRK-ով և կոշտ լիմիտներով։