#!/bin/bash
cat /var/log/auth.log|awk ‘/Failed/{print $(NF-3)}’|sort|uniq -c|awk ‘{print $2"="$1;}’ > /root/black.txt
TRYCOUNT="3"
for i in `cat /root/black.txt`
do
        IP=`echo $i |awk -F= ‘{print $1}’`
        NUM=`echo $i|awk -F= ‘{print $2}’`
        if [ $NUM -gt $TRYCOUNT ];
        then
                grep $IP /etc/hosts.deny > /dev/null
                if [ $? -gt 0 ];
                then
                        echo "sshd:$IP" >> /etc/hosts.deny
                fi
        fi
done

发表评论

电子邮件地址不会被公开。 必填项已用*标注