一:检查安装要求
首选检查sshd是否支持Tcpwrap,只有支持Tcpwrap才可以安装Denyhost
ldd /usr/sbin/sshd |grep wrap
再检查python的版本,python2.3以上版本可以直接安装
python –V
(这个地方我执行这条命令后不知道怎么退,就直接断开连接重连了[可能因为我不是PYer])
二:安装Denyhost
wget http://soft.vpser.net/security/denyhosts/DenyHosts-2.6.tar.gz
tar -xzvf DenyHosts-2.6.tar.gz
cd DenyHosts-2.6
python setup.py install
四:进入程序脚本的目录,拷贝模板文件,设置好启动脚本的所属权限
cd /usr/share/denyhosts/
cp daemon-control-dist daemon-control
chown root daemon-control
chmod 700 daemon-control
五:生成Denyhost的主配置文件,(将模板文件中开头是#的过滤后再导入到Denyhost.cfg)
grep -v "^#" denyhosts.cfg-dist > denyhosts.cfg
vi denyhosts.cfg
##两个必改参数(参数意思请查看下面的参数说明)
DENY_THRESHOLD_ROOT 改为5
PURGE_DENY 改为1h
参数说明:
PURGE_DENY = 50m #过多久后清除已阻止IP
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 用户的时间。
保存退出
echo '/usr/share/denyhosts/daemon-control start' >> /etc/rc.d/rc.local
七:启动Denyhost的进程
/usr/share/denyhosts/daemon-control start
八: 可以查看到Denyhost在运行中
ps -ef |grep deny
关于排错(我没遇到,很顺的就安装好了,有待实践)
出现:
startingDenyHosts: /usr/bin/env python /usr/bin/denyhosts.py --daemon --config=/usr/share/denyhosts/denyhosts.cfg
DenyHostscouldnotobtainlock(pid:)
[Errno 17] File exists: '/var/lock/subsys/denyhosts'
使用:
rm -f /var/lock/subsys/denyhosts
./daemon-control start
startingDenyHosts: /usr/bin/env python /usr/bin/denyhosts.py –daemon –config=/usr/share/denyhosts/denyhosts.cfg
OK!
启动完成啦。
你可以使用下面的命令来查看运行状态
service denyhosts status
六:将Denyhost启动脚本添加到自动启动中
七:查看攻击的ip记录
vi /etc/hosts.deny