Если защититься от ДДОС почти не возможно, кроме как банить конкретные IP адреса на некоторое время, то подскажите, плз, каким образом отследить IP ддосера, если есть подозрение на ддос? Какие
конкретные средства для этого можно использовать? Скрипты? Анализаторы логов?
Потому что в интернете в основном везде одна вода о том, что можно написать свой скрипт, который будет анализировать логи или смотреть текущую сетевую активноесть и бла-бла-бла прочее. Хочу конкретики!
1. Смотря какая оперционка стоит?
2. Какой канал интернета подключен?
3. Надо обязательно разграничеть порты для хода Интернета и ССШ... Так чтоб люди не могли загадить канал для ССШ подключения... (все это делается в фаерволле)
На каждой операционке разные методы борьбы, мне проще отбить атаку на FreeBSD...
На FreeBSD есть стандартные пакеты в портах find_ddos и ddos_scan...
Также на апач ставится пакет mod_dosevasive20, можно также поставить из портов...
Настраивается пакет dosevasive в апач конфиге так:
LoadModule evasive20_module /usr/lib/apache/mod_evasive20.so
<IfModule mod_evasive20.c>
DOSHashTableSize 3097
DOSPageCount 2
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 10000 # Время блокировки в миллисекундах (в моём случае на 7 дней)
DOSEmailNotify
EMAIL@EMAIL.UA # Почта куда прийдет сообщение о том что кого то заблокировало
DOSLogDir "/var/log/mod_evasive" # записывать все в лог файл
DOSWhiteList 127.0.0.1 # запрещаем блокировку этого айпи
DOSWhiteList 200.200.200.200 # запрещаем блокировку домашнего выделенного айпи
</IfModule>
После перегружаем апач...
Теперь когда пойдет атака мы узнаем об этом оповещением на почту... Для этого у меня стоит TheBAT с проверкой почты с интервалом 1 минута... Причем почту используем не внутреннюю сервера, а отдельную, к примеру mail.ru... Т.к. через определенное время может случиться плохая вещь, если сильно забьют канал инета...
После того как мы узнаем айпи атаковавшего с почты, мы его заносим на жесткий фаерволл к примеру такой командой:
ipfw add deny ip from 20.20.20.20 to any # это блокирует весь трафф с айпи 20.20.20.20...
Также можно написать скриптик:
Блокировка производится командой:
ipfw add deny ip from "table(1)" to any via em0
/etc/load_table.sh:
#!/bin/sh
ipfw table 1 flush
cat /etc/block.txt | while read cnt ip; do
ipfw table 1 add $ip
done
формат /etc/block.txt: "cnt ip"
получем, например, из tcpdump лога атаки:
tcpdump -n -i re0 udp and port 80 > ./tcpdump.log
cat ./tcpdump.log |cut -d' ' -f3|cut -d'.' -f1,2,3,4|sort|uniq -c |sort -r -n > /etc/block.txt
------------------------------------------------------
Активные соединения просмотреть так:
netstat -n | grep ^tcp | sort # даст просмотреть все соединения от и до...
netstat -n | grep ESTABLISHED # Тут покажутся только те соединения, которые в активе и без ожидания
------------------------------------------------------
Если есть конкретные вопросы, то можете стукнут в аську...