DenyHosts可以阻止试图猜测SSH登录口令,会分析/var/log/secure等日志文件,当发现同一IP在进行多次SSH密码尝试时就会记录IP到/etc/hosts.deny文件,从而达到自动屏蔽该IP的目的。
vim/usr/share/denyhosts/denyhosts.cfg #编辑配置文件,另外关于配置文件一些参数,通过grep -v"^#" 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 #过多久后清除已经禁止的,设置为30分钟;
# ‘m’ = minutes
# ‘h’ = hours
# ‘d’ = days
# ‘w’ = weeks
# ‘y’ = years
PURGE_DENY =1w #过多久后解除阻止IP,1周
HOSTS_DENY =/etc/hosts.deny #将阻止IP写入到hosts.deny
BLOCK_SERVICE= sshd #阻止服务名
DENY_THRESHOLD_INVALID= 1 #允许无效用户登录失败的次数
DENY_THRESHOLD_VALID= 10 #允许普通用户登录失败的次数
DENY_THRESHOLD_ROOT= 5 #允许root登录失败的次数
WORK_DIR =/usr/local/share/denyhosts/data #将deny的host或ip纪录到Work_dir中
DENY_THRESHOLD_RESTRICTED= 1 #设定 deny host 写入到该资料夹
LOCK_FILE =/var/lock/subsys/denyhosts #将DenyHOts启动的pid纪录到LOCK_FILE中,已确保服务正确启动,防止同时启动多个服务。
HOSTNAME_LOOKUP=NO#是否做域名反解
ADMIN_EMAIL= #设置管理员邮件地址
DAEMON_LOG =/var/log/denyhosts #自己的日志文件
DAEMON_PURGE= 10m #该项与PURGE_DENY 设置成一样,也是清除hosts.deniedssh 用户的时间。
更改DenyHosts的默认配置之后,重启DenyHosts服务即可生效:
/etc/init.d/denyhostsrestart (services denyhosts restart) #重启denyhosts
经过以上配置,对于加强服务器安全是起了相当大的作用。尤其是对于那些无聊的暴力破解更为有效果。
未安装Python2.3以上版本的情况(以RedHat AS3、Python2.2为例)
1、安装Python最新版本的源码包,不必卸载原有低版本Python
# cd /usr/local/src
# wget http://www.python.org/ftp/python/2.5.1/Python-2.5.1.tar.bz2
# tar jxf Python-2.5.1.tar.bz2
# cd Python-2.5.1
# ./configure --prefix=/usr/local/python
# make
# make install