Chinaunix首页 | 论坛 | 博客
  • 博客访问: 302279
  • 博文数量: 17
  • 博客积分: 3065
  • 博客等级: 中校
  • 技术积分: 415
  • 用 户 组: 普通用户
  • 注册时间: 2007-07-25 11:50
文章分类

全部博文(17)

文章存档

2011年(1)

2010年(7)

2009年(4)

2008年(4)

2007年(1)

我的朋友

分类: LINUX

2010-06-14 01:29:26


  
   Linux服务器每天都会有无数的
SSH失败尝试记录,总有些无聊的人一直不停的扫描,老找些软件在那里穷举扫描,所以第一,要记的设置一个好的够复杂的密码。

如果要一条一条将这些IP阻止显然是不可能的,还好有DenyHosts软件来代替我们手搞定他。

DenyHostsPython语言写的一个程序,它会分析sshd的日志文件,当发现重复的攻击时就会记录IP/etc/hosts.deny文件,从而达到自动屏IP的功能。

DenyHosts官方网站为:

以下是安装方法(以我的CentOS 5.1,官方DenyHosts 2.6 为例)

 

安装

 

# cd      /usr/local/src

 

# wget    

 

# tar    zxvf    DenyHosts-2.6.tar.gz

 

# cd     DenyHosts-2.6

 

# python    setup.py    install

 

默认是安装到/usr/share/denyhosts目录的。

 

配置

 

# cd     /usr/share/denyhosts/

 

# cp    denyhosts.cfg-dist     denyhosts.cfg

 

#vi     denyhosts.cfg

 

根据自己需要进行相应的配置(解释见下文件的配置文件)

 

设置启动脚本

 

# cp        daemon-control-dist       daemon-control

# chown     root      daemon-control

# chmod    700       daemon-control

 

 

完了之后执行daemon-contron start就可以了。

 

# ./daemon-control start

 

如果要使DenyHosts每次重起后自动启动还需做如下设置:

 

# cd     /etc/init.d

 

# ln     -s     /usr/share/denyhosts/daemon-control     denyhosts

 

# chkconfig       - -add            denyhosts

 

# chkconfig      denyhosts      on


或者修改/etc/rc.local文件:

 

# vi      /etc/rc.local

 

加入下面这条命令


/usr/share/denyhosts/daemon-control      start

 

为了方便管理,也可以在/etc目录下创建一个 /usr/share/denyhosts/denyhosts.cfg的链接文件:

 

#cd   /etc/

 

ln     -s     /usr/share/denyhosts/denyhosts.cfg     denyhosts.cfg

 

DenyHosts配置文件:

 

vi      /etc/denyhosts.cfg

 

SECURE_LOG = /var/log/secure

#ssh 日志文件,它是根据这个文件来判断的。

 

HOSTS_DENY = /etc/hosts.deny

#控制用户登陆的文件

 

PURGE_DENY = 60m

#过多久后清除已经禁止的

 

BLOCK_SERVICE  = sshd

#禁止的服务名

 

DENY_THRESHOLD_INVALID = 1

#允许无效用户失败的次数

 

DENY_THRESHOLD_VALID = 10

#允许普通用户登陆失败的次数

 

DENY_THRESHOLD_ROOT = 5

#允许root登陆失败的次数

 

HOSTNAME_LOOKUP=NO

#是否做域名反解

 

ADMIN_EMAIL =

#管理员邮件地址,它会给管理员发邮件

 

DAEMON_LOG = /var/log/denyhosts

#自己的日志文件

 

然后就可以启动了:

 

service     denyhost      start

 

可以看看/etc/hosts.deny内是否有禁止的IP,有的话说明已经成功了。

 

注意:

我发现时间deny以后,删除ip的时间不是很准.解决的方法是改变DAEMON_PURGE = 这个的时间.我发现系统删除时间是以他为准。

 

DAEMON_PURGE = 60m

 

DAEMON_PURGE:预设清除:当DenyHosts在预设模式下执行,执行清除机械作用过期最久的HOSTS_DENY,这个会影响PURGE_DENY的间隔。****************************************************
**    by :     劳福喜
**    my blog:
http://laolinux.cublog.cn
****************************************************

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