⚙️ Теория
🌊 Типы атак
Обычно выделяют три крупных класса:
Volumetric(сaturation канала, вплоть до Tbps масштаба);Protocol attacks(эксплуатация state/protocol behavior);Application attacks(L7, HTTP/S API pressure).
🛡️ Архитектурные принципы защиты
Anycast: распределить входящий поток по edge.Traffic scrubbing: очистка и фильтрация на внешнем защитном слое.Rate limiting: ограничить стоимость запроса на ключ.Challenge-response: отделить человека от автоматизированного потока.Connection limiting: не дать исчерпать таблицы соединений и worker limits.
Надёжная защита это комбинация этих механизмов, а не один «серебряный» инструмент.
🐢 Slow HTTP mitigation
Для slowloris/slow POST критично ограничить время и состояние на клиент:
client_header_timeout;client_body_timeout;- лимиты соединений на IP/account;
- контролируемая буферизация и лимиты тела запроса.
Цель: не позволить дешёвыми медленными соединениями удерживать дорогие ресурсы edge/origin.
❓ Что нужно уметь объяснить
Почему anycast помогает против DDoS?
Атака распределяется на множество PoP, что снижает локальную концентрацию перегрузки и повышает шанс удержать сервис.
Почему challenge-response полезен именно на L7?
Потому что отделяет браузер/человека от ботов там, где трафик формально выглядит валидным HTTP.
Почему slow HTTP требует таймаутов, а не только bandwidth-защиты?
Slow-атака может почти не потреблять канал, но «занимать» connection/request state. Поэтому важны именно таймауты и лимиты состояния.
🧪 Практика
1. Установите таймауты и лимиты в NGINX
http {
client_header_timeout 10s;
client_body_timeout 10s;
send_timeout 15s;
limit_conn_zone $binary_remote_addr zone=conn_per_ip:20m;
server {
location / {
limit_conn conn_per_ip 20;
proxy_pass http://backend;
}
}
}
2. Проверьте поведение на медленных клиентах
- сгенерируйте slow headers/body трафик;
- проверьте, что соединения закрываются по таймаутам;
- проверьте, что origin не уходит в saturation.
3. Включите challenge/rate policies на edge
Сравните до/после:
- входящий трафик на origin;
- p95/p99;
- ошибочные блокировки (FP).
4. Мониторьте ключевые индикаторы
- active connections;
- handshake/connection rate;
- доля challenge/block;
- origin CPU и upstream timeouts.
🧾 Вывод
Anti-DDoS это архитектура эшелонированной защиты: распределение нагрузки, ранняя фильтрация и строгий контроль state/timeouts.
Особенно для L7/slow-атак важно помнить: угроза не в bandwidth, а в удержании ограниченных ресурсов обработки.
📚 Ссылки
- Cloudflare Learning: What is a DDoS attack?
- Cloudflare docs: Anycast network
- NGINX docs: client_header_timeout
- NGINX docs: client_body_timeout
- NGINX docs: limit_conn
- NGINX docs: limit_req