Что такое DDoS: как работает атака и как защитить сервер — инструкция для новичка
Этот материал из блога HostingFAQ объясняет, что такое DDoS: как устроена атака, чем она отличается от DoS и почему сайт перестаёт открываться. Вы увидите основные виды атак, признаки на сервере и семь шагов защиты для VPS с Ubuntu 24.04. Если базовых мер мало, подскажем, какой следующий шаг выбрать.

Коротко
- DDoS (Distributed Denial of Service) — распределённый отказ в обслуживании: сервер перегружают запросами с тысяч устройств одновременно.
- DoS идёт с одного источника, DDoS — с множества заражённых устройств (ботнета), поэтому простая блокировка одного IP-адреса не помогает.
- Атаки делят на 3 класса: объёмные (забивают канал), протокольные (L3/L4, например SYN-флуд) и прикладные (L7, запросы к сайту на портах 80 и 443).
- Первый признак — трафик вырос в десятки раз, а сайт отвечает с задержкой в секунды или не открывается совсем.
- Базовая проверка занимает 2 минуты: команда ss -ant показывает, сколько соединений висит в состоянии SYN-RECV.
- Минимальная защита VPS — 7 шагов: SYN cookies, закрытые порты, лимит запросов в nginx, fail2ban, прокси или CDN, связь с хостером, бэкап.
- Небольшому сайту обычно хватает защиты хостера и бесплатного тарифа CDN; платная фильтрация нужна проектам, для которых простой стоит дороже защиты.
Что такое DDoS-атака простыми словами
DDoS (Distributed Denial of Service) — это распределённый отказ в обслуживании: сервер перегружают запросами с тысяч устройств одновременно, и он перестаёт отвечать. Если запросы идут с одного источника, это DoS. Представьте магазин, в который одновременно звонят сотни людей: линия занята, и настоящие покупатели не дозваниваются.
Взлома при этом нет. Сайт недоступен из-за перегрузки, а данные обычно не крадут. Запросы шлёт ботнет — сеть заражённых компьютеров, роутеров и камер, которой управляет один оператор. Мотивы разные: вымогательство, давление конкурентов, развлечение.
В этой статье мы разбираем сквозной пример: сайт на виртуальном сервере VPS с Ubuntu 24.04, веб-сервером nginx и каналом 1 Гбит/с. Если вы пока путаетесь в базе, сначала прочитайте, что такое хостинг и что такое IP-адрес. Атака перегружает один или несколько ресурсов этого сервера:
- канал связи: входящий поток упирается в 1 Гбит/с, и до сайта не доходят даже обычные запросы;
- процессор: он тратит все силы на обработку мусорных запросов;
- оперативная память: её занимают тысячи незавершённых соединений;
- таблица соединений: в ней заканчиваются свободные записи, и новые подключения отбрасываются.
Атака может длиться от нескольких минут до нескольких суток, поэтому о ней стоит знать заранее.
Как работает DDoS и чем он отличается от DoS
DoS (Denial of Service) — отказ в обслуживании с одного источника: один компьютер шлёт запросы, пока сервер не перестанет справляться. DDoS (Distributed Denial of Service) делает то же самое с множества устройств сразу. Один источник легко найти и заблокировать, а вот тысячи уже нет.
Источники в DDoS — это ботнет: сеть заражённых компьютеров, роутеров и IP-камер. Обычно в нём от тысяч до сотен тысяч узлов, а управляет ими один оператор через управляющий сервер. Он отправляет команду, и все узлы одновременно начинают слать обычные пакеты по сетевому протоколу, например ICMP (как работает ICMP). Блокировка одного IP-адреса не помогает: запросы приходят с тысяч других адресов.
Атакующий может усилить удар (amplification). Он отправляет на открытый DNS-сервер (Domain Name System) по UDP (User Datagram Protocol), порт UDP 53, короткий запрос с подделанным адресом отправителя — адресом жертвы. Ответ намного больше запроса и уходит на ваш сервер. Как устроены сами ответы, видно из материала про DNS-записи домена.
Из этого следуют разные задачи у сторон:
- атакующему важно количество источников, а не мощность каждого;
- защитнику нужно фильтровать трафик выше по сети — у хостера или CDN;
- канал в 1 Гбит/с на самом сервере переполнится раньше, чем nginx начнёт отбрасывать лишнее.

Какие бывают виды DDoS-атак
Атаки делят на три класса по тому, что именно они перегружают. Объёмные забивают канал: при канале 1 Гбит/с (гигабит в секунду) поток мощнее этой цифры не оставляет места обычным посетителям. Часто для этого усиливают трафик через DNS (Domain Name System) на порту UDP 53, а как устроены DNS-адреса, полезно знать заранее.
Протокольные атаки работают на уровнях L3 и L4 (сетевой и транспортный уровни модели OSI) и исчерпывают таблицы соединений. Классика — SYN-флуд, описанный в RFC 4987: бот шлёт поток TCP-запросов SYN и не завершает рукопожатие, а сервер копит полуоткрытые соединения. Признак на VPS — сотни и тысячи соединений в состоянии SYN-RECV, их считает команда ss -ant | grep -c SYN-RECV.
Прикладные атаки L7 выглядят как обычные запросы к сайту на портах 80 и 443, поэтому их сложнее отличить от посетителей: подробности о порте HTTPS пригодятся при настройке фильтров. Целью становятся и другие открытые службы, например порт 25 для почты.
| Класс | Что перегружается | Пример | Чем измеряется | Где отбивать |
|---|---|---|---|---|
| Объёмные | Канал связи | UDP-усиление через DNS | Гбит/с | У хостера или в CDN |
| Протокольные L3/L4 | Таблицы соединений, сетевой стек | SYN-флуд, UDP-флуд, ICMP-флуд (Internet Control Message Protocol) | Пакеты в секунду | Файрвол и SYN cookies на сервере, фильтрация у хостера |
| Прикладные L7 | Веб-сервер, nginx, база данных | HTTP-флуд на портах 80 и 443 | Запросы в секунду | Лимиты в nginx, прокси или CDN |
Как понять, что сервер атакуют: признаки и быстрая проверка
Первый признак атаки — трафик вырос в десятки раз, а сайт отвечает секундами или отдаёт ошибки 502, 503 и 504. Процессор на VPS загружен на 100%, а сеанс SSH (Secure Shell, удалённый вход) заметно тормозит. Если совпали хотя бы два признака, переходите к проверке.
Отличить атаку от наплыва посетителей после рекламы помогает журнал nginx: /var/log/nginx/access.log. При атаке в нём много запросов без реферера, с одинаковыми IP-адресами и одним User-Agent. Живые посетители приходят с разными браузерами и открывают разные страницы.
Проверка занимает около 2 минут. Сначала подключитесь к серверу: выберите SSH-клиент или откройте PuTTY в Windows. Затем выполните команды:
ss -ant | grep -c SYN-RECV— число полуоткрытых соединений; норма — единицы или десятки, при атаке — сотни и тысячи;top— какие процессы забрали процессор;iftop— с каких адресов идёт трафик и сколько Мбит/с он занимает.
Заранее поставьте мониторинг, чтобы получить ранний сигнал: настройте оповещения в Zabbix о росте трафика и нагрузки процессора. Порог задайте по обычной нагрузке сервера. Так вы заметите атаку за минуты, а не по жалобам посетителей.

Как защитить сайт и VPS от DDoS: пошаговая инструкция
Защита строится слоями: сначала вы закрываете слабые места на самом сервере, затем переносите часть нагрузки на внешний фильтр. Пример ниже рассчитан на VPS с Ubuntu 24.04 LTS, nginx из репозитория дистрибутива и каналом 1 Гбит/с. Если команды в терминале пока непривычны, сначала разберитесь с Linux для сервера.
Эти меры закрывают протокольные и прикладные атаки небольшой мощности. Они не требуют платных сервисов, а значения ниже можно сразу подставить в конфигурацию.
Выполняйте шаги по порядку, от проверки к внешней защите:
- Проверьте атаку командой
ss -ant | grep -c SYN-RECV. Единицы или десятки соединений — норма, сотни и тысячи указывают на SYN-флуд. Признаки подробнее описаны в материале про DDoS-атаку. - Включите SYN cookies:
sysctl -w net.ipv4.tcp_syncookies=1. В большинстве современных дистрибутивов они уже включены. Чтобы настройка пережила перезагрузку, добавьте строкуnet.ipv4.tcp_syncookies=1в/etc/sysctl.conf. - Закройте лишние порты в ufw (Uncomplicated Firewall):
ufw default deny incoming, затемufw allow 22,ufw allow 80,ufw allow 443и только после этогоufw enable. - Ограничьте запросы в nginx. В блок
httpдобавьтеlimit_req_zone $binary_remote_addr zone=req:10m rate=10r/s;, в нужныйlocation—limit_req zone=req burst=20;. Это стартовые значения: подберите их под реальный трафик, проверьтеnginx -tи применитеsystemctl reload nginx. - Поставьте fail2ban для SSH (Secure Shell):
apt install fail2ban. Он банит адреса, которые подбирают пароль. Параметры разобраны в статье про настройку fail2ban. - Подключите прокси или CDN (Content Delivery Network), например Cloudflare: базовая защита есть и на бесплатном тарифе. Не оставляйте реальный IP-адрес в DNS-записях без проксирования, иначе атакующий обойдёт фильтр. Порядок действий — в инструкции по Cloudflare.
- Напишите хостеру: уточните, какая фильтрация входит в ваш тариф, и как с вами свяжутся при атаке. Заодно убедитесь, что есть свежий бэкап, — настройте резервное копирование.
Эти меры не остановят объёмную атаку на канал. Если поток забивает 1 Гбит/с, пакеты упираются в канал раньше, чем доходят до nginx, поэтому фильтровать нужно выше по сети — у хостера или у CDN. Чтобы заранее понять, какая защита входит в тариф, посмотрите ответы на вопросы о VPS.

Сколько стоит защита от DDoS и какие способы сравнить
Точную цену назвать нельзя: она зависит от провайдера и тарифа. У многих хостеров базовая фильтрация входит в тариф VPS, а расширенная оплачивается отдельно. Поэтому сравнивайте не цену, а то, что именно фильтруется.
Бесплатный тариф Cloudflare (CDN, сеть доставки контента) включает базовую защиту, и для небольшого сайта это часто первый шаг. Изучите обзор Cloudflare, чтобы понять, что входит в бесплатный план.
Четыре основных способа сравнены в таблице ниже:
| Способ | От чего защищает | Что учесть | Кому подходит |
|---|---|---|---|
| Защита хостера | Объёмные и протокольные атаки до сервера | Расширенный уровень часто платный; уточните порог отключения | Сайтам на VPS с канала 1 Гбит/с |
| CDN или прокси | Прикладные (L7) и часть объёмных атак, скрывает реальный IP | Нужно направить DNS на сервис; платные функции — отдельно | Небольшим и средним сайтам |
| Свой файрвол с лимитами | Мелкие протокольные и прикладные атаки (ufw, limit_req_zone с rate=10r/s) |
Объёмную атаку на канал не отбивает | Любому серверу как базовый слой |
| Выделенный anti-DDoS-сервис | Все три класса атак на уровне сети | Стоит дороже остальных, нужна настройка | Проектам, где простой дороже защиты |
Выбирая VPS, спросите хостера, какие классы атак он фильтрует и при каком объёме трафика отключает сервер. Тарифы сравнивайте в материалах про VDS-хостинг и про недорогие VPS, а ответы на частые вопросы найдите в разделе о VPS.
Частые ошибки при защите от DDoS и что с ними делать
Даже после настройки ufw и nginx сайт часто падает из-за организационных промахов, а не из-за кода. Ниже пять ошибок, которые встречаются чаще всего: надежда на хостера, открытый реальный IP за CDN, ручные блокировки, путаница с наплывом посетителей и отсутствие плана.
Каждую из них можно исправить за пару часов, пока атаки нет.
Надеяться, что хостер справится сам
Если атака забьёт канал в 1 Гбит/с, хостер может отключить ваш сервер от сети, чтобы не пострадали соседи. Заранее спросите в поддержке, какая фильтрация входит в тариф и при каком объёме трафика сервер отключают.
Подключить CDN, но оставить открытым реальный IP
CDN (Content Delivery Network, сеть доставки контента) скрывает адрес сервера, но его выдают старые A-записи, поддомены и почтовые записи. Удалите лишние записи в DNS-зоне, смените IP сервера и в ufw разрешите порты 80 и 443 только адресам прокси. Что открывает внешний IP-адрес и как его проверить, разберите заранее. Если после настройки прокси сайт отдаёт ошибку, найдите причину ошибки 522.
Блокировать адреса вручную по одному
Ботнет состоит из тысяч узлов, поэтому блокировка десятка адресов ничего не меняет. Задайте в nginx limit_req_zone со значениями rate=10r/s и burst=20 как стартовыми и подбирайте их под реальный трафик. Объёмный трафик отсекайте выше по сети: у хостера или CDN.
Путать атаку с наплывом посетителей
После рассылки или упоминания в соцсетях трафик тоже растёт в разы. Откройте /var/log/nginx/access.log и сравните источники: живые люди запрашивают разные страницы, а бот сотни раз бьёт в один адрес. Дополнительно выполните ss -ant | grep -c SYN-RECV: сотни и тысячи означают атаку.
Не иметь бэкапа и плана
Атака длится от нескольких минут до нескольких суток, и всё это время сайт может быть недоступен. Храните копию вне сервера, как описано в материале о стратегии резервного копирования, и держите контакты поддержки хостера под рукой.
Большинство этих ошибок исправляется до первой атаки, поэтому проверьте DNS-записи, лимиты запросов и бэкап уже сегодня.
Нужна ли защита от DDoS небольшому сайту и кому она не подходит
Личному блогу или сайту-визитке платная фильтрация избыточна. Обычно хватает защиты хостера, регулярных обновлений движка сайта и бесплатного тарифа CDN (Content Delivery Network, сеть доставки контента), например Cloudflare. Если такой сайт будет недоступен 2–3 часа, вы потеряете немного.
Интернет-магазину, сервису с оплатой и игровому серверу сложнее: простой стоит заказов, платежей и игроков. Продумайте защиту заранее: уточните у хостера, что входит в тариф, и держите свежий бэкап. Атака может идти от нескольких минут до нескольких суток.
DDoS-атаки преследуются по закону. Не «проверяйте» чужие сайты нагрузкой даже из любопытства, тестируйте только свои серверы. Состояние своего VPS (Virtual Private Server, виртуальный выделенный сервер) безопасно проверяет команда ss -ant | grep -c SYN-RECV.
Следующий шаг зависит от вашего проекта:
Частые вопросы
Что такое DDoS простыми словами?
Чем DDoS отличается от DoS?
Что такое ботнет?
Как понять, что мой сайт атакуют, а не просто много посетителей?
Опасна ли DDoS-атака для данных на сервере?
Можно ли защититься от DDoS бесплатно?
Спасёт ли файрвол от DDoS?
Что делать, если сервер уже атакуют?
Сколько длится DDoS-атака?
Наказуема ли DDoS-атака?
Проверьте себя
- Знаете, какие порты на сервере должны быть открыты (обычно 22, 80, 443), остальные закрыты.
- Проверили, что SYN cookies включены: sysctl net.ipv4.tcp_syncookies возвращает 1.
- Настроили лимит запросов в nginx и протестировали конфигурацию командой nginx -t.
- Установили fail2ban для защиты SSH.
- Подключили прокси или CDN и убедились, что реальный IP сервера нигде не светится.
- Сохранили контакты поддержки хостера и узнали условия фильтрации трафика.
- Сделали свежую резервную копию сайта и базы данных.
На сайте есть партнёрские ссылки: если вы оформите заказ по ним, мы получим вознаграждение от провайдера. Это не влияет на цену для вас и на место в рейтинге.