DevOps

DDoS пришёл — а вы не готовы. Защита без переезда

Никита Литвяков
Никита Литвяков
Senior PHP / Laravel Backend Developer
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'ы под ваши эндпоинты. Сайт продолжит работать ровно с того же сервера.

#DevOps #DDoS
Поделиться:

Также может быть интересно