DDoS пришёл — а вы не готовы. Защита без переезда
Утро понедельника. Сайт не открывается. Хостер пишет: «Ваш аккаунт временно отключён, на ваш IP идёт DDoS, мы режем трафик, чтобы не страдали соседи». Параллельно директор спрашивает, когда вернётся приём заявок. Вы лезете в панель, видите там «нулёвый» график трафика и понимаете, что делать дальше непонятно.
DDoS почти всегда приходит в самый неудобный момент — перед запуском акции, в день релиза, в выходные. Готовиться к нему после начала атаки — поздно. Но и переезжать «куда-то под защиту» в панике — тоже плохая идея.
Почему обычный сервер беззащитен
Стандартный VPS у хостера рассчитан на нормальный трафик. У него нет ни L3/L4-фильтрации на входе, ни L7-инспекции запросов. Когда на сервер прилетает 5 Гбит/с мусора — канал хостинг-провайдера забивается раньше, чем что-либо успевает среагировать. Хостер защищает не вас, а соседей по стойке: ваш IP уводят в blackhole, и пакеты просто перестают доходить.
Какие бывают атаки
Чтобы выбрать защиту, надо понимать, чем по вам бьют:
- L3/L4 — объёмные. SYN flood, UDP amplification, ICMP flood. Цель — забить канал. Меряются в Гбит/с и Mpps.
- L7 — прикладные. HTTP flood, slowloris, атаки на дорогие эндпоинты (поиск, регистрация, корзина). Трафик небольшой, но кладёт PHP/БД. Самое неприятное: выглядит как обычные запросы.
- Гибридные. Сначала шум на L4, чтобы отвлечь, под прикрытием — точечный L7 по логину или API.
WAF спасает от L7 и не спасает от L3. Anti-DDoS-провайдер с scrubbing-центром спасает от L3/L4 и обычно умеет L7 поверх. CDN типа Cloudflare/Qrator — комбинация и того, и другого.
Чем защищаться
Три класса инструментов, которые часто путают:
- CDN с защитой (Cloudflare, Qrator, DDoS-Guard, StormWall). Меняете NS — и весь трафик идёт через их сеть. Они фильтруют и отдают вам только чистое.
- Scrubbing-центр (Selectel DDoS Protection, RU-CENTER, Servicepipe). Подключается через BGP-анонс или GRE-туннель: трафик заворачивается в их центр очистки и приходит к вам уже фильтрованным.
- WAF (ModSecurity, NAXSI, BitNinja, отдельно или как часть CDN). Фильтрует прикладной слой — SQLi, XSS, бот-трафик, abuse-эндпоинтов.
Для большинства сайтов хватает CDN-провайдера с anti-DDoS — это быстрее всего и дешевле всего.
Мигрировать хостинг — не нужно
Главное заблуждение: «чтобы защититься от DDoS, надо переехать на защищённый хостинг». В 90% случаев — нет. Защита подключается поверх существующей инфраструктуры:
- меняете A/AAAA-записи или NS на провайдера защиты;
- провайдер принимает весь трафик у себя, чистит и проксирует на ваш реальный IP;
- реальный IP закрываете firewall'ом, разрешая входящий только с подсетей провайдера, чтобы атакующие не нашли вас в обход.
Сервер, код, база, домен — на месте. Меняется только маршрут трафика. Подключение в среднем занимает несколько часов, помогу подключить и закрыть origin от обхода, если делаете это в первый раз — там есть нюансы с SSL, real-ip и whitelisting.
Полезный быстрый чек: после подключения CDN убедитесь, что прямой IP не светится в DNS-истории и в SSL-сертификатах:
dig +short A old-direct.example.com
curl -s 'https://crt.sh/?q=example.com&output=json' | jq
Если прямой IP по-прежнему резолвится — атакующие найдут его за 5 минут через сервисы вроде SecurityTrails, и защита станет бесполезной.
Что подготовить заранее
DDoS — это не «когда-нибудь», это вопрос времени. Минимум, что стоит сделать в спокойный день:
- завести аккаунт у CDN-провайдера (Cloudflare — бесплатный план уже даёт базовую защиту);
- настроить rate-limit на nginx для дорогих эндпоинтов (
limit_req_zone); - закрыть админку и API по IP или ключу;
- логировать User-Agent и иметь возможность быстро забанить ботов по сигнатуре;
- держать наготове «режим осады»: статичную страницу-заглушку и переключение на неё в один клик.
Запомнить
- DDoS — это не один тип атаки, а минимум три слоя. Защита должна закрывать все.
- Хостер вас не защитит — он защищает себя от вас. Защита — отдельный сервис.
- Менять хостинг ради защиты не нужно: трафик заворачивается через scrubbing/CDN.
- После подключения обязательно прячьте прямой IP, иначе всё впустую.
Если атака уже идёт или хочется подстраховаться заранее — напишите. Подключу анти-DDoS за 1 рабочий день без смены хостинга, закрою origin от обхода, настрою WAF-правила и rate-limit'ы под ваши эндпоинты. Сайт продолжит работать ровно с того же сервера.
Также может быть интересно
Почему может быть нужен свой GitLab
Представьте: 10 утра, телефон разрывается. Клиент просил выкатить доработки сегодня утром, бюджет уже крутится, трафик льётся на новую страницу, которой ещё нет на проде.
Читать далее →
Когда сервер падает в 3 ночи: мониторинг и администрирование
Узнавать о падении сервера от клиентов — дорогое удовольствие. Разбираем, как настроить мониторинг, чтобы система сама звала на помощь.
Читать далее →