当前位置:论坛首页 > Linux面板 > 讨论

暴力破解就屏蔽攻击者IP

发表在 Linux面板2017-12-13 17:56 [复制链接] 4 5555

本帖最后由 小新 于 2017-12-13 18:02 编辑

这几天,在论坛里发现有不少人都在说暴力破解 的事情。。分享一下一个脚本屏蔽方法。


PS.这个是针对一些对LINUX有一些基础的朋友,会有终端的,全小白,慎重,不过,按下面的流程应该问题不大。。






SSH登陆信息主要是存放在/var/log/secure日志,所以暴力破解,登际失败的都在这里。

动手写个脚本:

#!/bin/bash
LIMIT=30     #这边可以自定义限制次数
LOGFILE="/var/log/block_ssh.log"     #日志路径
TIME=$(date '+%b %e %H')     #example: Apr 11 11
BLOCK_IP=$(grep "$TIME" /var/log/secure|grep Failed|awk '{print $(NF-3)}'|sort|uniq -c|awk '$1>"$LIMIT"{print $1":"$2}')     #将1小时内ssh认证失败超过30次的ip抓出来
for i in $BLOCK_IP
do
     IP=$(echo $i|awk -F: '{print $2}')
     iptables-save|grep INPUT|grep DROP|grep $IP>/dev/null     #先判断下是否已经被屏蔽
     if [ $? -gt 0 ];then
          iptables -A INPUT -s $IP -p tcp --dport 22 -j DROP     #屏蔽ip
          NOW=$(date '+%Y-%m-%d %H:%M')
          echo -e "$NOW : $IP">>${LOGFILE}
     fi
done


基本思路是统计出1小时ssh认证失败超过30次的IP,如果没屏蔽过的就将其加入iptables屏蔽。
这里就不设置白名单了,正常ip在一个小时内不会有那么多的Failed认证。

给予脚本执行权限:

chmod 755 /root/block_ssh.sh

最后加入到crontab定时任务,10分钟运行一次:

echo "*/10 * * * * root /root/block_ssh.sh" >>/etc/crontab

脚本运行一段时间后的日志:
2017-11-13 02:10 : 210.75.241.20
2017-11-13 02:10 : 59.60.7.102
2017-11-13 11:30 : 189.47.32.19
2017-11-13 13:30 : 184.107.119.213
2017-11-13 18:30 : 222.122.20.145
2017-11-14 05:10 : 188.127.226.66
2017-11-14 09:00 : 69.163.33.98
2017-11-14 10:10 : 184.106.165.164
2017-11-14 22:10 : 65.117.150.99
2017-11-15 06:00 : 124.205.252.158

对了,脚本防护SSH的方法在网上有很多,可以自行百度一下。



----------------------------------------
小新Blog    三七保健    保险网


使用道具 举报 只看该作者 回复
发表于 2017-12-14 03:21:09 | 显示全部楼层
来个一键包吧
使用道具 举报 回复 支持 反对
发表于 2017-12-14 15:10:13 | 显示全部楼层

这一点东西还要一键包。。。。。。哪你等官方集成吧。
使用道具 举报 回复 支持 反对
发表于 2017-12-23 08:09:54 | 显示全部楼层
谢谢提供
使用道具 举报 回复
发表于 2018-9-28 00:06:36 | 显示全部楼层
好东西 感谢楼主。中国美妆网 支持BT面板
使用道具 举报 回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

企业版年付运维跟进群

普通问题处理

论坛响应时间:72小时

问题处理方式:排队(仅解答)

工作时间:白班:9:00 - 18:00

紧急问题处理

论坛响应时间:10分钟

问题处理方式:1对1处理(优先)

工作时间:白班:9:00 - 18:00

工作时间:晚班:18:00 - 24:00

立即付费处理
快速回复 返回顶部 返回列表