防暴力破戒ssh登录密码

1 DenyHosts介绍与获取
   DenyHosts Python语言写的一个程序,它会分析sshd的日志文件(默认是/var/log/secure),当发现重复的攻击时就会记录IP/etc/hosts.deny文件,启用tcp_wrappers,从而达到自动屏IP的功能。在http://denyhosts.sourceforge.net网站可以获取到denyhosts的源码包和rpm包。
2 DenyHosts安装
   这里我下载的是最新的源码包DenyHosts-2.6.tar.gz。将该包上传到服务器的任意目录进行解压。该服务器的ip地址为192.168.1.100,系统为Centos5.3。以下是详细步骤。
root身份执行以下操作。
# tar zxvf DenyHosts-2.6.tar.gz
# cd DenyHosts
# python setup.py install
   如果安装过程中没有任何报错信息出现。那么DenyHosts安装成功。默认会创建/usr/share/denyhosts目录。该目录下的文件如下:
[root@node1 denyhosts]# ls
CHANGELOG.txt  daemon-control-dist  data denyhosts.cfg-dist  LICENSE.txt  plugins  README.txt  scripts  setup.py
[root@node1 denyhosts]#
进入/usr/share/denyhosts目录执行以下操作。
#cp denyhosts.cfg-dist denyhosts.cfg
#cp daemon-control-dist daemon-control
#chown root daemon-control
#chmod 700 daemon-control
denyhosts.cfg DenyHosts的配置文件。daemon-controldaemon-control的启动脚本。
3 DenyHosts配置
   denyhosts.cfg DenyHosts的配置文件,该文件内对每个参数都有详细的介绍。只需要对个别参数根据需求进行改动即可。该服务器配置如下:
SECURE_LOG = /var/log/secure
HOSTS_DENY = /etc/hosts.deny
PURGE_DENY =
BLOCK_SERVICE  = sshd
DENY_THRESHOLD_INVALID = 3
DENY_THRESHOLD_VALID = 3
DENY_THRESHOLD_ROOT = 1
DENY_THRESHOLD_RESTRICTED = 1
WORK_DIR = /usr/share/denyhosts/data
SUSPICIOUS_LOGIN_REPORT_ALLOWED_HOSTS=YES
HOSTNAME_LOOKUP=NO
LOCK_FILE = /var/lock/subsys/denyhosts
AGE_RESET_VALID=5d
AGE_RESET_ROOT=25d
AGE_RESET_RESTRICTED=25d
AGE_RESET_INVALID=10d
RESET_ON_SUCCESS = yes
DAEMON_LOG = /var/log/denyhosts
DAEMON_SLEEP = 30s
DAEMON_PURGE = 1h
4 DenyHosts启动
1 )可以为DenyHosts的启动脚本创建一个符号连接,如下:
# cd /etc/init.d
# ln -s /usr/share/denyhosts/daemon-control denyhosts
然后将denyhosts加入到系统服务中,那么在系统启动时候随系统一起启动。
# chkconfig --add denyhosts
2 )可以将denyhosts启动脚本加入到rc.local中启动,如下:
/usr/share/denyhosts/daemon-control start
这里采用第一种方法,完成后启动denyhosts
[root@node1 ~]# service denyhosts start
starting DenyHosts:    /usr/bin/env python /usr/bin/denyhosts.py --daemon --config=/usr/share/denyhosts/denyhosts.cfg
[root@node1 ~]#
5 :测试
例如1
   在客户机192.168.1.102机器上尝试访问192.168.1.100服务器来测试denyhosts是否生效。以root用户登陆192.168.1.100服务器,输入错误密码。然后再登陆服务端系统看看会有什么结果出现。如下:
在服务端查看:
[root@node1 ~]# cat /var/log/denyhosts
2009-07-17 08:43:45,519 - denyhosts   : INFO     new denied hosts: ['192.168.1.102']
[root@node1 ~]# cat /etc/hosts.deny
sshd: 192.168.1.102
[root@node1 ~]# date
Fri Jul 17 08:43:58 EDT 2009
[root@node1 ~]#
当输入一次错误密码时客户机ip地址被添加到hosts.deny文件中拒绝登陆。
例如2
    在客户机192.168.1.109机器上尝试访问192.168.1.100服务器来测试denyhosts是否生效。以服务端不存在的帐户登陆3192.168.1.100服务器,输入错误密码。然后再登陆服务端系统看看会有什么结果出现。如下:
在服务端查看:
[root@node1 ~]# cat /etc/hosts.deny
sshd: 192.168.1.102
sshd: 192.168.1.109
[root@node1 ~]# cat /var/log/denyhosts
2009-07-17 08:43:45,519 - denyhosts   : INFO     new denied hosts: ['192.168.1.102']
2009-07-17 08:52:45,404 - denyhosts   : INFO     new denied hosts: ['192.168.1.109']
[root@node1 ~]# date
Fri Jul 17 08:53:01 EDT 2009
[root@node1 ~]#
当输入3次错误密码时客户机ip地址被添加到hosts.deny文件中拒绝登陆
例如3
    清除192.168.1.100服务器上的/etc/hosts.deny/var/log/denyhosts内容。在客户机192.168.1.120机器上尝试访问192.168.1.100服务器来测试denyhosts是否生效。以服务端普通帐户登陆3192.168.1.100服务器,输入错误密码。然后再登陆服务端系统看看会有什么结果出现。如下:
[root@node1 ~]# cat /etc/hosts.deny
sshd: 192.168.1.120
[root@node1 ~]# cat /var/log/denyhosts
2009-07-17 09:37:00,599 - denyhosts   : INFO     new denied hosts: ['192.168.1.120']
[root@node1 ~]# date
Fri Jul 17 09:37:03 EDT 2009
[root@node1 ~]#
当输入3次错误密码时客户机ip地址被添加到hosts.deny文件中拒绝登陆。
6 :附加:
详细的帮助信息参考http://denyhosts.sourceforge.net网站。
 

你可能感兴趣的:(ssh,职场,休闲,denyhosts,破戒)