Поиск и блокировка вредных IP

Продолжение той истории.

Так как на новый сервер переносилась старая база логинов и паролей (что бы максимально смягчить для пользователей шок от перезда), то попадались откровенно слабые к перебору пароли, например 123321 или qwer123. И особо ленивые их не сменили. Поэтому подобрали пароль к старой но редко пользуемой учетке. Для начала меняем пароль через postfixadmin, а потом баним разбойников.

Выясняем кто и что:

# cat amavis_open_relay.sh
#!/bin/sh

# 2.2.2.2 - my IP или надежные IP 

cat /var/log/amavisd-new.log | grep "OpenRelay" | grep -v -e 2.2.2.2 > /var/log/z_open_relay.`date +%Y-%m-%d`

Парсим IP (если добавим к uniq -c – получим количество вхождений):

# cat z_open_relay.2019-07-16 | grep "user_name" | awk '{print $11}' | uniq > /home/admin/ip_ban_20190716.txt

Получился такой список:

[191.240.84.96]
[191.36.154.138]
[95.182.120.38]
[95.182.120.36]
[185.231.245.42]
[185.231.245.41]
[185.231.245.46]
[95.182.120.38]
[185.231.245.46]
[95.182.120.38]
[94.242.206.124]
[185.231.245.40]
[185.231.245.44]
[94.242.206.127]
[185.231.245.48]
[5.44.45.137]
[94.242.206.124]
[185.231.245.43]
[5.44.45.143]
[5.44.45.139]

Чистим от скобок:

# sed -i -e 's/\[//g' ip_ban_20190716.txt && sed -i -e 's/\]//g' ip_ban_20190716.txt
# cat ip_ban_20190716.txt
191.240.84.96
191.36.154.138
95.182.120.38
95.182.120.36
185.231.245.42
185.231.245.41
185.231.245.46
95.182.120.38
185.231.245.46
95.182.120.38
94.242.206.124
185.231.245.40
185.231.245.44
94.242.206.127
185.231.245.48
5.44.45.137
94.242.206.124
185.231.245.43
5.44.45.143
5.44.45.139

С помощью скрипта загоняем их в таблицу на “вечный” бан:

# cat add_ip_to_ipfw.sh 
#!/bin/sh
# IPFW table 3, 4
cat /home/admin/ip_ban_20190716.txt | { while read ip;
do
        /sbin/ipfw table 3 add $ip;
done;
}