防止ssh暴力破解linux密码

网上看到一篇安全方面的文章,经常使用的网站收藏没法收藏,因而放这里先。具体功能还未测试请慎用linux

下面是博客原文转载,感谢做者辛苦劳动: shell


服务器在互联网中,天天都有些没事儿干的人在你的机器端口扫来扫去,让管理员很是烦恼。本文描述一个方法,利用本文介绍的脚本结合iptables服务一并使用,用来防止公网计算机经过ssh进行用户口令暴力破解。目前稳重脚本已经在其余项目的实际运营环境中获得验证。
安全

脚本内容:bash

#!/bin/bash
# 防SSH密码暴力破解脚本
# 经过分析secure日志文件使用iptables拒绝恶意登入IP
# by WangJun CaoYinSheng 2014.01.27

source /root/.bash_profile     #脚本运行环境变量
FILE_DIR=/opt/security_tools     #程序执行路径
LOG_FILE=/var/log/secure     #日志路路径
SAVE_FILE=$FILE_DIR/belialIP     #保存iptables拒绝IP文件名
SAVE_TEMP_FILE=${SAVE_FILE}.temp      #临时保存拒绝IP文件名,比较用
IP_REPEAT=15;          #容许尝试登入次数

#二次正则是考虑日志文件过大致使sort排序过慢的问题
ip=`cat $LOG_FILE | awk -F":" '{print $1":"$2":"$3":"$4""$7}' |sed -n -e '/.*Failed password.*/p' | sort | uniq -c | awk -v nnm=$IP_REPEAT '{if($1 > num) print $0;}' | sed -n -e 's/.*Failed password.*from[ ]\(.*\)[ ]port.*/\1/p'| awk '{a[$0]++}END{for(i in a){print i}}'`;

backIFS=$IFS;
IFS="\n";

if [ -e $SAVE_FILE ]
then
    echo $ip > $SAVE_TEMP_FILE;
    differ=`comm -13 $SAVE_FILE $SAVE_TEMP_FILE`;
    tmp=`cat $SAVE_FILE`;
    echo -e $differ"\n"$tmp | uniq | sort > $SAVE_FILE;
else
    differ=$ip;
    echo $ip > $SAVE_FILE;
fi

if [ ${differ} ]
then
    IFS=$backIFS;
    ips=`echo $differ | tr "\n" ' ' | tr -s ' '`;
    
    for dip in $ips;
    do
        iptables -A INPUT -s $dip -j DROP
    done;
fi


部署方法:服务器

一、在/opt/security_tools目录下建立文件killer.sh,并将脚本内容粘贴到文件中;ssh

二、运行killer脚本:测试

#sh -x ./killer.sh网站

找到root运行脚本的环境变量可能以下:spa

########输出内容   开始############
PATH=/usr/local/ImageMagick-6.8.8-2/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin:/root/bin
########输出内容   结束#############


#crontable -erest

将上述环境变量粘贴到crontable的最顶端一行;

三、建立crontable计划

#crontable -e

在crontable配置文件中添加以下信息:

########添加内容   开始############
*/10 * * * * /bin/sh /opt/security_tools/killer.sh &               #每隔10分钟运行一次killer.sh脚本
01 22 * * 2,6 /bin/sh /opt/security_tools/killer.sh &          #没周二周六晚上22点01分运行一次killer.sh脚本
* 22 * * 2,6 service iptables restart &                                #没周二周六晚上22点整运行一次iptables服务重启
########添加内容   结束#############

 四、测试

10分钟后查看iptables –list 观察是否已经有被干掉的地址。



因为是简单摘录,还没空测试,请慎用

具体功能还未测试请慎用

具体功能还未测试请慎用

具体功能还未测试请慎用

重要的话,说三遍!

相关文章
相关标签/搜索