Start typing to search across invoices, services, domains, tickets, and more...
DDoS-атаки (распределённый отказ в обслуживании) — одна из самых распространённых угроз для сайтов, игровых серверов, API и других онлайн-сервисов. Злоумышленник управляет огромным количеством устройств, которые одновременно отправляют трафик или запросы на цель. В результате у сервера заканчивается пропускная способность канала, лимит соединений или вычислительные ресурсы, и обычные пользователи больше не могут до него достучаться. Понимание видов атак и принципов защиты — основа правильных решений при выборе сервера и развёртывании сервисов.
SYN-флуд (сетевой/транспортный уровень): злоумышленник отправляет лавину TCP SYN-пакетов с поддельными адресами источника. Сервер выделяет ресурсы под каждое полуоткрытое соединение и ждёт подтверждения, пока очередь соединений не переполнится и новые легитимные соединения не перестанут устанавливаться.
UDP-флуд: на случайные или определённые порты цели отправляются огромные объёмы UDP-пакетов — главным образом чтобы забить канал. Поскольку UDP не требует рукопожатия, такая атака обходится крайне дёшево, а её объём нередко измеряется в Гбит/с и даже Тбит/с.
Атаки с отражением и усилением (reflection/amplification): злоумышленник подменяет IP жертвы и отправляет небольшие запросы на публично доступные сервисы DNS, NTP, Memcached, SSDP, CLDAP и подобные, а те отправляют жертве гораздо более крупные ответы. Коэффициент усиления составляет от десятков до десятков тысяч раз, поэтому именно такие атаки — главный источник высокообъёмного трафика.
CC-атаки (прикладной уровень / HTTP-флуд): злоумышленник имитирует реальных пользователей и многократно обращается к ресурсоёмким страницам и функциям — поиску, авторизации и т. п. Объём трафика может быть небольшим, но такие атаки перегружают процессор, базу данных и PHP-процессы, а отличить их от обычной посещаемости сложно.
Быстро оценить ситуацию помогут следующие команды:
# Summary of connection states
ss -s
# Count connections per TCP state; many SYN-RECV entries may indicate a SYN Flood
ss -ant | awk 'NR>1 {print $1}' | sort | uniq -c | sort -rn
# Top 20 source IPs by connection count
ss -ntu | awk 'NR>1 {split($6,a,":"); print a[1]}' | sort | uniq -c | sort -rn | head -20
# Watch live traffic (requires iftop or nload)
iftop -nNP -i eth0
# Capture a small sample of packets to analyze protocols and sources
tcpdump -nn -i eth0 -c 200
Примечание: адреса IPv6 содержат двоеточия, поэтому подсчёт с разбиением по двоеточию работает только для IPv4 и подходит лишь для быстрой оценки.
Когда атакующий трафик превышает порог защиты, который способен выдержать дата-центр или канал, оператор связи или дата-центр отбрасывает весь трафик на атакуемый IP, чтобы защитить остальных клиентов в той же сети. Это называется «блэкхол» или «null route». Пока IP находится в null route, он полностью недоступен. Обычно блокировка снимается автоматически через некоторое время, но если атака продолжается, её могут продлить. Null route — это мера по ограничению ущерба, а не способ «выдержать» атаку. Поэтому сервисам, для которых важна стабильность, нужны каналы и серверы с достаточной ёмкостью защиты.
При сравнении вариантов обратите внимание на следующее:
Точные характеристики защиты уточняйте на страницах продуктов на сайте IMIDC и в ответах на ваши тикеты.
Серверы с защитой от DDoS в основном справляются с объёмными атаками, а против CC-атак важнее средства прикладного уровня.
Подключите CDN или WAF: пользователи обращаются к узлам CDN, которые поглощают и фильтруют вредоносные запросы, а исходный сервер принимает трафик только от CDN.
Ограничение частоты запросов в Nginx: задайте правила в блоке http и подключите их в server или location:
http {
limit_req_zone $binary_remote_addr zone=req_per_ip:10m rate=10r/s;
limit_conn_zone $binary_remote_addr zone=conn_per_ip:10m;
server {
location / {
limit_req zone=req_per_ip burst=20 nodelay;
limit_conn conn_per_ip 30;
}
}
}
После изменений проверьте конфигурацию и перезагрузите Nginx:
nginx -t && systemctl reload nginx
Включите SYN cookies (в большинстве дистрибутивов они включены по умолчанию, это можно проверить):
sysctl net.ipv4.tcp_syncookies
sysctl -w net.ipv4.tcp_syncookies=1
Скройте IP исходного сервера: если злоумышленник узнает настоящий IP, он сможет обойти CDN и атаковать сервер напрямую. Рекомендации: разрешите доступ к портам 80/443 исходного сервера только с IP-адресов CDN; не раскрывайте IP исходного сервера через почтовые сервисы, DNS-записи поддоменов и историю DNS; если IP уже утёк, после подключения CDN смените его на новый. Например, у Cloudflare диапазоны IP для обращений к исходному серверу опубликованы по адресу https://www.cloudflare.com/ips-v4 — по ним можно составить белый список для файрвола.
Только небольшую. Объёмные атаки забивают вышестоящий канал ещё до того, как трафик дойдёт до сервера, поэтому нужна очистка трафика на уровне дата-центра или сети.
Нет. CC-атаки нацелены на прикладной уровень, и против них нужен комплекс мер: CDN/WAF, ограничение частоты запросов, CAPTCHA и стратегия кэширования.
Дождитесь автоматического снятия блокировки или отправьте тикет, чтобы узнать срок действия null route и возможность сменить IP. Параллельно выясните источник атаки и оцените, нужно ли усилить тариф защиты.
Если ёмкости защиты CDN достаточно, а IP исходного сервера не утёк, риск ниже. Однако CDN часто не покрывает игры и другие сервисы на TCP/UDP, не использующие HTTP, — для них по-прежнему нужны каналы с защитой от DDoS.
Защита от DDoS — это комплекс мер: «очистка на сетевом уровне + фильтрация на прикладном уровне + скрытие исходного сервера». Ни одна мера по отдельности не решает проблему раз и навсегда. IMIDC предоставляет облачные и выделенные серверы с защитой от DDoS в Гонконге, Японии, США и других регионах; их можно развернуть с несколькими IP и маршрутами CN2. Если вас атакуют или нужна помощь в выборе схемы защиты, отправьте тикет — наша техническая команда круглосуточно поможет с анализом и настройкой.