[Linux 安全] 最好的阻止SSH暴力破解的方法(DenyHosts)

Oct 17th, 2007

转载本站文章请注明,转载自:扶凯[http://www.php-oa.com]

本文链接: http://www.php-oa.com/2007/10/17/drop-ssh-denyhosts.html

文章更新日期:07年1月7日 以CentOS 5.1, DenyHosts 2.6 为例

这个文章被无数的人转了,但我发现,没有一个人会写上我的名字.还有啊,他们从来不认真看看文章的内容.其中的邮件设置永远是我的私人邮件地址….

我的服务器每天都会有无数的SSH失败尝试记录,有些无聊的人一直不停的扫描,这些人真够无聊的,没事吃饱了撑着,老找些软件在那里穷举扫描,所以大家第一要记的设置一个好的够复杂的密码.

怎么样防,如果要一条一条将这些IP阻止显然治标不治本,还好有DenyHosts软件来代替我们手搞定他 DenyHosts是Python语言写的一个程序,它会分析sshd的日志文件,当发现重复的攻击时就会记录IP到/etc/hosts.deny文件,从而达到自动屏IP的功能.

DenyHosts官方网站为:http://denyhosts.sourceforge.net

以下是安装记录(以CentOS 5.1, DenyHosts 2.6 为例)

 

1.安装

#wget http://nchc.dl.sourceforge.net/sourceforge/denyhosts/DenyHosts-2.6-python2.4.noarch.rpm #rpm -ivh DenyHosts-2.6-python2.4.noarch.rpm

给denyhosts做成系统本身的服务

# cd /etc/init.d

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

# chkconfig –add denyhosts

2.配置

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

# cd /usr/share/denyhosts/

# cp denyhosts.cfg-dist denyhosts.cfg

# vi denyhosts.cfg

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

DenyHosts配置文件:

SECURE_LOG = /var/log/secure #ssh 日志文件,它是根据这个文件来判断的.

HOSTS_DENY = /etc/hosts.deny #控制用户登陆的文件

PURGE_DENY = 30m #过多久后清除已经禁止的

BLOCK_SERVICE = sshd #禁止的服务名

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

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

DENY_THRESHOLD_ROOT = 5 #允许root登陆失败的次数

HOSTNAME_LOOKUP=NO #是否做域名反解

ADMIN_EMAIL = iakuf@163.com #管理员邮件地址,它会给管理员发邮件

DAEMON_LOG = /var/log/denyhosts #自己的日志文件

3.启动服务 让他和系统启动时一起启动

#/etc/ini.d/denyhosts start

#chkconfig denyhosts on 可以用一台电脑远程连接过来测试.如果可以看到/etc/hosts.deny内是否有禁止的IP,有的话说明已经安装成功了.

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

DAEMON_PURGE:预设清除:当DenyHosts在预设模式下执行,执行清除机械作用过期最久的HOSTS_DENY,这个会影响PURGE_DENY的间隔

Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪 ViVi 365Key 网摘 天极网摘 和讯网摘 博拉网 POCO 网摘 饭否 QQ 书签 Digbuzz 我挖网 Mister Wong
  1. liuyadan
    Oct 12th, 2009 at 15:22
    Reply | Quote | #1

    你的方法不错,是被动防止暴力破解,如何才能主动防止暴力破解呢

  2. admin
    Oct 12th, 2009 at 23:45
    Reply | Quote | #2

    主动……….你指的是什么主动…
    我认为这个世界没有坏人…抓到了才是坏人.
    如果主动,那得认为世界上的人都是坏人..

  3. admin
    Oct 13th, 2009 at 12:59
    Reply | Quote | #4

    建议使用fail2ban比这个还要好用

    http://www.php-oa.com/2008/05/08/ftpfuwuqibaoliruqinfanghu.html