FreeBSD

Защита от DDoS с помощью утилиты tcpdump

Например, на сервер идет легкая ddos атака, происходит что-то не то, вы хотите быстро посмотреть масштабность или убедиться, что это DDoS-атака.

Давайте посмотрим:

tcpdump -v -i vr0 dst port 80

После выше набранной команды вы сможете наблюдать список подключений к 80-у порту, чем больше повторных подключений с одинаковых хостов тем вероятнее мы столкнулись с DDoS атакой. Если изменить порт можно проверить есть ли атака на FTP, SSH или другие сервисы которые крутятся на сервере. Добавив ключ -n имена хостов преобразуются в IP адреса.

Запишем вывод tcpdump-a в файл. пакетов 500 хватит.

tcpdump -i vr0 -v -n -c 500 -w attack.log dst port 80

-v простой уровень логирования.
-n преобразуем имена хостов в IP адреса.
-w записываем анализ трафика в файл.
-c количество захваченных пакетов.

Приступим к анализу полученных данных через tcpdump, отпарсим лог следующей командой:

tcpdump -nr attack.log |awk '{print $3}' |grep -oE '[0-9]{1,}.[0-9]{1,}.[0-9]{1,}.[0-9]{1,}' |sort |uniq -c |sort -rn

Если список очень длинный можно ограничить его указав нужное количество выводимых строк:

tcpdump -nr attack.log |awk '{print $3}' |grep -oE '[0-9]{1,}.[0-9]{1,}.[0-9]{1,}.[0-9]{1,}' |sort |uniq -c |sort -rn | head -20

Блокируем IP в фаерволе.

Оставить комментарий