安全之防ssh暴力破解

IT
IT
IT
401
文章
1
评论
2020年5月21日14:28:10 评论 4,175 1919字阅读6分23秒

博主的博客经常被搞

为啥一直没有被搞掉?

因为博主做了一些安全措施

今天先讲防止被爆菊

打开阿里云盾一看各种被爆破

安全之防ssh暴力破解

 

针对这个现象,不管你是把ssh端口改为别的或者是默认的22端口,都会存在被暴力破解的可能

今天博主就用一个亲测的脚本来打击暴力破解者

shell统计访问失败的IP和次数,从而根据这些再通过防火墙规则来限制这些IP再次暴破

[root@iZ2ze3mxkrdvosnmohl9yvZ ~]# vim ssh.sh

#!/bin/sh 
SCANIP=`grep "Failed" /var/log/secure | awk '{print $(NF-3)}' | sort | uniq -c | awk '{print $1"="$2;}'`
for i in $SCANIP
do
 NUMBER=`echo $i | awk -F= '{print $1}'`
 SCANIP=`echo $i | awk -F= '{print $2}'`
 echo "$NUMBER($SCANIP)" 
 if [ $NUMBER -gt 10 ] && [ -z "`/sbin/iptables -vnL INPUT | grep $SCANIP`" ]
 then
 /sbin/iptables -I INPUT -s $SCANIP -m state --state NEW,RELATED,ESTABLISHED -j DROP
 echo "`date` $SCANIP($NUMBER)" >> /var/log/scanip.log 
 fi 
done

测试版本

#!/bin/sh 
#NGINX=$(egrep "htpasswd" /usr/local/nginx/logs/error.log |awk -F',' '{print $2}' |awk '{print $2}' |sort |uniq -c |awk '$1>20' |awk '{print $1"="$2}') 
#FTP=$(egrep "vsftpd" /var/log/secure |egrep -o '([0-9]{1,3}\.){3}[0-9]{1,3}' |sort |uniq -c |awk '$1>20' |awk '{print $1"="$2}') 
#SQUID=$(egrep "TCP_DENIED/407" /var/log/squid/access.log |awk '{print $3}' |sort |uniq -c |awk '$1>30' |awk '{print $1"="$2}') 
SSH=$(egrep "Failed" /var/log/secure |awk '{print $(NF-3)}' |grep ^[1-9] |sort |uniq -c |awk '$1>10' |awk '{print $1"="$2}')  

#循环用iptables拒绝
#for i in $( echo "$SSH $FTP $NGINX $SQUID" |tr -s ' ' '\n')
for i in $SSH
do  
    NUMBER=`echo $i |awk -F= '{print $1}'`   
    SCANIP=`echo $i |awk -F= '{print $2}'`   
    echo "$SCANIP($NUMBER)"  

    if [ -z "`/sbin/iptables -vnL INPUT | grep $SCANIP`" ]   
    then   
        /sbin/iptables -I INPUT -s $SCANIP -j DROP
        ADDRESS=`/usr/bin/curl -s "http://ip138.com/ips138.asp?ip=$SCANIP&action=2"| iconv -f gb2312 -t utf-8|grep '<ul class="ul1"><li>' | awk -F '[<> ]+' '{print $7,$8}' | awk -F: '{print $2}'`
        echo "`date +%-F/%-H:%-M:%-S` $SCANIP($NUMBER) $ADDRESS" >> /var/log/scanip.log
    fi 
done

由于/var/log/secure是以星期为轮询的,所以我们每次可以查看这个文件,利用shell脚本统计出其中访问失败比较频繁的IP,并定义一个阀值为10(可自行修改为合适的值),如果超过这个阀值并且查看防火墙列表中有没有这条IP的记录,如果没有则添加相应防火墙规则,阻止此IP进行SSH登录,每隔一段时间进行一次检查,如果下次排查的某IP次数又大于10,并且检查它在不在我们的防火墙列表中,如果在的话就无视过去;如果不在,就继续添加进iptables中。然后我们定义一个计划任务,让每两分钟检测一次

添加到任务计划

[root@iZ2ze3mxkrdvosnmohl9yvZ ~]# crontab -e

*/2 * * * * /bin/sh ssh.sh

现在开始进行测试

安全之防ssh暴力破解

现在登录直接被拒绝掉,没有任何反应

安全之防ssh暴力破解

 

 

继续阅读
  • 我的QQ
  • QQ扫一扫
  • weinxin
  • 我的头条
  • 头条扫一扫
  • weinxin
IT
  • 本文由 发表于 2020年5月21日14:28:10
  • 除非特殊声明,本站文章均为原创,转载请务必保留本文链接
Teambition 网盘与阿里云盘数据合并说明 CentOS

Teambition 网盘与阿里云盘数据合并说明

前言 Teambition 团队是阿里巴巴的一个创新产品团队,除了你熟悉的 Teambition App,「阿里云盘」也是我们的作品,它们都属于阿里云正在打造的新一代「云服务」。 过去几个月,我们投入...
CentOS8安装Jenkins CentOS

CentOS8安装Jenkins

简述 Jenkins 是最流行的,开源的,基于 Java 的自动化服务器,它允许你很容易的设置一个持续集成和持续发布的管道。 持续集成 (CI)是一个 DevOps 实践。当团队成员正常提交代码到版本...
使用vmware安装VMware vSphere Hypervisor7.0服务端 CentOS

使用vmware安装VMware vSphere Hypervisor7.0服务端

创建虚拟机 安装 进入安装界面 敲击回车按F11 如下提示是:安装在哪一个硬盘里,根据自己的需求进行安装即可。博主直接默认安装在第一块硬盘上,直接回车。 默认即可,敲击回车 设置一个VMware的密码...

您必须才能发表评论!