码迷,mamicode.com
首页 > 系统相关 > 详细

防止ssh暴力破解linux密码

时间:2015-07-17 23:10:15      阅读:405      评论:0      收藏:0      [点我收藏+]

标签:

网上看到一篇安全方面的文章,常用的网站收藏无法收藏,于是放这里先。具体功能还未测试请慎用

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


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

脚本内容:

#!/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


部署方法:

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

2、运行killer脚本:

#sh -x ./killer.sh

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

########输出内容   开始############
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 -e

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

3、创建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服务重启
########添加内容   结束#############

 4、测试

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


防止ssh暴力破解linux密码

标签:

原文地址:http://my.oschina.net/lxrm/blog/479913

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!