DenyHosts的安装配置

冷菌 2020年10月31日 78次浏览

最后更新时间:2020/10/30

DenyHost简介

DenyHosts是针对SSH服务器的一个基于日志的入侵预防安全工具,是用Python编写的。其通过监测身份验证登录日志中失败的登录尝试,屏蔽这些登录者的IP地址,从而预防对SSH服务器的暴力破解。

DenyHost 原理

DenyHosts通过监测身份验证登录日志的末尾,来获取近期失败的登录尝试信息。DenyHosts记录了有关登录者IP地址的信息,并将失败的登录尝试次数与用户指定的阈值进行比较。如果失败的登录尝试次数太多,DenyHosts假定发生了字典式攻击,并通过将IP地址添加到服务器上的/etc/hosts.deny,屏蔽相关IP,防止其进一步的攻击。

DenyHosts仅对使用IPv4的连接有效。它在IPv6下不起作用。

本次安装的DenyHosts-2.6基于Python2(没错!Python3安装会报错,请事先检查)

DenyHost 安装

wget https://netcologne.dl.sourceforge.net/project/denyhosts/denyhosts/2.6/DenyHosts-2.6.tar.gz

tar xf DenyHosts-2.6.tar.gz

cd DenyHosts-2.6

python setup.py install  #安装DenyHosts

cd /usr/share/denyhosts/ #默认安装路径

cp denyhosts.cfg-dist denyhosts.cfg    #denyhosts.cfg为配置文件

cp daemon-control-dist daemon-control  #daemon-control为启动程序

cp /usr/share/denyhosts/daemon-control /etc/init.d/  

chkconfig daemon-control on   #将denghosts设成开机启动

/etc/init.d/daemon-control start  #启动denyhosts

配置文件简要说明

vim /usr/share/denyhosts/denyhosts.cfg        #编辑配置文件,另外关于配置文件一些参数,通过grep -v "^#" 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                              #过多久后清除已经禁止的,设置为30分钟;
# 'm' = minutes
# 'h' = hours
# 'd' = days
# 'w' = weeks
# 'y' = years
BLOCK_SERVICE = sshd                         #禁止的服务名,当然DenyHost不仅仅用于SSH服务
DENY_THRESHOLD_INVALID = 1                   #允许无效用户失败的次数
DENY_THRESHOLD_VALID = 3                     #允许普通用户登陆失败的次数
DENY_THRESHOLD_ROOT = 3                      #允许root登陆失败的次数
DAEMON_LOG = /var/log/denyhosts              #DenyHosts日志文件存放的路径,默认

更改DenyHosts的默认配置之后,重启DenyHosts服务即可生效:
/etc/init.d/daemon-control restart         #重启denyhosts