DenyHosts 是用 Python2.3 写的一个程序,它会分析 /var/log/secure ( redhat , Fedora Core,Centos )等日志文件,当发现同一 IP 在进行多次 SSH 密 码尝试时就会记录 IP 到 /etc/hosts.deny 文件,从而达到自动屏蔽该 IP 的目的。 DenyHosts 官方网站为: 首选检查 Sshd 是否支持 Tcpwrap ,只有支持 Tcpwrap 才可以安装 Denyhost 50 ldd /usr/sbin/sshd |grep wrap
再检查Python
的版本, Python2.3 以上版本可以直接安装 49 tar -xzvf DenyHosts-2.6.tar.gz
53 python setup.py install
程序脚本自动安装到 /usr/share/denyhosts 库文件自动安装到 /usr/lib/python2.3/site-packages/DenyHosts denyhosts.py 自动安装到 /usr/bin 54 cd /usr/share/denyhosts/
55 cp daemon-control-dist daemon-control
56 chown root daemon-control
57 chmod 700 daemon-control
生成Denyhost
的主配置文件,(将模板文件中开头是#
的过滤后再导入到Denyhost.cfg
) 58 grep -v "^#" denyhosts.cfg-dist > denyhosts.cfg
根据自己需要进行相应的修改 ----------------denyhosts.cfg------------------------ SECURE_LOG = /var/log/secure #RedHat/Fedora Core 分析该日志文件 # 其它版本 linux 根据 denyhosts.cfg-dist 内提示选择。 PURGE_DENY = 30m # 过多久后清除 DENY_THRESHOLD_INVALID = 1 # 允许无效用户( /etc/passwd 未列出)登录失败的次数 DENY_THRESHOLD_VALID = 5 # 允许有效(普通)用户登录失败的次数 DENY_THRESHOLD_ROOT = 3 # 允许 root 登录失败的次数 HOSTNAME_LOOKUP=NO # 是否做域名反解 ----------------denyhosts.cfg------------------------ 60 echo '/usr/share/denyhosts/daemon-control start'>>/etc/rc.d/rc.local
61 /usr/share/denyhosts/daemon-control start
在另外一台机器上使用Ssh
进行连接,当在连续几次输入错误的密码后,会被自动阻止掉,在一定时内不可以再连接 66 tail /var/log/secure –f
67 tail /var/log/denyhosts –f
Denyhost 将恶意连接的 IP 记录到 Hosts.deny 文件中,过一定时间后再从该文件中清除( Denyhost.cfg 中设定的时间) 本文转自fine102 51CTO博客,原文链接:http://blog.51cto.com/gzmaster/79370,如需转载请自行联系原作者