为了避免其他人对服务器进行暴力破解,可以通过
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,并加入到允许主机例表,只在 /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