VPS侦探论坛

 找回密码
 注册
查看: 4959|回复: 0

放2个bash脚本,用于屏蔽ssh的穷举密码攻击!

[复制链接]
发表于 2014-11-29 16:41:05 | 显示全部楼层 |阅读模式

为了更好的保护linux的ssh 不被坏人用于 密码穷举,首先必须保证 ssh 的配置是:
#vim /etc/ssh/sshd_config

里面有一行是
MaxAuthTries 3



==================================

然后可以写2个小脚本,
A--ssh_scan.sh---用iptables屏蔽ssh穷举密码的 ip地址 (记得先安装好 iptables 软件包)
B---secure_ssh.sh---用hosts.deny 同样也是屏蔽在不断猜密码的 对方ip地址


==================================

我举例,是用在 centos 上(debian 则需要更改一个小地方,就没问题了的)


源码如下所列

A--ssh_scan.sh

#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH

#export LC_ALL=UTC

#扫描10分钟内的登陆失败的IP
SCANNER=$( tm=$(date -d '10 minutes ago' +"%h %d %H") && \
             awk -v tm="$tm" ' $0 ~ tm &&  /Failed password/ && /ssh2/ { print $(NF-3) ; } ' /var/log/secure \
           | sort \
           | uniq -c \
           | awk '{print $1"="$2;}' \
        )

for i in $SCANNER

do
    #截取IP与数量
     IP=`echo $i|awk -F= '{print $2}'`
    NUM=`echo $i|awk -F= '{print $1}'`

    #数量大于8次,则使用iptables禁止IP
    if [ $NUM -gt 8 ]
    then
        iptables -vnL | grep DROP | grep $IP &>/dev/null
        [ $? -eq 0 ] || /sbin/iptables -I INPUT -s $IP -j DROP
        echo "`date` $IP($NUM)" >> /var/log/scanner.log
    fi

done
#End of Script


================================================

B--secure_ssh.sh

#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH

cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}' > /root/black.txt

DEFINE=5

for i in `cat  /root/black.txt`

do

IP=`echo $i |awk -F= '{print $1}'`

NUM=`echo $i|awk -F= '{print $2}'`

if [ $NUM -gt $DEFINE ];then

grep $IP /etc/hosts.deny > /dev/null
      if [ $? -gt 0 ];then
          echo "sshdIP:deny" >> /etc/hosts.deny
      fi
    fi
done


========================================

工作原理大致是 一样的!

然后 可以在定时任务器里面添加
添加定时任务
.[root@vps ~]# crontab -e
*/2 * * * * /bin/bash /home/softs/ssh_scan.sh

*/1 * * * * /bin/bash /home/softs/secure_ssh.sh

========================================

最后说明一下,debian的 记录被人在穷举密码的文件是
/var/log/auth.log

centos 下 则是 /var/log/secure

因此,稍微替换一下 脚本的对应位置,则同样可以放在 debian 下运行的!

感谢

最后,打包好了 脚本,我放压缩包,给大家下载 研究的!




[ 本帖最后由 imacintosh 于 2014-11-29 16:43 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
美国VPS推荐: 遨游主机LinodeLOCVPS主机云搬瓦工80VPSVultr美国VPS主机中国VPS推荐: 阿里云腾讯云。LNMP付费服务(代装/问题排查)QQ 503228080
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|VPS侦探 ( 鲁ICP备16040043号-1 )

GMT+8, 2024-9-27 05:51 , Processed in 0.025291 second(s), 17 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表