>Роботы сканеры подбирают логины к SSH, это можно найти в логах, как
>с помощью ipfw автоматически блокировать или вносить ip адреса роботов сканеров
>
#!/bin/sh
# если два часа ночи - удаляем предыдущие правила
if [ `date +%H` -eq 02 ]
then
/sbin/ipfw delete 1 >/dev/null 2>&1
fi
#
day=`date +%d`
month=`date +%m`
year=`date +%Y`
log_dir="/var/old_log/${year}/${month}"
# создаём папку для логов
mkdir -p ${log_dir}
log_file="${log_dir}/${day}_auth.log"
# переносим логи
cat /var/log/auth.log > /tmp/auth.log
cat /dev/null > /var/log/auth.log
cat /tmp/auth.log >> ${log_file}
# Вначале отлавливаем IP с которых пытаются залогинится
# под несуществующими пользователями
cat /tmp/auth.log | \
grep Illegal | awk '{print $10}' | sort | uniq -c | sort |
{
while read count_IP
do
count_deny=`echo ${count_IP} | awk '{print $1}'`
IP=`echo ${count_IP} | awk '{print $2}'`
if [ ${count_deny} -ge 10 ]
then
#echo "IP address = ${IP} deny count = ${count_deny}"
/sbin/ipfw add 1 deny ip from ${IP} to me >/dev/null 2>&1
fi
done
}
# отлавливаем IP c которых лезут под системными
# пользователями (с учётом того, что сделали раньше,
# ходить разрешили только описанным в sshd_conf)
cat /tmp/auth.log | \
grep "Failed password" | awk '{print $11}' | sort | uniq -c | sort |
{
while read count_IP
do
count_deny=`echo ${count_IP} | awk '{print $1}'`
IP=`echo ${count_IP} | awk '{print $2}'`
if [ ${count_deny} -ge 5 ]
then
#echo "IP address = ${IP} deny count = ${count_deny}"
/sbin/ipfw add 1 deny ip from ${IP} to me >/dev/null 2>&1
fi
done
}
в сron каждые 5 мин.
(С) lissyara (www.lissyara.su)