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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

划水的运维

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值