Моя проблема в том, что у меня есть отчет о том, что мой IP-адрес использовался в DOS-атаке. Проблема в том, что я не знаю, какой компьютер заражен, и атака больше не активна.
Есть ли простой инструмент Linux для моего маршрутизатора (работающий под управлением Fedora), который будет подсчитывать частоту пакетов на локальный IP-адрес, и если он превышает мою выбранную константу, он запустит мой сценарий оболочки?
Обратите внимание: меня также интересуют пакеты, генерируемые локальным хостом (на случай, если сам сервер был взломан).
Это типичный сценарий для Поток данных, передающихся по сети. Он предоставит вам исторические данные о вашем трафике с разбивкой по адресам, протоколам и портам, которые вы можете оценить и посмотреть на модных графиках.
Итак, я нашел одно решение, используя iptables:
# create new chain for every local ip we wanna monitor
iptables -N ip10
# forward traffic from monitored IP to it's chain "ip10"
iptables -A FORWARD -i myLan -s 192.168.2.10 -o myWan -j ip10
# trafic from other IP's we trusted we just accept
iptables -A FORWARD -i myLan -o myWan -j ACCEPT
# here we have even better thing than I asked for
# we can ban the DOS attack before it gets out
# in following line we set maximum 100 packet per second
iptables -A ip10 -m limit --limit 100/s --limit-burst 300 -j ACCEPT
# here we can directly log if above limit is breached
# log will be in /var/log/message and it will contains IP src+dst, src mac and other info
# note limit 3 msg per minute is important to not have too big log file
iptables -A ip10 -m limit --limit 3/m --limit-burst 10 -j LOG --log-prefix 'mylog:' --log-level 4
# finally packets over limit will be discarded
iptables -A ip10 -j DROP
также посмотреть отправленные пакеты и их размер с одного IP-адреса, затем можно получить, позвонив:
iptables -L ip10 -vxn
вам нужно будет сделать это в каком-то скрипте и пересчитать его до пакетов в секунду, если интересно
Обратите внимание, что для мониторинга самого сервера вам потребуется сделать аналогичный подход для цепочки
iptables -A OUTPUT
протестирован на Fedora 18. Я попытался атаковать другой свой компьютер, и пакеты действительно были остановлены :)