Тень 45 Опубликовано 7 сентября, 2012 Защита от DDOS tcpdump - это мощнейшая утилита UNIX, позволяющая перехватывать и анализировать сетевой трафик, проходящий через сетевые интерфейсы. Об установке читайте на сайте разработчика, в FreeBSD она есть в портах, в Debian Linux в репозиториях. Приведу пример как можно использовать tcpdump. Например, на сервере отключены логи, идет легкая ddos атака, происходит что-то не ладное, вы хотите быстро посмотреть масштабность или убедиться, что это DDoS-атака, а не DoS или может это вообще никак не связано с внешним миром? Давайте посмотрим tcpdump -v -i eth0 dst port 80 После выше набранной команды вы сможете наблюдать список подключений к 80-у порту, чем больше повторных подключений с одинаковых хостов тем вероятнее мы столкнулись с DoS или DDoS атакой. Как вы уже наверное догадались, изменив порт можно проверить есть ли атака на FTP, SSH или другие сервисы которые крутятся на сервере. Добавив ключ -n имена хостов преобразуются в IP адреса. Глазами все не уследить, при атаке на веб-сервер вывод tcpdump-a сумасшедшей скоростью будет двигаться вдоль окна вывода терминала Поэтому, мы сначала запишем вывод tcpdump-a в файл. Пакетов 200-300 хватит. tcpdump -v -n -w attack.log dst port 80 -c 250 -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 Результат будет - 2 столбца, в первом количество подключений, во втором IP. Чем больше подключений для одного IP тем вероятнее что это бот. Если список очень длинный можно ограничить его указав нужное количество выводимых строк 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 Мы добавили head -20 Что бы получить только IP адреса, без первого столбца, нужно убрать ключ -c после uniq Вывод парсинга можно перенаправить в файл, а затем простым bash-скриптом, заблокировать все IP со списка. #!/bin/bash BLOCKDB="ips.txt" IPS=$(grep -Ev "^#" $BLOCKDB) for i in $IPS do iptables -A INPUT -s $i -j DROP 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
SacrilioN 1 Опубликовано 11 сентября, 2012 (изменено) Молодец http://gamesonlin.ru...ty-tcpdump.html (не реклама) http://gamesonlin.ru/18-zaschita-ot-ddos-utilitoy-tcpdump.html (не реклама) Изменено 11 сентября, 2012 пользователем SacrilioN Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Ckopnu 225 Опубликовано 11 сентября, 2012 Молодец http://gamesonlin.ru...ty-tcpdump.html (не реклама) http://gamesonlin.ru...oy-tcpdump.html (не реклама) Ну и? допустим он взял оттуда,я лично не нашел бы такое,а так сразу здесь будет =) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
taste 501 Опубликовано 11 сентября, 2012 80 порт, только тапок его открытым оставит Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты