防暴力破解小脚本

截取安全日志文件里登陆失败的IP来进行屏蔽,一旦有登陆失败记录的IP将无法再次连接,若要解除,可以将安全日志及其hosts_deny文件里的内容清空即可。

#!/bin/bash

cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}' > /root/black.txt

DEFINE="5"

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 $DEFINE ];

then

grep $IP /etc/hosts.deny > /dev/null

if [ $? -gt 0 ];

then

echo "sshd:$IP" >> /etc/hosts.deny

echo "vsftpd:$IP" >> /etc/hosts.deny

echo "mysqld:$IP" >> /etc/hosts.deny

fi

fi

done