DenyHosts 是用 Python2.3 写的一个程序,它会分析 /var/log/secure redhat Fedora Core,Centos )等日志文件,当发现同一 IP 在进行多次 SSH EqRLinux 联盟
EqRLinux
联盟
码尝试时就会记录 IP /etc/hosts.deny 文件,从而达到自动屏蔽该 IP 的目的。 EqRLinux 联盟
EqRLinux
联盟
DenyHosts
官方网站为: [url]http://denyhosts.sourceforge.net[/url]
 
: 检查安装要求
首选检查 Sshd 是否支持 Tcpwrap ,只有支持 Tcpwrap 才可以安装 Denyhost
   50   ldd /usr/sbin/sshd |grep wrap
再检查Python 的版本, Python2.3 以上版本可以直接安装
   51   python –V
 
: 安装Denyhost
先从Sourceforge.net 上下载
wget [url]http://umn.dl.sourceforge.net/sourceforge/denyhosts/DenyHosts-2.6.tar.gz[/url]
进行解压,再进入到源目录
   49   tar -xzvf DenyHosts-2.6.tar.gz
   52   cd DenyHosts-2.6
执行Python 脚本进行安装,
   53   python setup.py install
   程序脚本自动安装到 /usr/share/denyhostsEqRLinux 联盟
  
库文件自动安装到 /usr/lib/python2.3/site-packages/DenyHostsEqRLinux 联盟
   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
编辑Denyhost.cfg 文件
   59   vi denyhosts.cfg
根据自己需要进行相应的修改 EqRLinux 联盟
----------------denyhosts.cfg------------------------EqRLinux 联盟
SECURE_LOG = /var/log/secure EqRLinux
联盟
#RedHat/Fedora Core
分析该日志文件 EqRLinux 联盟
#
其它版本 linux 根据 denyhosts.cfg-dist 内提示选择。 EqRLinux 联盟
EqRLinux
联盟
PURGE_DENY = 30mEqRLinux
联盟
#
过多久后清除 EqRLinux 联盟
EqRLinux
联盟
DENY_THRESHOLD_INVALID = 1EqRLinux
联盟
#
允许无效用户( /etc/passwd 未列出)登录失败的次数 EqRLinux 联盟
EqRLinux
联盟
DENY_THRESHOLD_VALID = 5EqRLinux
联盟
#
允许有效(普通)用户登录失败的次数 EqRLinux 联盟
EqRLinux
联盟
DENY_THRESHOLD_ROOT = 3EqRLinux
联盟
#
允许 root 登录失败的次数 EqRLinux 联盟
EqRLinux
联盟
HOSTNAME_LOOKUP=NOEqRLinux
联盟
#
是否做域名反解 EqRLinux 联盟
----------------denyhosts.cfg------------------------
Denyhost 启动脚本添加到自动启动中
   60   echo '/usr/share/denyhosts/daemon-control start'>>/etc/rc.d/rc.local
启动Denyhost 的进程
   61   /usr/share/denyhosts/daemon-control start
可以查看到Denyhost 在运行中
   62   ps -ef |grep deny
在另外一台机器上使用Ssh 进行连接,当在连续几次输入错误的密码后,会被自动阻止掉,在一定时内不可以再连接
Ssh 连接记录的日志文件
   66   tail /var/log/secure –f
Denyhost 日志文件
   67   tail /var/log/denyhosts –f
Denyhost 将恶意连接的 IP 记录到 Hosts.deny 文件中,过一定时间后再从该文件中清除( Denyhost.cfg 中设定的时间)
   68   vi /etc/hosts.deny