防止Linux暴力ssh破解密码方法denyhosts工具
昨天的两个暴力破解工具就是为了测试今天所要说的denyhosts 工具
声明!本文对你有用请给予评价!转载收藏请注明出处尊重作者劳动成果!
作用,他人恶意使用ssh暴力破解软件对你的服务器进行密码批对,起因是在我这几周的日常服务检测中发现有很多的未知IP在用ssh尝试root用户的验证,
这实在是有点~虽然本人采用的是超级复杂的密码但还是怕有朝一日破解root那我的服务就成肉机了。
今天分别在两台服务器上安装了该软件,分别为RHEL6.3 和RHEL5.5已经我的测试机CentOS6.3 基本没有什么困难,很简单
DenyHosts官方网站为:http://denyhosts.sourceforge.net/
这个网站我是没访问成功- -! 我Google了下找到了一个ftp的下载地址:
#wget http://soft.vpser.net/security/denyhosts/DenyHosts-2.6.tar.gz
1 [root@mail ~]# wget http://soft.vpser.net/security/denyhosts/DenyHosts-2.6.tar.gz 2 --15:25:43-- http://soft.vpser.net/security/denyhosts/DenyHosts-2.6.tar.gz 3 Resolving soft.vpser.net... 96.44.153.111 4 Connecting to soft.vpser.net|96.44.153.111|:80... connected. 5 HTTP request sent, awaiting response... 200 OK 6 Length: 42667 (42K) [application/octet-stream] 7 Saving to: `DenyHosts-2.6.tar.gz' 8 9 100%[=======================================================================>] 42,667 64.1K/s in 0.7s 10 11 15:25:45 (64.1 KB/s) - `DenyHosts-2.6.tar.gz' saved [42667/42667] 12 13 [root@mail ~]# tar zxvf DenyHosts-2.6.tar.gz
下载并解压后 进入到解压目录 运行# python setup.py install 安装因为该软件是根据python 做的 当然默认的安装目录会放在/usr/share/denyhosts/下
1 [root@mail DenyHosts-2.6]# python setup.py install 2 running install 3 running build 4 running build_py
[root@mail DenyHosts-2.6]# cd /usr/share/denyhosts/
修改下两个范例的名字 当然自己也可以手写,我这里查看了下daemon的配置基本上符合自己的要求所有稍后修改下几个参数就OK了
[root@mail denyhosts]# cp denyhosts.cfg-dist denyhosts.cfg [root@mail denyhosts]# cp daemon-control-dist daemon-control
[root@mail denyhosts]#vi denyhosts.cfg
主要参数说明:
HOSTS_DENY = /etc/hosts.deny ###控制用户登陆的文件
SECURE_LOG = /var/log/secure ###sshd的日志文件这个不用多说
PURGE_DENY = 1d ###多长时间后清理禁止ip 可按照 年月日来定义 我定义为1d及一天
BLOCK_SERVICE = sshd ###要禁止的服务 sshd
DENY_THRESHOLD_INVALID = 1 ###允许无效用户验证次数
DENY_THRESHOLD_VALID = 4 ###普通用户验证次数
DENY_THRESHOLD_ROOT = 4 ###root用户验证次数
HOSTNAME_LOOKUP=NO ###是否做域名反解
DAEMON_LOG = /var/log/denyhosts 这个不用多说了 该工具的日志存放路径
我的修改修改了清空禁止的时间为1天、root用户的验证次数为4次 普通也为4次 其他的未做修改,可以根据自己的情况而定。
防止其他用户修改此软件
1 [root@mail denyhosts]# chown root daemon-control 2 [root@mail denyhosts]# chmod 700 daemon-control
启动服务 出现starting 开始 OK完成 3 [root@mail denyhosts]# ./daemon-control start 4 starting DenyHosts: /usr/bin/env python /usr/bin/denyhosts.py --daemon --config=/usr/share/denyhosts/denyhosts.cfg
但是作为服务器想让其开机自动启动可以将 启动的命令 绝对路径!/usr/share/.../daemon-control start 放到/etc/rc.local下或者做一个软连接(类似windows下的快捷方式)
1 [root@mail denyhosts]# cd /etc/init.d/ 2 [root@mail init.d]# ln -s /usr/share/denyhosts/daemon-control denyhosts 3 [root@mail init.d]# chkconfig --add denyhosts 4 [root@mail init.d]# chkconfig --level 2345 denyhosts on 5 实现开机自动启动该任务。好了OK全部完成。 6 有兴趣的可以参考我上文的hydra 工具做下验证效果!
演示:
首先cat /etc/hosts.deny 是否为空 OK是空的。
然后再另一个装有hydra工具的机器上运行命令hydra破解
先交代下我的251为denyhosts工具机而254为hydre机器
我在254上运行命令:
1 [root@localhost ~]# hydra 192.168.1.251 ssh -l root -P passwrod.txt 2 Hydra v7.4.2 (c)2012 by van Hauser/THC & David Maciejak - for legal purposes only 3 4 Hydra (http://www.thc.org/thc-hydra) starting at 2013-06-20 00:45:30 5 [DATA] 11 tasks, 1 server, 11 login tries (l:1/p:11), ~1 try per task 6 [DATA] attacking service ssh on port 22 7 [ERROR] ssh protocol error 8 1 of 1 target completed, 0 valid passwords found 9 Hydra (http://www.thc.org/thc-hydra) finished at 2013-06-20 00:45:31 10 [root@localhost ~]#
上述意见报错了!OK 在切回到251上查看下 cat /etc/hosts.deny 的信息
1 [root@mail init.d]# cat /etc/hosts.deny 2 # 3 # hosts.deny This file describes the names of the hosts which are 4 # *not* allowed to use the local INET services, as decided 5 # by the '/usr/sbin/tcpd' server. 6 # 7 # The portmap line is redundant, but it is left to remind you that 8 # the new secure portmap uses hosts.deny and hosts.allow. In particular 9 # you should know that NFS uses portmap! 10 11 # DenyHosts: Wed Jun 19 15:33:51 2013 | sshd: 221.176.53.74 12 sshd: 221.176.53.74 13 # DenyHosts: Wed Jun 19 15:33:51 2013 | sshd: 223.202.45.74 14 sshd: 223.202.45.74 15 # DenyHosts: Wed Jun 19 15:33:51 2013 | sshd: 202.116.102.7 16 sshd: 202.116.102.7 17 # DenyHosts: Wed Jun 19 15:33:51 2013 | sshd: 58.215.39.9 18 sshd: 58.215.39.9 19 # DenyHosts: Wed Jun 19 15:33:51 2013 | sshd: 201.173.90.16 20 sshd: 201.173.90.16 21 # DenyHosts: Wed Jun 19 15:33:51 2013 | sshd: 123.196.113.11 22 sshd: 123.196.113.11 23 # DenyHosts: Wed Jun 19 15:33:51 2013 | sshd: 31.210.107.85 24 sshd: 31.210.107.85 25 # DenyHosts: Wed Jun 19 15:33:51 2013 | sshd: 118.244.14.49 26 sshd: 118.244.14.49 27 # DenyHosts: Wed Jun 19 15:33:51 2013 | sshd: 42.96.162.225 28 sshd: 42.96.162.225 29 # DenyHosts: Wed Jun 19 15:33:51 2013 | sshd: 124.248.194.126 30 sshd: 124.248.194.126 31 # DenyHosts: Wed Jun 19 15:33:51 2013 | sshd: 213.248.110.43 32 sshd: 213.248.110.43 33 # DenyHosts: Wed Jun 19 15:33:51 2013 | sshd: 108.62.45.250 34 sshd: 108.62.45.250 35 # DenyHosts: Wed Jun 19 15:33:51 2013 | sshd: 223.202.15.2 36 sshd: 223.202.15.2 37 # DenyHosts: Wed Jun 19 16:35:53 2013 | sshd: 192.168.1.254 38 sshd: 192.168.1.254 39 [root@mail init.d]#
哎呀我擦!就这么一会儿功夫已经连接了很多个了! 看来安装此软件到服务器是势在必行的啊!
每天服务器要接受这样的暴力破解验证请求也不会少于50次
一个礼拜就N多了!
好了就到这里了。如果该文章对你有用 请给予评价 转载请注明出处!
[root@mail denyhosts]# chown root daemon-control[root@mail denyhosts]# chmod 700 daemon-control[root@mail denyhosts]# ./daemon-control startstarting DenyHosts: /usr/bin/env python /usr/bin/denyhosts.py --daemon --config=/usr/share/denyhosts/denyhosts.cfg