Если DDoS уже идёт, задача не в том, чтобы «забанить несколько IP», а в том, чтобы удержать origin доступным, отфильтровать лишний трафик выше по сети и сохранить данные для разбора после инцидента.
1. Определите, где заканчивается ресурс
- забит внешний канал;
- закончились connections;
- CPU/RAM origin;
- БД;
- конкретный URL/API;
- DNS.
Если канал уже полностью заполнен до вашего сервера, локальный firewall проблему не решит — фильтрация нужна у провайдера/CDN.
2. Включите защиту CDN/WAF
Переведите public traffic через anti-DDoS/CDN, включите managed rules, caching и rate limiting для дорогих endpoint’ов. Чем меньше запросов доходит до origin, тем выше запас устойчивости.
3. Закройте прямой доступ к origin
После перевода через CDN origin должен принимать HTTP/HTTPS только с доверенных адресов CDN/load balancer. Иначе атакующий просто обойдёт защитный слой по реальному IP.
4. Свяжитесь с хостером
Для volumetric attack upstream-провайдер видит ситуацию раньше вас и может включить scrubbing, blackhole или другой mitigation. Не ждите полного отключения VPS.
5. Кешируйте то, что можно
Статика и безопасные публичные страницы должны обслуживаться edge-cache без обращения к PHP/Node/БД.
6. Защитите дорогие URL
Login, search, API, XML-RPC, export и другие тяжёлые endpoint’ы ограничивайте отдельно. Rate limit должен учитывать реальных пользователей и не превращать защиту в само-DDoS.
7. Сохраните данные инцидента
- графики traffic/requests;
- top URL;
- ASN/country;
- HTTP methods/status;
- время начала/окончания;
- изменения конфигурации во время mitigation.
8. После атаки
Не выключайте временные правила автоматически. Сначала сравните normal baseline, уберите только чрезмерные ограничения и проверьте, не был ли DDoS прикрытием для другой атаки.
Старая версия статьи содержала перечисление инструментов для создания DDoS. Для владельца сайта эта информация не нужна, поэтому материал теперь полностью посвящён защите и incident response.
