DDoS-атаки Layer 4 и Layer 7: обнаружение и защита
Полное руководство по обнаружению, анализу и защите от TCP/UDP flood, SYN flood, HTTP flood, slowloris и amplification атак.
Содержание
DDoS-атаки Layer 4 и Layer 7: обнаружение и защита
DDoS-атаки (Distributed Denial of Service) направлены на вывод вашего сервера или сети из строя путём перегрузки чрезмерным трафиком. Эти атаки происходят на разных уровнях модели OSI. В этом руководстве рассматриваются типы атак Layer 4 (Transport) и Layer 7 (Application), методы обнаружения и стратегии защиты.
Инфраструктура REXE обеспечивает защиту на сетевом уровне от атак Layer 3/4 через Path Panel. Для защиты Layer 7 можно использовать Cloudflare WAF или пользовательские конфигурации.
Модель OSI и уровни DDoS
| Уровень | Название | Типы атак | Цель |
|---|---|---|---|
| Layer 3 | Сетевой | IP flood, ICMP flood | Пропускная способность сети |
| Layer 4 | Транспортный | SYN flood, UDP flood, TCP flood | Таблица соединений |
| Layer 7 | Прикладной | HTTP flood, Slowloris, DNS query | Ресурсы приложения |
Атаки Layer 4
Атаки Layer 4 нацелены на протоколы TCP и UDP для исчерпания ресурсов соединений сервера.
SYN Flood
Использует процесс трёхстороннего рукопожатия TCP. Атакующий отправляет множество SYN-пакетов, но никогда не отвечает ACK.
Нормальное TCP-соединение:
Клиент → SYN → Сервер
Клиент ← SYN-ACK ← Сервер
Клиент → ACK → Сервер
✓ Соединение установлено
SYN Flood:
Атакующий → SYN → Сервер
Атакующий ← SYN-ACK ← Сервер
Атакующий → (не отправляет ACK)
✗ Полуоткрытые соединения накапливаются
Обнаружение SYN Flood
# Проверка полуоткрытых соединений
ss -s
# Список соединений SYN-RECV
ss -tnp state syn-recv
# Распределение состояний соединений
ss -ant | awk '{print $1}' | sort | uniq -c | sort -rn
Защита от SYN Flood
# Включить SYN cookies
sudo sysctl -w net.ipv4.tcp_syncookies=1
# Увеличить SYN backlog
sudo sysctl -w net.ipv4.tcp_max_syn_backlog=65536
# Уменьшить количество повторов SYN-ACK
sudo sysctl -w net.ipv4.tcp_synack_retries=2
# Сделать постоянным
cat >> /etc/sysctl.conf << 'EOF'
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 65536
net.ipv4.tcp_synack_retries = 2
net.core.somaxconn = 65536
EOF
sudo sysctl -p
UDP Flood
Поскольку UDP является протоколом без установления соединения, можно отправлять большие объёмы UDP-пакетов с поддельными IP-адресами.
# Мониторинг UDP-трафика
sudo tcpdump -i eth0 udp -c 1000 -nn
# Закрыть ненужные UDP-порты
sudo iptables -A INPUT -p udp --dport 19 -j DROP # chargen
sudo iptables -A INPUT -p udp --dport 69 -j DROP # TFTP
sudo iptables -A INPUT -p udp --dport 111 -j DROP # portmap
# Ограничение скорости UDP
sudo iptables -A INPUT -p udp -m limit --limit 100/s --limit-burst 200 -j ACCEPT
sudo iptables -A INPUT -p udp -j DROP
Атаки Amplification
Атакующий отправляет небольшие запросы для генерации больших ответов, используя IP жертвы в качестве источника.
| Протокол | Коэффициент усиления | Порт |
|---|---|---|
| DNS | 28-54x | 53 |
| NTP | 556x | 123 |
| Memcached | 51000x | 11211 |
# Отключить NTP monlist
echo "disable monitor" >> /etc/ntp.conf
sudo systemctl restart ntpd
# Привязать Memcached только к localhost
echo "-l 127.0.0.1" >> /etc/memcached.conf
sudo systemctl restart memcached
Атаки Layer 7
Атаки Layer 7 нацелены на протокол HTTP/HTTPS для исчерпания ресурсов приложения веб-сервера.
HTTP Flood
Перегружает веб-сервер отправкой множества HTTP GET или POST запросов.
# Мониторинг количества HTTP-запросов (Nginx)
tail -f /var/log/nginx/access.log | awk '{print $1}' | sort | uniq -c | sort -rn | head -20
# Запросы в секунду
awk '{print $4}' /var/log/nginx/access.log | cut -d: -f1-3 | sort | uniq -c | sort -rn | head -10
Защита от HTTP Flood (Nginx)
limit_req_zone $binary_remote_addr zone=general:10m rate=10r/s;
limit_req_zone $binary_remote_addr zone=api:10m rate=5r/s;
limit_conn_zone $binary_remote_addr zone=addr:10m;
server {
limit_req zone=general burst=20 nodelay;
limit_conn addr 50;
location /api/ {
limit_req zone=api burst=10 nodelay;
}
}
Slowloris
Slowloris исчерпывает пул соединений сервера, удерживая HTTP-соединения открытыми как можно дольше.
Защита от Slowloris (Nginx)
http {
client_header_timeout 10s;
client_body_timeout 10s;
send_timeout 10s;
keepalive_timeout 15s;
limit_conn_zone $binary_remote_addr zone=conn:10m;
limit_conn conn 20;
}
Общие стратегии защиты
Оптимизация параметров ядра
cat >> /etc/sysctl.conf << 'EOF'
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 65536
net.ipv4.tcp_synack_retries = 2
net.netfilter.nf_conntrack_max = 1000000
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.core.netdev_max_backlog = 65536
net.core.somaxconn = 65536
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.conf.all.rp_filter = 1
EOF
sudo sysctl -p
Защита от DDoS с помощью iptables
#!/bin/bash
# Отбросить недействительные пакеты
iptables -A INPUT -m state --state INVALID -j DROP
# Проверка SYN для новых соединений
iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
# Отбросить XMAS-пакеты
iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
# Отбросить NULL-пакеты
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
# Защита от SYN flood
iptables -A INPUT -p tcp --syn -m limit --limit 100/s --limit-burst 200 -j ACCEPT
# Лимит соединений на IP
iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 50 -j DROP
iptables -A INPUT -p tcp --dport 443 -m connlimit --connlimit-above 50 -j DROP
Заключение
Атаки DDoS Layer 4 и Layer 7 требуют различных стратегий. Атаки Layer 4 блокируются на сетевом уровне (Path Panel, iptables), а атаки Layer 7 фильтруются на уровне приложения (rate limiting, WAF, Cloudflare). Многоуровневый подход к защите обеспечивает наиболее эффективную оборону.
Связанные статьи
Руководство по использованию панели управления DDoS-защитой Path Panel
Полное руководство по REXE Path Panel: панель мониторинга, «Мои IP», статус TR-защиты, управление правилами, история атак, abuse filtered, смена пароля и доступ по API.
Руководство по выбору DDoS-фильтров для игровых серверов
Руководство по игровым DDoS-фильтрам Path.net: Arma/DayZ, Source Engine, CS:GO, CS2, FiveM, Minecraft, Rust и другие — как применить каждый фильтр.
Руководство по DDoS-фильтрам для приложений и сервисов
Фильтры приложений DDoS-защиты Path.net: OpenVPN, Wireguard, DTLS, RTP, QUIC, SIP, TCP Symmetric и другие.