Centos7下的shadow暴力破解

编写脚本检查/var/log/secure访问日志文件。

  思路:通过统计日志文件中的登陆失败的ip,并将达到阈值的ip添加到/etc/hosts.deny来拒绝某个ip的再次访问。

   脚本:之前写的,比较low。

#!/bin/bash

 #SSH配置文件所在位置
 SSH_config='/etc/hosts.deny'
 #ssh 日志文件位置
 SSH_log='/var/log/secure'
 #记录尝试登陆超过15次且未登陆成功的ip,以及添加进黑名单的时间日志
 Deny_log='/var/lib/ssh_shell/ssh_deny.log'
 #储存所有ip及访问次数文件
 Visit_ip='/var/lib/ssh_shell/ssh_visit.txt'
 #超过设置下面次数将被添加进黑名单
 Visit_number=60
 #检查ssh日志文件是否存在
 if [ ! -e  $SSH_log ]
 then
         echo -e "\033[41;37m  ssh 日志文件不存在 请检查原因 \033[0m"
 exit 1
 fi
 
 if [ ! -e "$SSH_config.bak" ]
 then
     cp $SSH_config  $SSH_config.bak
     if [ $? -eq 0 ]
     then
         echo " 备份文件成功" >>$Deny_log
     else
         echo  -e"\033[41;37m ssh备份文件不成功  \033[0m"
     exit 2
     fi
 else
     echo " 已有备份文件 " >>$Deny_log
 fi
 
 cat $SSH_log |awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{ print $2"==="$1}' > $Visit_ip
 echo "---------$(date +%F_%T)------------" >>$Deny_log
 
 for VI  in  $(cat  $Visit_ip)
 do
         Number=$(echo $VI |awk -F=== '{print  $2}')
         IP=$(echo $VI |awk -F=== '{print  $1}')
         if  [ $Number -gt $Visit_number ]
         then
                 grep $IP "$SSH_config" >/dev/null
                 if [ $? -ne  0 ]
                 then
                     echo " sshd:$IP:deny" >>$SSH_config
                     echo "$IP " >>$Deny_log
                 fi
         fi
 
 done
上一篇:winform —— listview创建表及简单的增删改查


下一篇:CentOS7 安装nginx