Denyhosts阻止ssh攻击
文档名称
Denyhostsssh
作者: 沈小然
版本:
文档编号:
日期:2009年 7月 6日
第 1 页 共 5 页
Msn :victorboy45@hotmail.com
E-mail :victorboy45@hotmail.com
文档名称 1 Denyhosts介绍:
DenyHosts 是一款由 Phil Schwartz开发的实用工具,由Python语言编写。能够将频繁的ssh扫描ip按照配置的失败阀值自动将ip列入到黑名单拒绝连接,并能还能自动按照指定清除时间从黑名单中释放。
原理依赖/etc/hosts.deny文件起作用,hosts.deny又是用tcp_wrapper来实现的,所以必须安装tcp_wrapper。
DenyHosts官方网站为:
支持的操作系统:
, Redhat or Fedora Core:
, Mandrake, FreeBSD or OpenBSD:
, SuSE:
, Mac OS X (v10.4 or v10.3)
2 安装
# rpm -ivh denyhosts-2.6-5.el5.noarch.rpm
默认安装位置/usr/share/denyhosts/
2.1 配置
# cd /usr/share/denyhosts/
# cp denyhosts.cfg-dist denyhosts.cfg 2.2 启动
# /etc/init.d/denyhosts restart 重启服务
# ps -ef|grep deny 查看进程
第 2 页 共 5 页
Msn :victorboy45@hotmail.com
E-mail :victorboy45@hotmail.com
文档名称 3 修改配置文件
# vi /etc/denyhosts.conf
# Redhat or Fedora Core:需要
的日志
SECURE_LOG = /var/log/secure
# Most operating systems: 分析来源包含拒绝访问主机名的文件
HOSTS_DENY = /etc/hosts.deny
# never purge: 设置多久后把主机从/etc/hosts.deny文件列
中删除,默认值空表示永远不删。1w一个礼拜后,5d五天后。format is: i[dhwmy],推荐1h。
PURGE_DENY =1h
#对于清除的次数做限制,默认0为不开启此功能,2表示最多清除2次超过就永久不清除了。
PURGE_THRESHOLD = 0
#PURGE_THRESHOLD = 2
# To block all services for the offending host:拒绝访问哪些服务“BLOCK_SERVICE = ALL”表示所有服务都拒绝,默认只拒绝sshd服务
BLOCK_SERVICE = sshd,httpd
#######################################################################
# 设置错误次数
#######################################################################
# 针对/etc/passwd中不存在的用户,登录失败多少次拒绝该主机,默认5次,建议3次
DENY_THRESHOLD_INVALID = 3
# 针对/etc/passwd文件中的用户除root用户外,登录失败多少次拒绝该主机,默认10次
第 3 页 共 5 页
Msn :victorboy45@hotmail.com
E-mail :victorboy45@hotmail.com
文档名称
DENY_THRESHOLD_VALID = 5
# root用户登录1次失败就会拒绝该主机的ssh服务,默认1次,建议5次。
DENY_THRESHOLD_ROOT = 5
保存,重启denyhosts服务使配置生效
4 测试denyhosts的效果
利用windows的ssh工具,使用非系统帐户user,ssh登录测试,输入错误口令-登录,每次登录失败后点断开连接再重新登录,这样才算1次连接,总共输入错误口令超过5次,失败后第6次登录应该提示拒绝,同时查看/etc/hosts.deny文件是否有ip被列入,如果列入说明已经成功,如下图:
监控/var/log/message日志就可以看到效果,如图
如果用linux命令行工具ssh测试,看到下面效果表示denyhosts生效
5 FAQ
5.1 关于denyhosts的一些有用的日志
如果设置了syslog日志
的话,跟踪# tail -f /var/log/message 日志可以看到加进/etc/hosts.deny的记录。
# tail -f /var/log/secure ,如果出现下面日志
第 4 页 共 5 页
Msn :victorboy45@hotmail.com
E-mail :victorboy45@hotmail.com
文档名称
说明,已经将10.1.6.51加进了 data/offset 文件里,如果已经在该文件里,那么登录失败1次就会自动添加进/etc/hosts.deny,配置文件里定义的阀值就不管用了。 5.2 当实验ssh登录时,还没到定义的5次失败,就被拒绝了怎么回事,
答:根据研究发现,data下的一些文件里如果已经有该ip的记录,那么会优先于denyhosts.cfg定义的登录次数阀值,这里也是保存sync同步数据的地方,同步过来的数据也会优先于配置文件。
第 5 页 共 5 页
Msn :victorboy45@hotmail.com
E-mail :victorboy45@hotmail.com