Planetahost VPS
Перейти к основному контенту

DDoS-атаки: типы и выявление на Linux

intro-Types and manifestations of DDoS attacks on Linux-planetahost.png

Подробности урока

Уровень сложности Средний
Права root Требуются
Требования Терминал Linux
Категория Безопасность
Совместимость с ОС Debian, Ubuntu, RHEL
Примерное время чтения 1 час

Введение

DDoS-атака (Distributed Denial of Service) - это попытка сделать сервис недоступным, перегружая сервер большим количеством соединений или сетевого трафика.

Атаки могут происходить на разных уровнях модели OSI. От сетевого уровня до уровня приложений. В этой статье рассмотрим распространённые типы атак, их признаки на Linux-сервере, способы диагностики и частичной защиты стандартными средствами системы.

Виды атак

SYN Flood (L4)

В чем смысл атаки

TCP соединение устанавливается через механизм трёхстороннего рукопожатия:

SYN - SYN-ACK - ACK

При SYN flood атакующий отправляет большое количество SYN-пакетов, но не завершает соединение. Сервер создаёт запись о соединении и ждёт ACK. Когда таких соединений становится слишком много, очередь соединений переполняется, и сервер перестаёт принимать новые подключения.

Как это выглядит на сервере

ss -ant | grep SYN-RECV

Пример:

изображение.png

Что мы видим:

  1.     Цель: 192.168.88.10:22 (SSH-порт)
  2.     Состояние: SYN-RECV - классические «висящие» соединения от SYN Flood
  3.     Source IP: Подменённые случайные адреса (137.107.123.240, 137.204.96.214 и т.д.)
  4.     Порт источника: Случайные порты (1866, 1816, 1777...)

Количество соединений:

ss -ant | grep SYN-RECV | wc -l

изображение.png

Как выглядит в tcpdump

tcpdump -n 'tcp[tcpflags] & tcp-syn != 0'

Пример:

изображение.png

Защита стандартными средствами

Включить SYN cookies

sysctl -w net.ipv4.tcp_syncookies=1

Увеличить очередь соединений

sysctl -w net.core.somaxconn=65535

Ограничить новые соединения

iptables -A INPUT -p tcp --syn --dport 80 -m limit --limit 20/s -j ACCEPT
iptables -A INPUT -p tcp --syn --dport 80 -j DROP

UDP Flood (L3/L4)

В чем смысл атаки

UDP не требует установки соединения. Атакующий может отправлять огромное количество UDP-пакетов на случайные порты, заставляя сервер обрабатывать их.

Как выглядит на сервере

netstat -su

Пример:

изображение.png

Что мы видим:

  1. Общее количество полученных UDP-пакетов: 108 434.
  2. Пакеты, пришедшие на закрытые порты: 1 927 0