文档章节

防止ssh暴力破解linux密码

NILYANG
 NILYANG
发布于 2015/07/17 21:02
字数 754
阅读 426
收藏 25

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

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


服务器在互联网中,每天都有些没事儿干的人在你的机器端口扫来扫去,让管理员非常烦恼。本文描述一个方法,利用本文介绍的脚本结合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 观察是否已经有被干掉的地址。



由于是简单摘录,还没空测试,请慎用

具体功能还未测试请慎用

具体功能还未测试请慎用

具体功能还未测试请慎用

重要的话,说三遍!

本文转载自:http://blog.cyszys.com/2014/02/%E9%98%B2%E6%AD%A2ssh%E6%9A%B4%E5%8A%9B%E7%A0%B4%E8%A7%A3linux%E5%...

NILYANG
粉丝 14
博文 100
码字总数 19038
作品 0
杭州
高级程序员
私信 提问
加载中

评论(5)

赛克蓝德
赛克蓝德
其实用产品是简单的思路,比如用secilog可以及时的发现密码猜测行为,发现后然后直接封ip。
断崖逐梦
断崖逐梦
试过了,不行,呵呵。需要自己修改下脚本。
妩媚的悟空
妩媚的悟空
太傻太复杂的搞法。。。。
NILYANG
NILYANG

引用来自“小潘pfl”的评论

可用?
我还没空测试,详见原文(OSC限制了地址长度):http://blog.cyszys.com/2014/02/%E9%98%B2%E6%AD%A2ssh%E6%9A%B4%E5%8A%9B%E7%A0%B4%E8%A7%A3linux%E5%AF%86%E7%A0%81/
Smile月光
Smile月光
可用?
SSH 暴力破解趋势:从云平台向物联网设备迁移 云鼎实验室出品

  导语:近日,腾讯云发布2018上半年安全专题系列研究报告,该系列报告围绕云上用户最常遭遇的安全威胁展开,用数据统计揭露攻击现状,通过溯源还原攻击者手法,让企业用户与其他用户在应对...

FreeBuf
2018/07/13
0
0
Linux 王子 带你完成 Linux SSHD服务“gong fang”实战

重要声明: 本文以研究角度去说明SSHD服务的“gong ji”和防护原理,也不会提供文中所提到的“gong ji”工具(因为会被和谐掉哦!没办法^_^),请读者不要用违法用途,本人对于读者用户违法行...

xruan
2018/06/21
0
0
linux系统安全

方法一: 密码足够复杂 密码的长度要大于8位,最好大于14位。密码的复杂度是密码要尽可能有数字、大小写字符和特殊字符混合组成。 修改默认ssh端口 使用iptables关闭不需要使用的端口 sshd 默...

xucaibao1979
2017/06/30
0
0
Linux开启证书登录

要设置证书登录首先得有生成一个证书。拿centos来说。输入命令ssh-keygen -t rsa 这是生成证书的一个通用命令。rsa是指定加密方式是rsa 。然后会提示你输入密码。你可以自己指定任意一个密码...

安西都护府首席程序员
2018/01/17
0
0
使用 fail2ban 防御 SSH 服务器的暴力破解

对于SSH服务的常见的攻击就是暴力破解攻击——远程攻击者通过不同的密码来无限次地进行登录尝试。当然SSH可以设置使用非密码验证验证方式来对抗这种攻击,例如公钥验证或者双重验证。将不同的...

linux-tao
2017/11/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

ubuntu或ubuntu kylin优麒麟中安装QQ、wechat微信、百度网盘

从中国国内的地址下载deepin wine,码云上的。这样网速比较快。然后,按照说明向下安装。 https://gitee.com/wszqkzqk/deepin-wine-for-ubuntu...

gugudu
40分钟前
2
0
基于redis分布式锁实现“秒杀”

最近在项目中遇到了类似“秒杀”的业务场景,在本篇博客中,我将用一个非常简单的demo,阐述实现所谓“秒杀”的基本思路。 业务场景 所谓秒杀,从业务角度看,是短时间内多个用户“争抢”资源...

别打我会飞
今天
14
0
Zookeeper的实践指南

本章重点 1.数据存储2.基于Java API初探Zookeeper的使用3.深入分析Watcher机制的实现原理4.Curator客户端的使用,简单高效 数据存储 事务日志快照日志运行时日志 bin/zookeepe...

须臾之余
今天
2
0
MySQL mybatis Point类型数据

MySQL中的point用于表示GIS中的地理坐标,在GIS中广泛使用 如何写入mysql,如下图: CREATE TABLE `test-point` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '序号', `point` ......

张欢19933
今天
3
0
设计模式-适配器模式

适配器模式 适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。 这种模式涉及到一个单一的类,该类负责加入...

HOT_POT
今天
20
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部