Уважаемые, помогите пожалуйста ...
Задача: каждые 15 мин анализировать активность на 21 порту сетевого интерфейса (карты)
и автоматически банить все ip, активность которых слишком высока ...
берём tcpdump
анализируем 1000 пакетов
tcpdump -v -n -w /var/log/tcpdump.log dst port 21 -c 1000
потом анализируем дамп
tcpdump -nr /var/log/tcpdump.log |awk '{print $3}' |grep -oE '[0-9]{1,}\.[0-9]{1,}\.[0-9]{1,}\.[0-9]{1,}' |sort |uniq -c |sort -rn
получаем список в котором количество подключений и ip ...
94 94.41.154.251
54 109.167.128.15
51 109.194.238.124
48 85.141.73.158
42 79.139.255.104
38 95.175.237.51
38 93.125.17.141
36 95.131.212.86
36 93.157.148.44
36 90.151.159.210
35 109.194.90.31
33 95.28.190.127
32 95.221.44.199
32 93.85.26.132
32 87.119.232.176
этот запрос можно перенаправить в файл, ну тупо дописав в конце > /var/log/123.txt
а потом убить все скриптом
#!/bin/bash
BLOCKDB="/var/log/123.txt"
IPS=$(grep -Ev "^#" $BLOCKDB)
for i in $IPS
do
iptables -A INPUT -s $i -j DROP
так ... а теперь вот это всё нужно автоматизировать ... т.е. написать скрипт, который будет запускать дамп,
потом его анализировать и баннить сам ... каждые 15 мин ...
+ в 123.txt нужно записывать не все ip, а только те с которых число подключений привышает ну 10 скажем ...
Помогайте, нароооод!!!