华为云服务器 Ubuntu20.04 通过xshell防止暴力破解

看到这个 我是谁我在哪里?我要怎么办?瞎折腾之利用shell防止暴力破解

1、查找/var/log/secure中验证失败且出现的次数较多的ip,对其进行封IP处理

vi /usr/local/bin/secure.sh

#输入以下脚本
#! /bin/bash
 cat /var/log/syslog|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}' > /usr/local/bin/black.list
 for i in `cat /usr/local/bin/black.list`
 do
  IP=`echo $i |awk -F= '{print $1}'`
  NUM=`echo $i|awk -F= '{print $2}'`
  #if [ ${#NUM} -gt 1 ]; then ##失败次数>10,可读性太差,调整为如下:
  if [ $NUM -gt 10 ]; then
  grep $IP /etc/hosts.deny > /dev/null ##检索IP是否已存在于hosts.deny
  if [ $? -gt 0 ];then ##$?上一条命令的执行结果,0有正常输出,其他异常
  echo "sshd:$IP:deny" >> /etc/hosts.deny ##增加屏蔽登录失败的IP
  fi
  fi
 done

chmod +x /usr/local/bin/secure.sh

然后将secure_ssh.sh加入到cron计划任务中即可。

 vi  /var/spool/cron/root

#增加以下命令,一分钟执行一次
 */1 * * * *  sh/usr/local/bin/secure.sh

避免增加系统负担,调整为十分钟执行一次

初次执行过后,为减轻系统压力,可清掉相应日志,清理之前最好备份
cp /var/log/syslog /var/log/syslog.20210528 && >/var/log/syslog

网上找的方法,不知道是否有效,明天继续折腾o(╥﹏╥)o


今天看了一下服务器,脚本有按时执行和备份、攻击没有新增、自己知识浅薄、还需要继续努力学习,加油!


(完)