Перейти к основному содержимому
Вернуться в категорию

План экстренного реагирования на DDoS-атаку

Полное руководство по обнаружению DDoS-атак, экстренным мерам, анализу трафика, связи с провайдером, пост-мортем анализу и стратегиям предотвращения.

Время чтения: 14 мин Защита от DDoS и безопасность
ddosэкстренное-реагированиеincident-responseанализ-трафикабезопасностьpost-mortem

Содержание

План экстренного реагирования на DDoS-атаку

Правильная и быстрая реакция во время DDoS-атаки критически важна для минимизации перебоев в обслуживании. В этом руководстве пошагово рассматривается весь процесс экстренного реагирования — от обнаружения атаки до пост-мортем анализа.

Не паникуйте во время DDoS-атаки. Следуйте шагам этого руководства последовательно. Команда поддержки REXE доступна 24/7.

Обнаружение атаки

Раннее обнаружение DDoS-атаки — первый шаг к эффективному реагированию.

Симптомы

СимптомВозможный тип атаки
Сайт медленный или недоступенLayer 7 HTTP flood
Невозможно установить SSH-соединениеLayer 4 SYN/TCP flood
Высокое использование полосы пропусканияОбъёмная атака
CPU/RAM в норме, но сайт медленныйАтака сетевого уровня
CPU 100%, но трафик нормальныйАтака прикладного уровня

Команды быстрой диагностики

hljs bash
# 1. Проверка доступности сервера
ping -c 5 IP_СЕРВЕРА

# 2. Состояние сетевых соединений
ss -s

# 3. Количество активных соединений
ss -ant | wc -l

# 4. IP с наибольшим количеством соединений
ss -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -rn | head -20

# 5. Соединения в состоянии SYN-RECV
ss -ant state syn-recv | wc -l

# 6. Использование полосы пропускания
ifstat -i eth0 1 5

# 7. Системные ресурсы
top -bn1 | head -5
free -h

Анализ трафика

hljs bash
# Мониторинг трафика в реальном времени
sudo iftop -i eth0 -n

# Анализ IP-адресов источников
sudo tcpdump -i eth0 -c 5000 -nn 2>/dev/null | awk '{print $3}' | cut -d. -f1-4 | sort | uniq -c | sort -rn | head -20

# Захват пакетов для детального анализа
sudo tcpdump -i eth0 -c 50000 -w /tmp/ddos-capture.pcap

Шаги экстренного реагирования

Шаг 1: Оценка ситуации (0-5 минут)

hljs bash
# Определение типа атаки
ss -ant state syn-recv | wc -l
ss -ant state established | wc -l
sudo tcpdump -i eth0 udp -c 1000 -nn -q 2>/dev/null | wc -l
tail -1000 /var/log/nginx/access.log | awk '{print $1}' | sort | uniq -c | sort -rn | head -10

Шаг 2: Экстренная блокировка (5-15 минут)

hljs bash
#!/bin/bash
# emergency-block.sh
ATTACKERS=$(ss -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -rn | head -50 | awk '$1 > 100 {print $2}')

for ip in $ATTACKERS; do
    iptables -I INPUT -s $ip -j DROP
    echo "Заблокирован: $ip"
done

ipset create blacklist hash:net
for ip in $ATTACKERS; do
    ipset add blacklist $ip
done
iptables -I INPUT -m set --match-set blacklist src -j DROP

Шаг 3: Настройка параметров ядра (5 минут)

hljs bash
sysctl -w net.ipv4.tcp_syncookies=1
sysctl -w net.ipv4.tcp_max_syn_backlog=65536
sysctl -w net.ipv4.tcp_synack_retries=1
sysctl -w net.netfilter.nf_conntrack_max=2000000
sysctl -w net.core.somaxconn=65536

Шаг 4: Конфигурация веб-сервера (10 минут)

hljs nginx
# Аварийная конфигурация Nginx
limit_req_zone $binary_remote_addr zone=emergency:20m rate=5r/s;
limit_conn_zone $binary_remote_addr zone=emergency_conn:20m;

server {
    limit_req zone=emergency burst=10 nodelay;
    limit_conn emergency_conn 20;
    client_max_body_size 1m;
    client_body_timeout 5s;
    client_header_timeout 5s;
}

Шаг 5: Режим Under Attack в Cloudflare (2 минуты)

hljs bash
curl -X PATCH "https://api.cloudflare.com/client/v4/zones/ZONE_ID/settings/security_level" \
  -H "Authorization: Bearer API_TOKEN" \
  -H "Content-Type: application/json" \
  --data '{"value":"under_attack"}'

Шаг 6: Правила Path Panel (5 минут)

Через Path Panel:

  1. Фильтрация источников атаки
  2. Добавление правил ограничения скорости
  3. Применение гео-блокировки при необходимости
  4. Активация фильтров протоколов

Связь с провайдером

Шаблон запроса в поддержку REXE

Тема: DDoS-атака — требуется экстренное реагирование

IP сервера: [IP_АДРЕС]
Начало атаки: [ДАТА/ВРЕМЯ]
Тип атаки: [SYN Flood / UDP Flood / HTTP Flood / Неизвестно]
Воздействие: [Полный сбой / Частичное замедление]

Принятые меры:
- Применены правила iptables
- Активирован режим Under Attack в Cloudflare
- Настроены параметры ядра

Действия после атаки

Пост-мортем анализ

hljs bash
tcpdump -r /tmp/ddos-capture.pcap -nn | head -100
tcpdump -r /tmp/ddos-capture.pcap -nn | awk '{print $3}' | cut -d. -f1-4 | sort | uniq -c | sort -rn | head -20

Удаление аварийных правил

hljs bash
# Вернуть Cloudflare в нормальный режим
curl -X PATCH "https://api.cloudflare.com/client/v4/zones/ZONE_ID/settings/security_level" \
  -H "Authorization: Bearer API_TOKEN" \
  -H "Content-Type: application/json" \
  --data '{"value":"medium"}'

# Очистить аварийные правила iptables
iptables -D INPUT -m set --match-set blacklist src -j DROP
ipset destroy blacklist

# Удалить аварийную конфигурацию Nginx
rm /etc/nginx/conf.d/emergency.conf
sudo nginx -t && sudo systemctl reload nginx

Стратегии предотвращения

Контрольный список проактивной защиты

  1. Path Panel — настроены правила фильтрации
  2. Cloudflare — настроена интеграция
  3. Rate limiting — применено ограничение скорости
  4. Параметры ядра — оптимизированы
  5. Fail2Ban — установлен и настроен
  6. Мониторинг — установлены инструменты
  7. Скрипты экстренного реагирования — подготовлены

Скрипт автоматического обнаружения

hljs bash
#!/bin/bash
THRESHOLD=500
CONNECTIONS=$(ss -ant | wc -l)

if [ $CONNECTIONS -gt $THRESHOLD ]; then
    echo "ВНИМАНИЕ: Высокое количество соединений: $CONNECTIONS" | \
        mail -s "DDoS-тревога - $(hostname)" admin@example.com
    /usr/local/bin/emergency-block.sh
    logger "DDoS-тревога: обнаружено $CONNECTIONS соединений"
fi

Регулярно тестируйте план экстренного реагирования. План должен быть готов к моменту атаки.

Заключение

Подготовка к DDoS-атакам так же важна, как быстрое и эффективное реагирование во время атаки. Заранее спланируйте шаги, подготовьте скрипты и проводите регулярные учения.