空空裤兜 空空裤兜
  • 首页
  • 分类目录
    • 博客建设
    • 兜兜转转
    • 每月一帖
    • 技术存档
  • 留言
  • 豆瓣
  • 人气文章排行榜
  • 热门标签
  • 博客大事记
  • 开往
首页 › 技术存档 › 通过DenyHosts阻止SSH暴力攻击教程

通过DenyHosts阻止SSH暴力攻击教程

空空裤兜
12 年前

Denyhosts是一个Linux系统下阻止暴力破解SSH密码的软件,它的原理与DDoS Deflate类似,可以自动拒绝过多次数尝试SSH登录的IP地址,防止互联网上某些机器常年破解密码的行为,也可以防止黑客对SSH密码进行穷举。

众所周知,暴露在互联网上的计算机是非常危险的。并不要因为网站小,关注的人少或不惹眼就掉以轻心:互联网中的大多数攻击都是没有目的性的,黑客们通过大范围IP端口扫描探测到可能存在漏洞的主机,然后通过自动扫描工具进行穷举破解。笔者的某台服务器在修改SSH 22号端口之前,平均每天接受近百个来自不同IP的连接尝试。其实咱这小站,也没啥重要数据,就怕丫破解后获取权限干点不干净的事情,当然,有可能没这么严重,但是空空裤兜遇到过几次穷举破解直接CPU负载飙升到100,从而导致网站连接超时,这也够郁闷了。而DenyHosts正是这样一款工具。下文将对该工具的安装与使用方法进行介绍。

DenyHosts阻止攻击原理

DenyHosts会自动分析 /var/log/secure 等安全日志文件,当发现异常的连接请求后,会自动将其IP加入到 /etc/hosts.deny 文件中,从而达到阻止此IP继续暴力破解的可能。同时,Denyhosts还能自动在一定时间后对已经屏蔽的IP地址进行解封,非常智能。

官方网站

Denyhosts的官方网站为:http://denyhosts.sourceforge.net/ (杜绝Putty后门事件,谨记安全软件官网)

安装方法

1、下载DenyHosts源码并解压(目前最新版为2.6)

1# wget http://sourceforge.net/projects/denyhosts/files/denyhosts/2.6/DenyHosts-2.6.tar.gz
2# tar zxvf DenyHosts-2.6.tar.gz
3# cd DenyHosts-2.6

2、安装部署

1# yum install python -y
2# python setup.py install

3、准备好默认的配置文件

1# cd /usr/share/denyhosts/
2# cp denyhosts.cfg-dist denyhosts.cfg
3# cp daemon-control-dist daemon-control

做完这几步,denyhosts就算是安装完成了,但是还没有配置,也没有启动。

4、编辑配置文件denyhosts.cfg

1# vi denyhosts.cfg

该配置文件结构比较简单,简要说明主要参数如下:

首先要确定分析哪个日志,空空裤兜安装的是centos5.x,lnmp环境,分析SECURE_LOG = /var/log/messages,如果你的系统日志不是这个,在配置文件中去掉日志文件前的#就行。

PURGE_DENY:当一个IP被阻止以后,过多长时间被自动解禁。可选如3m(三分钟)、5h(5小时)、2d(两天)、8w(8周)、1y(一年);
PURGE_THRESHOLD:定义了某一IP最多被解封多少次。即某一IP由于暴力破解SSH密码被阻止/解封达到了PURGE_THRESHOLD次,则会被永久禁止;
BLOCK_SERVICE:需要阻止的服务名;
DENY_THRESHOLD_INVALID:某一无效用户名(不存在的用户)尝试多少次登录后被阻止;
DENY_THRESHOLD_VALID:某一有效用户名尝试多少次登陆后被阻止(比如账号正确但密码错误),root除外;
DENY_THRESHOLD_ROOT:root用户尝试登录多少次后被阻止;
HOSTNAME_LOOKUP:是否尝试解析源IP的域名;

大家可以根据上面的解释,浏览一遍此配置文件,然后根据自己的需要稍微修改即可。

5、启动Denyhosts

1# ./daemon-control start

若修改了配置文件,需要先停止denyhosts,只需要把上面命令中的start改为stop就行。

如果需要让DenyHosts每次重启后自动启动,还需要:

6、设置自动启动

设置自动启动可以通过两种方法进行。

第一种是将DenyHosts作为类似apache、mysql一样的服务,这种方法可以通过 /etc/init.d/denyhosts 命令来控制其状态。方法如下:

1#cd /etc/init.d
2# ln -s /usr/share/denyhosts/daemon-control denyhosts
3# chkconfig --add denyhosts
4# chkconfig -level 2345 denyhosts on

第二种是将Denyhosts直接加入rc.local中自动启动(类似于Windows中的“启动文件夹”):

1# echo '/usr/share/denyhosts/daemon-control start' >> /etc/rc.local

如果想查看已经被阻止的IP,打开/etc/hosts.deny 文件即可,或者执行cat /etc/hosts.deny。

vps
0
10
CSS3形式返回顶部
上一篇
负载过高,重启lnmp
下一篇

评论 (10)

取消
  • 郑永

    沙发一个,顺便送上压岁钱。gg

    12 年前 回复
    • 空空裤兜

      @郑永 @郑永: 恭喜发财,红包拿来

      12 年前 回复
  • 我要发芽

    4月份买vps,到时候会用上这个。

    12 年前 回复
    • 空空裤兜

      @我要发芽 @我要发芽: 暴力破解SSH 还是要防一下的

      12 年前 回复
  • 南寻

    学习了~ 😯

    12 年前 回复
  • 熊猫家族

    貌似不错 收藏啦 以后备用

    12 年前 回复
    • 空空裤兜

      @熊猫家族 @熊猫家族: 还得防着蛋疼之人扫描的

      12 年前 回复
  • 电脑爱好者

    很详细 留下脚印 万一以后用到了呢 呵呵

    12 年前 回复
  • 爱软E

    云主机表示 天天被暴力拆解中!!

    12 年前 回复
    • 空空裤兜

      @爱软E @爱软E: 看着一大堆的扫描纪录 闹心

      12 年前 回复

猜你喜欢

  • PVE和NAS共享一台UPS停电自动关机
  • 2024-07
  • 宝塔无法启动fail2ban解决方法
  • 2023-12
  • 添加CDN

空空裤兜

和过去过不去,跟未来合不来。
254
文章
1K
评论
387
获赞

随缘推荐

标题载入添加loading状态
一语惊醒植物人(11)
部署Memchached
第一次丢数据
纠结ing

爷爷走了

15
2023 / 05

专题展示

PVE和NAS共享一台UPS停电自动关机
5 月前
2017-01
8 年前
七牛CDN插件代码化
11 年前
2023-12
1 年前
哪吒监控添加bark报警通知
2 年前
Copyright © 2010-2025 空空裤兜. Designed by nicetheme.
  • 首页
  • 分类目录
    • 博客建设
    • 兜兜转转
    • 每月一帖
    • 技术存档
  • 留言
  • 豆瓣
  • 人气文章排行榜
  • 热门标签
  • 博客大事记
  • 开往