您的位置:首页 > 职场人生

防暴力破戒ssh登录密码

2009-07-25 00:56 387 查看
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-control是daemon-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是否生效。以服务端不存在的帐户登陆3次192.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是否生效。以服务端普通帐户登陆3次192.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网站。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息