帮助中心 >  技术知识库 >  云服务器 >  服务器教程 >  如何使用 DenyHosts 来阻止 SSH暴力攻击

如何使用 DenyHosts 来阻止 SSH暴力攻击

2016-06-01 15:05:25 3751

安装方法

1、下载DenyHosts源码并解压(目前最新版为2.6)
1    [root@www ~]# wget http://www.landui.com/projects/denyhosts/files/denyhosts/2.6/DenyHosts-2.6.tar.gz    
2    [root@www ~]# tar zxvf DenyHosts-2.6.tar.gz    
3    [root@www ~]# cd DenyHosts-2.6    
2、安装部署
1    [root@www DenyHosts-2.6]# yum install python -y    
2    [root@www DenyHosts-2.6]# python setup.py install    
3、准备好默认的配置文件
1    [root@www DenyHosts-2.6]# cd /usr/share/denyhosts/    
2    [root@www denyhosts]# cp denyhosts.cfg-dist denyhosts.cfg    
3    [root@www denyhosts]# cp daemon-control-dist daemon-control    
4、编辑配置文件denyhosts.cfg
1    [root@www denyhosts]# vi denyhosts.cfg    
该配置文件结构比较简单,简要说明主要参数如下:
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    [root@www denyhosts]# ./daemon-control start    
如果需要让DenyHosts每次重启后自动启动,还需要:
6、设置自动启动
设置自动启动可以通过两种方法进行。
第一种是将DenyHosts作为类似apache、mysql一样的服务,这种方法可以通过 /etc/init.d/denyhosts 命令来控制其状态。方法如下:
1    [root@www denyhosts]# cd /etc/init.d    
2    [root@www init.d]# ln -s /usr/share/denyhosts/daemon-control denyhosts    
3    [root@www init.d]# chkconfig --add denyhosts    
4    [root@www init.d]# chkconfig -level 2345 denyhosts on    
第二种是将Denyhosts直接加入rc.local中自动启动(类似于Windows中的“启动文件夹”):
1    [root@www denyhosts]# echo '/usr/share/denyhosts/daemon-control start' >> /etc/rc.local    
如果想查看已经被阻止的IP,打开/etc/hosts.deny 文件即可。

提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: