Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103683186
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: LINUX

2008-05-04 21:39:05

DenyHosts是Python语言写的一个程序,它会分析sshd的日志文件(默认是/var/log/secure),当发现重复的攻击时就会记录IP到/etc/hosts.deny文件,启用tcp_wrappers,从而达到自动屏IP的功能。 通过可以下载DenyHosts的程序,可以直接下载rpm包来安装,也可以通过src.rpm包重新编译并安装等,通过这种方式默认是安装在/usr/share/denyhosts目录下。

1、启动DenyHosts 手动执行/usr/bin/denyhosts.py并指定其配置文件即可启动DenyHosts服务,如下:

# /usr/bin/denyhosts.py --daemon --config=/usr/share/denyhosts/denyhosts.cfg-dist

其中–daemon表示在后台运行,也可以直接执行自带/usr/share/denyhosts/daemon-control-dist脚本,因为daemon-control-dist脚本指定的配置文件名是“denyhosts.cfg”,所以在执行该脚本前需要将配置文件重命名。如下:

# mv denyhosts.cfg-dist denyhosts.cfg
# ./daemon-control-dist start

若要设置开机自动启动,则将该脚本做一个链接到/etc/init.d目录下,如下:

# ln -s /usr/share/denyhosts/daemon-control-dist /etc/init.d
# chkconfig daemon-control-dist on

关于denyhosts.cfg配置文件的常用参数解释如下:

SECURE_LOG = /var/log/secure
#ssh 日志文件,如果是redhat系列是根据/var/log/secure文件来判断的。
#Mandrake、FreeBSD是根据 /var/log/auth.log来判断的,而SUSE则是用/var/log/messages来判断的。这些在配置文件里面都有很详细的解释。
HOSTS_DENY = /etc/hosts.deny
#控制用户登陆的文件
PURGE_DENY = 30m
#过多久后清除已经禁止的,

#            'm' = minutes
#            'h' = hours
#            'd' = days
#            'w' = weeks
#            'y' = years

BLOCK_SERVICE = sshd
#禁止的服务名,当然DenyHost不仅仅用于SSH服务,还可用于SMTP等等。
DENY_THRESHOLD_INVALID = 1
#允许无效用户失败的次数
DENY_THRESHOLD_VALID = 5
#允许普通用户登陆失败的次数
DENY_THRESHOLD_ROOT = 3
#允许root登陆失败的次数
HOSTNAME_LOOKUP=NO
#是否做域名反解
ADMIN_EMAIL = iakuf@163.com
#管理员邮件地址,它会给管理员发邮件
DAEMON_LOG = /var/log/denyhosts
#DenyHosts日志文件存放的路径

配置完成后,再重新启动DenyHosts服务,然后在一个客户端尝试输入密码错误,看看/etc/hosts.deny文件里面是不是有类似如下的记录:

# DenyHosts: Sat Oct 13 20:47:14 2007 | sshd: 172.16.78.110
sshd: 172.16.78.110

如果有表明DenyHosts启用成功。

阅读(314) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~