来自:zip11 > 馆藏分类
配色: 字号:
防止ssh破解
2017-02-04 | 阅:  转:  |  分享 
  
http://ju.outofmemory.cn/entry/147560

ubuntu14.04安装denyhosts

搁浅St的blog?2015-05-06?244?阅读

ubuntu?Linux

起因

因为之前服务器两次被黑,妈蛋。今天在上google+的时候,无意中看到一个维护vps的帖子,就顺手把我的服务器维护下。?之前被黑经历也很简单,因为方便管理的缘故,我给root用户设置了密码,没错,是弱口令,一扫不要一分钟就可以出来的那种。?我在那篇帖子中看到denyhosts这货。东西很简单,分析你的日志,如果有人连续登陆几次密码都错误,那么把他的ip添加到denyhost当中,禁止它继续扫描。这货还很多功能,可以设置禁止时间以后,自动解禁;可以配置自动解禁的次数;还可以配置用户密码尝试的次数,给管理员发邮件等。?

安装

1、下载源码包,解压源码包

wgethttp://sourceforge.net/projects/denyhosts/files/denyhosts/2.6/DenyHosts-2.6.tar.gztarzxvfDenyHosts-2.6.tar.gzcdDenyHosts-2.6

2、安装部署

pythonsetup.pyinstallcd/usr/share/denyhosts/cpdenyhosts.cfg-distdenyhosts.cfgcpdaemon-control-distdaemon-control

3、编辑配置文件denyhosts.cfg

sudovidenyhosts.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的域名;

一般我们就用默认就好,我们只需要改两个地方:

第一个,我们注释掉第12行/var/log/secure,启用第15行/var/log/auth.log,修改以后结果如下(原因是ubuntu中的log不在/var/log/secure中,而是在/var/log/auth.log中)

第二个,我们启用第64行,也就是设置,ip被禁止后,禁止5天,这个时间你可以自行设置

去掉前面的?#?,就行了,修改后结果如下?

#purgeentriesolderthan5days64PURGE_DENY=5d65#######################################################################66

4、编辑配置文件daemon-control

因为在ubuntu系统中,有些文件不在预设的位置,所以我们需要编辑这个文件?我们只需要改第14行就好了,修改?/usr/bin/denyhosts.py?为?/usr/local/bin/denyhosts.py?,修改后结果如下?

14DENYHOSTS_BIN="/usr/local/bin/denyhosts.py"15DENYHOSTS_LOCK="/var/lock/subsys/denyhosts"16DENYHOSTS_CFG="/usr/share/denyhosts/denyhosts.cfg"1718PYTHON_BIN="/usr/bin/envpython"19

5、运行

运行,额,错误一堆啊,我们执行?sudo?./daemon-controlstart?,然后得到如下错误?

startingDenyHosts:/usr/bin/envpython/usr/local/bin/denyhosts.py--daemon--config=/usr/share/denyhosts/denyhosts.cfgDenyHostscouldnotobtainlock(pid:)[Errno2]Nosuchfileordirectory:''/var/lock/subsys/denyhosts''

我们可以去?/var/lock?下面的确看不到subsys这个文件夹,那我们就手动创建他?

mkdir-p/var/lock/subsys

继续执行?sudo?./daemon-controlstart?,应该就会成功?ps:如果还不成功,他缺什么文件我们就用?touch?新建这个文件,如果说?fileexists?,我们就删除那个文件

6、添加到开机启动

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

cd/etc/init.dln-s/usr/share/denyhosts/daemon-controldenyhosts#上面的操作就把他变成了一个服务我们可以使用servicedenyhostsstart来启动服务#下面把他添加到开机自启动,我们这里需要安装一个软件来实现#ubuntu中没有chkconfig命令,网上的教程是用的chkconfig,具体操作查看后面的参考文献1,ubuntu中对应的是update-rc.d,但是不好用,所以我用sysv-rc-confsudoapt-getinstallsysv-rc-confsudosysv-rc-conf

我们设置denyhosts运行级别2345,编辑以后如下所示??按?q?,退出并保存

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

echo''/usr/share/denyhosts/daemon-controlstart''>>/etc/rc.local













































献花(0)
+1
(本文系zip11首藏)