服务器安全篇——denyhosts配置

为了避免其他人对服务器进行暴力破解,可以通过denyhosts来配置,该服务通过分析日志数据,它会分析sshd的日志文件(/var/log/secure),当发现重 复的攻击时就会记录IP到/etc/hosts.deny文件,从而达到自动屏IP的功能。

编写安装脚本

为了是安装更加方便快捷,可以写入脚本文件中方便,方便进行配置,取名为installDenyhost.sh

#!/bin/bash
# 下载软件
wget http://sourceforge.net/projects/denyhosts/files/denyhosts/2.6/DenyHosts-2.6.tar.gz
# 解压软件
tar -zxvf DenyHosts-2.6.tar.gz
# 更改目录
mv DenyHosts-2.6 denyhost 
# 进入目录
cd denyhost/
# 安装脚本
python setup.py install
# 进入配置目录
cd /usr/share/denyhosts/ 
#为了方便改变配置文件名称
cp daemon-control-dist daemon-control
#修改服务文件名称
cp denyhosts.cfg-dist denyhosts.cfg
#提高安全级别,修改权限
chown root daemon-control 
chmod 700 daemon-control 
#创建启动服务连接
ln -s /usr/share/denyhosts/daemon-control /etc/init.d/denyhosts 
#添加启动项
chkconfig denyhosts on 
#备份配置文件,为修改配置做准备
cp denyhosts.cfg denyhosts.cfg.bak 
#启动服务
/etc/init.d/denyhosts start
# 成功安装
echo install succeed!

配置denyhosts.cfg

通过vi /etc/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
#过多久后清除已经禁止的,空表示永久不清除

#            'm' = minutes
#            'h' = hours
#            'd' = days
#            'w' = weeks
#            'y' = years

BLOCK_SERVICE = sshd
#禁止的服务名,当然DenyHost不仅仅用于SSH服务,还可用于SMTP等等。
DENY_THRESHOLD_INVALID = 1
#允许无效用户失败的次数
DENY_THRESHOLD_VALID = 5
#允许普通用户登陆失败的次数
DENY_THRESHOLD_ROOT = 3
#允许root登陆失败的次数
HOSTNAME_LOOKUP=NO
#是否做域名反解
ADMIN_EMAIL = 
#管理员邮件地址,它会给管理员发邮件
DAEMON_LOG = /var/log/denyhosts
#DenyHosts日志文件存放的路径

denyhosts的其他管理

删除已经禁止的主机IP

如果想删除一个已经禁止的主机IP,并加入到允许主机例表,只在 /etc/hosts.deny 删除是没用的。需要进入 /var/lib/denyhosts 目录,进入以下操作: * 停止DenyHosts服务:$ sudo service denyhosts stop * 在 /etc/hosts.deny中删除你想取消的主机IP * 编辑 DenyHosts工作目录的所有文件,通过 sudo grep 192.168.1.191 /usr/share/denyhosts/data/*,然后一个个删除文件中你想取消的主机IP所在的行 * 添加你想允许的主机IP地址到/var/lib/denyhosts/allowed-hosts,并且添加到vi /usr/share/denyhosts/data/allowed-hostsps * 启动DenyHosts服务: service denyhosts start