过程是找出日志里登陆失败的记录,提取ip和次数添加到/tmp/blacklist
在/tmp/blacklist里找,提取超过3次的ip添加到/etc/hosts.deny
脚本如下
#!/bin/bash
cat /var/log/secure | awk '/Failed/{print $(NF-3)}' | uniq -c |awk '{print $2"="$1}' > /tmp/blacklist
MAXCOUNT="3"
for i in `cat /tmp/blacklist`
do
IP=`echo $i | awk -F= '{print $1}'`
NUM=`echo $i | awk -F= '{print $2}'`
if [ $NUM -gt $MAXCOUNT ];then
grep $IP /etc/hosts.deny > /dev/null
if [ $? -gt 0 ];then
echo "sshd:$IP" >> /etc/hosts.deny
fi
fi
done
错误连接4次后切换到服务端运行脚本
第五次连接时被拒绝了