标签:ssh 暴力破解
写的一个SSH的防暴力破解脚本。
原理是检测SSH连接日志,过滤登录失败的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="10" 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 fi fi done
注意,Ubuntu和CentOS的SSH日志文件路径不一样:
/var/log/auth.log Ubuntu是这个文件
/var/log/secure CentOS是这个文件
然后添加进任务计划:
CentOS:
echo "* */1 * * * root sh /root/ssh_deny.sh" >> /var/spool/cron/root
Ubuntu:
echo "* */1 * * * root sh /root/ssh_deny.sh > /dev/null 2>&1" >> /var/spool/cron/crontabs/root crontab /var/spool/cron/crontabs/root
由于Ubuntu默认的shell是dash,导致crontab不运行,我们就将默认shell改为bash就好了。
rm /bin/sh ln -s /bin/bash /bin/sh
标签:ssh 暴力破解
原文地址:http://jinglei1208.blog.51cto.com/2246261/1618526