Представьте: понедельник, 10 утра, пик продаж в вашем интернет-магазине. Внезапно сайт перестает открываться. Клиенты жалуются, заказы не оформляются, каждая минута простоя — это потерянные деньги. Причина — DDoS-атака, от которой не застрахован ни один онлайн-бизнес.
В 2025 году количество DDoS-атак выросло на 300%, а средний ущерб для малого бизнеса составляет от 50 000 до 500 000 рублей за один инцидент. Хорошая новость: защититься можно даже с минимальным бюджетом, если знать правильные инструменты и методы.
В этом руководстве я покажу 7 проверенных способов защиты от DDoS, включая бесплатные решения, пошаговую настройку Cloudflare за 15 минут и план экстренных действий при атаке. Все инструкции проверены на реальных проектах российских компаний.
Оглавление
- Что такое DDoS атака простыми словами
- 7 способов защитить сайт от DDoS
- Как понять что сайт под DDoS атакой
- Что делать если сайт атакуют прямо сейчас
- Настройка защиты Cloudflare за 15 минут
- Сколько стоит защита от DDoS
- Тестирование защиты от DDoS
- Кейсы российских компаний
- FAQ - частые вопросы
- Чек-лист экстренных действий
Что такое DDoS атака простыми словами
DDoS (Distributed Denial of Service) — это когда злоумышленники организуют "цифровую толпу" из тысяч зараженных компьютеров (ботнет) и направляют их на ваш сайт одновременно. Представьте, что в маленький магазин одновременно пытаются войти 10 000 человек — двери просто не выдержат. То же происходит с вашим сервером.Как работает механизм DDoS атаки:
- Создание армии ботов: Хакеры заражают тысячи устройств (компьютеры, смартфоны, умные холодильники и камеры) специальным вирусом
- Команда к атаке: В нужный момент все зараженные устройства получают команду атаковать вашу цель
- Массированный удар: Тысячи устройств одновременно шлют запросы на ваш сайт
- Перегрузка и отказ: Сервер не справляется с нагрузкой и "падает"
Почему DDoS опасен именно для бизнеса:
Последствие | Реальный ущерб | Пример из практики |
---|---|---|
Прямые финансовые потери | 20 000 - 200 000 руб/час простоя | Интернет-магазин электроники потерял 450 000 руб за 3 часа атаки в Черную пятницу |
Ущерб репутации | -30% доверия клиентов | После атаки на сервис доставки еды 40% клиентов перешли к конкурентам |
SEO-последствия | -20 позиций в поиске | Сайт услуг потерял позиции в Google после недельных перебоев |
Расходы на восстановление | 50 000 - 500 000 руб | Средняя стоимость экстренного подключения защиты и работы специалистов |
7 способов защитить сайт от DDoS
Рассмотрим методы защиты от самых простых и бесплатных до профессиональных корпоративных решений.1. Cloudflare - лучшее соотношение цена/качество для малого бизнеса
Cloudflare — это первая линия обороны для 90% небольших проектов. Бесплатный тариф защищает от базовых атак до 10 Гбит/с.Преимущества:
- Бесплатный базовый план с защитой от DDoS
- Настройка за 15 минут без технических знаний
- CDN ускоряет загрузку сайта на 40%
- Автоматическое обнаружение и блокировка атак
- Защита только от атак до 10 Гбит/с
- Нет поддержки 24/7
- Ограниченные правила фильтрации (5 правил)
2. Бесплатные инструменты защиты от DDoS
Для технически подкованных владельцев сайтов существуют полностью бесплатные решения:fail2ban - автоматическая блокировка атакующих IP
Bash:
# Установка на Ubuntu/Debian
sudo apt-get install fail2ban
# Настройка для защиты от DDoS
sudo nano /etc/fail2ban/jail.local
[http-get-dos]
enabled = true
port = http,https
filter = http-get-dos
logpath = /var/log/nginx/access.log
maxretry = 300
findtime = 300
bantime = 600
action = iptables[name=HTTP, port=http, protocol=tcp]
Bash:
# Установка
wget https://github.com/jgmdev/ddos-deflate/archive/master.zip
unzip master.zip
cd ddos-deflate-master
sudo ./install.sh
# Автоматически блокирует IP с более чем 150 подключениями
Bash:
# Для Apache
sudo apt-get install libapache2-mod-security2
# Для Nginx
sudo apt-get install nginx-modsecurity
3. Настройка защиты на уровне сервера
Базовая защита через iptables (встроенный firewall Linux):
Bash:
# Защита от SYN-flood атак
iptables -N syn-flood
iptables -A INPUT -p tcp --syn -j syn-flood
iptables -A syn-flood -m limit --limit 10/s --limit-burst 20 -j RETURN
iptables -A syn-flood -j LOG --log-prefix "SYN flood: "
iptables -A syn-flood -j DROP
# Ограничение соединений с одного IP
iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 20 -j REJECT
iptables -A INPUT -p tcp --dport 443 -m connlimit --connlimit-above 20 -j REJECT
# Защита от ping-flood
iptables -A INPUT -p icmp -m limit --limit 1/s --limit-burst 1 -j ACCEPT
iptables -A INPUT -p icmp -j DROP
4. CDN-сервисы с встроенной защитой
Сервис | Бесплатный план | Защита от DDoS | Особенности | Цена Pro |
---|---|---|---|---|
Cloudflare | Да | До 10 Гбит/с | Лучший для начала | $20/мес |
Selectel CDN | 10 ГБ/мес | Базовая | Российские сервера | от 500 руб/мес |
Yandex CDN | Нет | L3-L4 защита | Интеграция с Yandex Cloud | от 0.63 руб/ГБ |
G-Core Labs | Триал 14 дней | До 1 Тбит/с | Глобальная сеть | от $150/мес |
5. Специализированные Anti-DDoS провайдеры
Для серьезного бизнеса с высокими требованиями к доступности:StormWall (Российский провайдер)
- Защита от атак до 3 Тбит/с
- Поддержка 24/7 на русском языке
- SLA 99.95%
- От 15 000 руб/мес
- Собственная сеть 3+ Тбит/с
- Защита L3-L7
- Бесплатный тестовый период
- От $99/мес
- Используют Сбербанк, Mail.ru
- Фильтрация на уровне BGP
- Анализ поведения в реальном времени
- От 50 000 руб/мес
6. Облачные решения с защитой "из коробки"
AWS Shield
Python:
# Автоматическая защита для всех ресурсов AWS
# Shield Standard - бесплатно
# Shield Advanced - $3000/мес + трафик
import boto3
# Включение Shield Advanced
shield = boto3.client('shield')
shield.create_subscription(
Subscription={
'TimeCommitment': 'ONE_YEAR',
'AutoRenew': 'ENABLED'
}
)
Google Cloud Armor
YAML:
# Пример политики защиты
securityPolicy:
name: ddos-protection
rules:
- action: rate_based_ban
rateLimitOptions:
conformAction: allow
exceedAction: deny(403)
enforceOnKey: IP
banThresholdCount: 100
banDurationSec: 600
7. Гибридная защита - комбинация методов
Оптимальная стратегия для большинства проектов:- Первый уровень: Cloudflare Free/Pro ($0-20/мес)
- Второй уровень: fail2ban + iptables (бесплатно)
- Третий уровень: Резервный канал через другого провайдера
- Мониторинг: Zabbix/Prometheus для обнаружения аномалий
Как понять что сайт под DDoS атакой
Явные признаки активной атаки:
- Сайт не открывается или загружается очень медленно (>10 секунд)
- Резкий рост трафика в 10-100 раз в панели хостинга
- Множество одинаковых запросов в логах от разных IP
- Письма от хостинга о превышении лимитов
- 100% загрузка CPU на сервере без видимых причин
Как проверить через командную строку:
Bash:
# Количество активных соединений
netstat -an | grep :80 | wc -l
# Если больше 500 - возможна атака
# TOP IP-адресов по количеству соединений
netstat -an | grep :80 | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -rn | head -20
# Анализ логов Nginx на подозрительную активность
tail -f /var/log/nginx/access.log | grep -E "([0-9]{1,3}\.){3}[0-9]{1,3}" | awk '{print $1}' | sort | uniq -c | sort -rn
# Проверка загрузки сети
iftop -n
Проверка через онлайн-сервисы:
- check-host.net - проверка доступности из разных стран
- downforeveryoneorjustme.com - быстрая проверка доступности
- Pingdom - детальный анализ скорости загрузки
Что делать если сайт атакуют прямо сейчас
ЭКСТРЕННЫЙ ПЛАН ДЕЙСТВИЙ (первые 15 минут):
Минута 1-3: Подтверждение атаки
Bash:
# Быстрая проверка нагрузки
uptime # Load average не должен быть выше количества ядер CPU
df -h # Проверка места на диске
free -m # Проверка памяти
Bash:
# Экстренная блокировка топ атакующих IP
netstat -an | grep :80 | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -rn | head -10 | while read count ip; do
if [ $count -gt 50 ]; then
iptables -A INPUT -s $ip -j DROP
echo "Blocked $ip with $count connections"
fi
done
# Включение SYN cookies
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
# Ограничение новых соединений
iptables -A INPUT -p tcp --dport 80 -m recent --name http --update --seconds 1 --hitcount 10 -j DROP
- Зайти на
Ссылка скрыта от гостей
- Добавить сайт в панель управления
- Изменить NS-записи домена на Cloudflare
- Включить режим "Under Attack Mode"
- Сообщить техподдержке хостинга о DDoS
- Уведомить руководство о ситуации
- Подготовить сообщение для клиентов
Если Cloudflare не помогает:
1. Смена IP-адреса сервера
Bash:
# Запросить у хостинга новый IP
# Обновить A-запись в DNS только через Cloudflare
# НЕ публиковать реальный IP нигде
NGINX:
# Nginx - блокировка всех стран кроме России и СНГ
geo $blocked_country {
default 1;
include /etc/nginx/geo/ru.conf; # Россия
include /etc/nginx/geo/ua.conf; # Украина
include /etc/nginx/geo/by.conf; # Беларусь
include /etc/nginx/geo/kz.conf; # Казахстан
}
server {
if ($blocked_country) {
return 444;
}
}
- Отключить поиск по сайту
- Отключить комментарии
- Кешировать всё что можно
- Отключить регистрацию новых пользователей
Настройка защиты Cloudflare за 15 минут
Пошаговая инструкция с скриншотами:
Шаг 1: Регистрация и добавление сайта (3 минуты)- Перейдите на
Ссылка скрыта от гостей
- Введите email и пароль
- Нажмите "Add a Site" и введите ваш домен (например: myshop.ru)
- Выберите план "Free" ($0/месяц)
Cloudflare автоматически найдет ваши DNS записи. Проверьте:
- A-запись с IP вашего сервера должна быть с оранжевым облаком (Proxied)
- CNAME записи для www также с оранжевым облаком
- Записи для почты (MX, mail) должны быть с серым облаком (DNS only)
Cloudflare покажет два nameserver'а, например:
alex.ns.cloudflare.com
vita.ns.cloudflare.com
Для популярных регистраторов:
- REG.RU: Управление → DNS-серверы → Указать свои
- NIC.RU: Услуги → Домены → DNS → Изменить
- Beget: Домены → Управление → NS записи
После активации (5-30 минут) настройте защиту:
1. Security → Settings:
- Security Level: Medium (для начала)
- Challenge Passage: 30 минут
- Browser Integrity Check: ON
Создайте правило против ботов:
Код:
(cf.threat_score gt 30) → Challenge
Код:
(http.user_agent eq "") → Block
Код:
(rate(60) gt 100) → Block
- HTTP DDoS attack protection: High
- Advanced TCP Protection: ON (если доступно)
Если сайт атакуют прямо сейчас:
- Quick Actions → Under Attack Mode → ON
- Это включит JavaScript проверку для всех посетителей
- Реальные пользователи увидят 5-секундную заставку
- Боты не смогут пройти проверку
Продвинутые настройки Cloudflare Pro ($20/мес):
JavaScript:
// Пример WAF правила для защиты от брутфорса WordPress
(http.request.uri.path contains "/wp-login.php" or
http.request.uri.path contains "/xmlrpc.php") and
(ip.geoip.country ne "RU") → Block
// Защита от SQL-инъекций
(http.request.uri.query contains "union" or
http.request.uri.query contains "select" or
http.request.uri.query contains "1=1") → Challenge
// Rate Limiting для API
(http.request.uri.path contains "/api/" and
rate(10) gt 50) → Block for 10 minutes
Сколько стоит защита от DDoS
Сравнительная таблица стоимости решений (цены 2025):
Решение | Бесплатно | Базовый | Бизнес | Enterprise |
---|---|---|---|---|
Cloudflare | 0 руб<br>До 10 Гбит/с | $20/мес<br>До 100 Гбит/с | $200/мес<br>До 400 Гбит/с | Договорная<br>Без лимитов |
StormWall | - | 15 000 руб/мес<br>До 50 Гбит/с | 50 000 руб/мес<br>До 200 Гбит/с | от 150 000 руб/мес |
DDoS-Guard | 14 дней триал | $99/мес<br>До 100 Гбит/с | $499/мес<br>До 500 Гбит/с | от $2000/мес |
Qrator Labs | - | 50 000 руб/мес | 150 000 руб/мес | от 500 000 руб/мес |
AWS Shield | Standard: $0 | - | - | Advanced: $3000/мес |
Своими силами | $0<br>fail2ban + iptables | VPS: $10/мес<br>+ настройка | Dedicated: $100/мес<br>+ админ | Кластер: $1000+/мес |
Калькулятор ROI защиты от DDoS:
JavaScript:
// Расчет окупаемости защиты
const calculateROI = (data) => {
// Входные данные
const avgRevenue = data.monthlyRevenue; // Средняя выручка в месяц
const avgOrderValue = data.avgOrder; // Средний чек
const ordersPerDay = avgRevenue / avgOrderValue / 30;
// Потенциальные потери от атаки
const downtimeHours = 8; // Средняя длительность атаки
const conversionLoss = 0.3; // Потеря 30% клиентов после атаки
const seoLoss = avgRevenue * 0.1; // 10% потери трафика из SEO
const directLoss = (avgRevenue / 30 / 24) * downtimeHours;
const reputationLoss = avgRevenue * conversionLoss;
const totalLoss = directLoss + reputationLoss + seoLoss;
// Стоимость защиты
const protectionCost = 20 * 70; // Cloudflare Pro в рублях
return {
potentialLoss: totalLoss,
protectionCost: protectionCost,
roi: ((totalLoss - protectionCost) / protectionCost * 100).toFixed(0)
};
};
// Пример для интернет-магазина
const shop = calculateROI({
monthlyRevenue: 1000000, // 1 млн руб/мес
avgOrder: 3000 // Средний чек 3000 руб
});
console.log(`Потенциальные потери: ${shop.potentialLoss} руб`);
console.log(`Стоимость защиты: ${shop.protectionCost} руб/мес`);
console.log(`ROI защиты: ${shop.roi}%`);
Рекомендации по выбору:
Ваш бизнес | Рекомендуемое решение | Бюджет/мес |
---|---|---|
Блог, личный сайт | Cloudflare Free | 0 руб |
Интернет-магазин до 100 заказов/день | Cloudflare Pro | 1 400 руб |
E-commerce 100-1000 заказов/день | Cloudflare Business или StormWall | 15-50 тыс руб |
Маркетплейс, банк, крупный сервис | Qrator Labs или DDoS-Guard Pro | от 150 тыс руб |
Тестирование защиты от DDoS
ВАЖНО: Тестировать только свои ресурсы!
Тестирование чужих сайтов является уголовным преступлением (ст. 273 УК РФ).Безопасные способы тестирования:
1. Стресс-тест с помощью Apache Bench (ab)
Bash:
# Установка
sudo apt-get install apache2-utils
# Тест: 1000 запросов, 100 одновременных соединений
ab -n 1000 -c 100 http://yoursite.ru/
# Анализ результатов
# Requests per second: должно быть > 100
# Failed requests: должно быть 0
# Time per request: < 1000ms
Bash:
# Скрипт для проверки ограничений
for i in {1..100}; do
response=$(curl -s -o /dev/null -w "%{http_code}" http://yoursite.ru/)
echo "Request $i: HTTP $response"
if [ $response -eq 429 ] || [ $response -eq 503 ]; then
echo "Rate limiting работает! Заблокирован на запросе $i"
break
fi
done
Python:
import requests
import time
from concurrent.futures import ThreadPoolExecutor
def test_request(num):
try:
# Тест без User-Agent (должен блокироваться)
response = requests.get('http://yoursite.ru',
headers={'User-Agent': ''},
timeout=5)
return f"Request {num}: {response.status_code}"
except:
return f"Request {num}: Blocked"
# Параллельные запросы
with ThreadPoolExecutor(max_workers=50) as executor:
results = executor.map(test_request, range(100))
for result in results:
print(result)
LOIC (Low Orbit Ion Cannon) - инструмент для тестирования:
Bash:
# Использовать ТОЛЬКО на своем тестовом сервере!
# 1. Скачать с официального репозитория
# 2. Указать IP своего тестового сервера
# 3. Выбрать тип атаки (TCP/UDP/HTTP)
# 4. Запустить на 10-30 секунд
# 5. Проверить логи защиты
Метрики успешной защиты:
Метрика | Хороший показатель | Критический уровень |
---|---|---|
Доступность сайта | > 99.9% | < 99% |
Время ответа под нагрузкой | < 2 сек | > 5 сек |
% заблокированных ботов | > 95% | < 80% |
False Positive (блокировка реальных юзеров) | < 0.1% | > 1% |
Время обнаружения атаки | < 1 мин | > 5 мин |
Время митигации | < 5 мин | > 15 мин |
Кейсы российских компаний
Кейс 1: Интернет-магазин электроники (Москва)
Ситуация: Ноябрь 2024, Черная пятница, DDoS атака 50 Гбит/с в пиковый день распродаж.Решение:
- За 30 минут подключили Cloudflare Pro
- Включили Under Attack Mode
- Настроили гео-фильтрацию (только РФ и СНГ)
- Добавили кеширование статики
- Сайт восстановлен за 40 минут
- Сохранено 85% продаж
- Инвестиции в защиту: 1400 руб/мес
- Предотвращенный ущерб: ~2 млн руб
Кейс 2: Микрофинансовая организация
Ситуация: Целенаправленная атака конкурентов, 72 часа непрерывного DDoS.Решение:
- StormWall Pro (российский провайдер)
- Резервный канал через DDoS-Guard
- Изменение реального IP сервера
- Внедрение 2FA для админ-панели
- Доступность 99.7% во время атаки
- Атакующие потратили > 500 000 руб
- Компания не потеряла ни одного клиента
Кейс 3: Игровой сервер Minecraft
Ситуация: Регулярные атаки от недовольных игроков, до 20 Гбит/с.Решение:
NGINX:
# 1. TCPShield (специализированная защита для игровых серверов)
# 2. Настройка на уровне сервера:
# Оптимизация sysctl.conf
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_fin_timeout = 10
# 3. Плагин для Minecraft
# AntiDDoS Plugin с проверкой подключений
- Снижение успешных атак на 95%
- Стоимость защиты: $15/месяц
- Сохранение базы в 5000+ игроков
Кейс 4: Маркетплейс handmade товаров
Ситуация: Startup, бюджет на защиту 0 руб, атака в день запуска.Решение (полностью бесплатно):
- Cloudflare Free за 15 минут
- fail2ban на сервере
- Оптимизация nginx:
NGINX:
# Ограничения в nginx.conf
limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;
limit_conn_zone $binary_remote_addr zone=addr:10m;
server {
location / {
limit_req zone=one burst=20 nodelay;
limit_conn addr 10;
}
# Кеширование для снижения нагрузки
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 30d;
add_header Cache-Control "public, immutable";
}
}
- Сайт выдержал атаку без вложений
- Привлечено внимание инвесторов
- Сейчас 50 000+ активных продавцов
FAQ - Частые вопросы о защите от DDoS
Можно ли защититься от DDoS бесплатно?
Да, базовая защита возможна:- Cloudflare Free защищает от атак до 10 Гбит/с
- fail2ban + iptables дают защиту на уровне сервера
- Правильная настройка nginx/Apache снижает уязвимость
Как быстро можно остановить DDoS атаку?
Зависит от подготовки:- С настроенной защитой: 1-5 минут автоматически
- С Cloudflare (не настроен): 15-30 минут на подключение
- Без подготовки: от 2 часов до нескольких дней
Почему атакуют именно мой маленький сайт?
Основные причины:- Конкуренты - 40% атак заказывают конкуренты
- Вымогательство - требуют деньги за прекращение атаки
- Случайная цель - попали в список для тестирования ботнета
- Недовольные клиенты - месть за плохой сервис
- Практика хакеров - тренируются на небольших сайтах
Что делать если требуют выкуп за прекращение атаки?
НЕ ПЛАТИТЕ! Правильные действия:- Сохраните все письма и сообщения вымогателей
- Обратитесь в полицию (ст. 163 УК РФ - вымогательство)
- Подключите профессиональную DDoS-защиту
- В 90% случаев атака прекращается через 24-72 часа
Может ли хостинг заблокировать мой сайт из-за DDoS?
Да, это стандартная практика:- Shared хостинг блокирует сайт для защиты других клиентов
- VPS могут ограничить трафик или заблокировать IP
- Решение: уведомить поддержку и подключить CDN
Как отличить DDoS от наплыва реальных посетителей?
Ключевые отличия:Признак | Реальный трафик | DDoS атака |
---|---|---|
География | Естественное распределение | Концентрация из 1-2 стран |
User-Agent | Разнообразные браузеры | Одинаковые или пустые |
Поведение | Просмотр разных страниц | Один URL или рандомные |
Время на сайте | 2-5 минут | 0-10 секунд |
Referer | Поиск, соцсети, direct | Пустой или фейковый |
Влияет ли DDoS на SEO позиции сайта?
Да, но не сразу:- Краткосрочно (1-3 дня): Google не штрафует
- Среднесрочно (неделя+): возможно снижение позиций
- Долгосрочно: серьезное падение в выдаче
- Настроить отдачу 503 кода вместо таймаута
- Уведомить Google через Search Console
- Быстро восстановить доступность
Нужна ли защита от DDoS для сайта на конструкторе?
Обычно НЕТ:- Tilda, Wix, Shopify имеют встроенную защиту
- Атака идет на их инфраструктуру, а не на ваш сайт
- Но можно подключить Cloudflare для дополнительной защиты
Как защитить API от DDoS?
Python:
# Пример защиты API на Python/Flask
from flask import Flask, request, jsonify
from flask_limiter import Limiter
from flask_limiter.util import get_remote_address
app = Flask(__name__)
# Rate limiting
limiter = Limiter(
app,
key_func=get_remote_address,
default_limits=["100 per minute", "1000 per hour"]
)
# API ключи для аутентификации
VALID_API_KEYS = {'key1', 'key2', 'key3'}
@app.before_request
def check_api_key():
if request.path.startswith('/api/'):
api_key = request.headers.get('X-API-Key')
if api_key not in VALID_API_KEYS:
return jsonify({'error': 'Invalid API key'}), 403
@app.route('/api/data')
@limiter.limit("10 per minute") # Дополнительное ограничение
def get_data():
return jsonify({'data': 'secret'})
Можно ли отследить кто заказал DDoS атаку?
Очень сложно, но возможно:- Анализ времени - атаки часто совпадают с бизнес-событиями
- Переписка вымогателей - могут выдать себя деталями
- Помощь правоохранительных органов - имеют больше возможностей
- Специализированные компании - Group-IB, Positive Technologies
Что такое amplification атака и как защититься?
Amplification (усиление) - когда атакующий отправляет маленький запрос, а жертва получает большой ответ.Пример DNS Amplification:
Bash:
# Атакующий отправляет 60 байт
dig ANY isc.org @your-dns-server
# Жертва получает 4000+ байт ответа
# Усиление в 60+ раз!
Bash:
# Отключить рекурсию для внешних IP
# В named.conf:
options {
recursion no;
allow-recursion { 192.168.1.0/24; };
};
# Ограничить ответы ANY
rate-limit {
responses-per-second 5;
window 5;
};
Чек-лист экстренных действий при DDoS атаке
Распечатайте и держите под рукой:
ПЕРВЫЕ 5 МИНУТ - Диагностика- [ ] Проверить доступность сайта через check-host.net
- [ ] Посмотреть нагрузку сервера:
uptime
,htop
- [ ] Проверить логи:
tail -f /var/log/nginx/access.log
- [ ] Определить тип атаки (HTTP/TCP/UDP)
- [ ] Включить Cloudflare "Under Attack Mode"
- [ ] Активировать fail2ban если установлен
- [ ] Включить SYN cookies:
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
- [ ] Заблокировать топ атакующих IP через iptables
- [ ] Связаться с техподдержкой хостинга
- [ ] Уведомить руководство
- [ ] Подготовить сообщение для клиентов
- [ ] Начать документирование инцидента
- [ ] Подключить платную DDoS-защиту если нужно
- [ ] Настроить rate limiting
- [ ] Включить гео-блокировку если применимо
- [ ] Отключить незащищенные сервисы
- [ ] Сохранить логи для анализа
- [ ] Провести разбор инцидента
- [ ] Обновить план защиты
- [ ] Протестировать новые настройки
Контакты для экстренных случаев:
Сервис | Телефон | Время ответа | |
---|---|---|---|
Cloudflare | - | support@cloudflare.com | 24-48ч |
StormWall | +7 (495) 721-84-38 | support@stormwall.pro | 15 мин |
DDoS-Guard | +7 (800) 555-64-65 | support@ddos-guard.net | 30 мин |
REG.RU | +7 (495) 580-11-11 | support@reg.ru | 2-4ч |
Готовые скрипты для защиты:
Bash:
#!/bin/bash
# emergency-ddos-protection.sh
# Скрипт экстренной защиты от DDoS
echo "Запуск экстренной защиты от DDoS..."
# 1. Включение SYN cookies
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
echo "SYN cookies включены"
# 2. Оптимизация сетевого стека
sysctl -w net.ipv4.tcp_max_syn_backlog=4096
sysctl -w net.ipv4.tcp_synack_retries=1
sysctl -w net.ipv4.tcp_fin_timeout=10
sysctl -w net.ipv4.ip_local_port_range="1024 65535"
echo "Сетевой стек оптимизирован"
# 3. Базовые правила iptables
iptables -N DDOS_CHECK 2>/dev/null
iptables -A INPUT -p tcp --dport 80 -j DDOS_CHECK
iptables -A INPUT -p tcp --dport 443 -j DDOS_CHECK
iptables -A DDOS_CHECK -m recent --set --name DDOS --rsource
iptables -A DDOS_CHECK -m recent --update --seconds 1 --hitcount 10 --name DDOS --rsource -j DROP
echo "Правила iptables установлены"
# 4. Блокировка топ атакующих IP
echo "Анализ атакующих IP..."
netstat -an | grep :80 | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -rn | head -20 | while read count ip; do
if [ "$count" -gt 50 ] && [ "$ip" != "" ]; then
iptables -A INPUT -s $ip -j DROP
echo "Заблокирован IP $ip ($count соединений)"
fi
done
# 5. Очистка соединений
echo "Очистка зависших соединений..."
ss -K dst :80
ss -K dst :443
echo "Экстренная защита активирована!"
echo "Мониторинг: watch -n 1 'netstat -an | grep :80 | wc -l'"
Итоговые рекомендации
Минимальный набор защиты (бесплатно):
- Cloudflare Free - защита от базовых атак
- fail2ban - блокировка подозрительных IP
- Правильная настройка сервера - sysctl, iptables
- Мониторинг - знать о начале атаки
Оптимальный набор для бизнеса ($20-50/мес):
- Cloudflare Pro или StormWall базовый
- Мониторинг 24/7 - Zabbix или Datadog
- Резервный план - инструкции для команды
- Регулярное тестирование - раз в квартал
Enterprise защита (от $500/мес):
- Профессиональный Anti-DDoS провайдер
- SOC - Security Operations Center
- Несколько каналов защиты
- SLA 99.99% доступности
Остались вопросы? Задавайте в комментариях - отвечу на основе опыта защиты 50+ проектов от DDoS атак.
Последнее редактирование модератором: