防止ssh暴力破解的脚本

 防止ssh暴力破解的脚本

  最近在公司测试机上查看log /var/log/secure 发现好多Failed的ip,为了防止黑客暴力破解我们的系统,特意写了一个防止ssh暴力破解的脚本。

  此脚本主要是查看/var/log/secure里面的Failed的ip,超过多少次之后就加入到hosts.deny中。脚本中去除了内网的ip地址。然后把脚本防止crontab里面运行就可以了。

  脚本如下:

  
  
  
  
  1. #! /bin/bash 
  2.  
  3. cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}' > /tmp/ip.txt 
  4. DEFINE="10" 
  5. for i in `cat  /tmp/ip.txt`;do 
  6.         IP=`echo $i |awk -F= '{print $1}'
  7.         NUM=`echo $i|awk -F= '{print $2}'
  8.         if [ $NUM -gt $DEFINE ] && [ -z "`grep $IP /etc/hosts.deny`" ];then 
  9.                 if [ -z "`echo $IP | grep 172.16.1`" ];then 
  10.                         echo "sshd:$IP" >> /etc/hosts.deny 
  11.                         echo "`date +%F" "%H:%M` $IP($NUM)" >> /var/log/deny_ip.log 
  12.                 fi 
  13.         fi 
  14. done 

加入到crontab,每5分钟执行一次。

#crontab -e

###防止ssh暴力破解#####

*/5 * * * * /bin/sh /usr/home/pro/script/denyhost.sh

 

  其实还有开源的工具可以用,如denyhost。我自己为了快捷就写了脚本。

地址如下:wget http://imcat.in/down/DenyHosts-2.6.tar.gz

你可能感兴趣的:(shell脚本,denyhost,SSH破解)