栏目头部广告

Linux 预防SSH暴力破解神器—DenyHosts

一、DenyHost介绍

DenyHosts是Python语言写的一个程序软件,运行于Linux上预防SSH暴力破解的,它会分析sshd的日志文件(/var/log/secure),当发现重复的攻击时就会记录IP到/etc/hosts.deny文件,从而达到自动屏IP的功能。

官网地址:https://sourceforge.net/projects/denyhosts/

GitHub地址:https://github.com/denyhosts

二、DenyHosts安装部署

2.1 DenyHosts-2.6版本

DenyHosts2.6安装包附件下载:Linux 预防SSH暴力破解神器—DenyHosts(图1)1-21051521214KN.gz

[root@10-27-0-224 ~]# tar zxvf DenyHosts-2.6.tar.gz

[root@10-27-0-224 ~]# cd DenyHosts-2.6

[root@10-27-0-224 DenyHosts-2.6]# python setup.py install

[root@10-27-0-224 DenyHosts-2.6]# cp denyhosts.cfg-dist denyhosts.cfg #默认配置文件

[root@10-27-0-224 DenyHosts-2.6]# cp daemon-control-dist daemon-control #启动文件

[root@10-27-0-224 DenyHosts-2.6]# chmod 700 daemon-control

[root@10-27-0-224 DenyHosts-2.6]# vim denyhosts.cfg  #查看主配置文件

PURGE_DENY = 5d                     #过多久后清除已阻止IP[never/week/day]
HOSTS_DENY = /etc/hosts.deny       #将阻止IP写入到hosts.deny
BLOCK_SERVICE = sshd              #阻止服务名
PURGE_THRESHOLD = 2             #定义了某一IP最多被解封多少次。某IP暴力破解SSH密码被阻止/解封达到了PURGE_THRESHOLD次,则会被永久禁止;
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   #将DenyHosts启动的pid纪录到LOCK_FILE中,已确保服务正确启动,防止同时启动多个服务。
HOSTNAME_LOOKUP=NO                      #是否做域名反解
ADMIN_EMAIL =                          #设置管理员邮件地址
DAEMON_LOG = /var/log/denyhosts #DenyHosts日志位置

[root@10-27-0-224 DenyHosts-2.6]# cp denyhosts.cfg /usr/share/denyhosts/denyhosts.cfg

[root@10-27-0-224 DenyHosts-2.6]# ./daemon-control start  #启动DenyHosts

[root@10-27-0-224 ~]# ln -s /root/DenyHosts-2.6/daemon-control /etc/init.d/ #对daemon-control进行软连接,方便管理

Linux 预防SSH暴力破解神器—DenyHosts(图2)

[root@10-27-0-224 ~]# /etc/init.d/daemon-control start           #启动denyhosts

[root@10-27-0-224 ~]# chkconfig daemon-control on #将denyhosts设成开机启动

或者

[root@10-27-0-224 ~]# vim /etc/rc.local

/root/DenyHosts-2.6/daemon-control start #添加开机自启

Linux 预防SSH暴力破解神器—DenyHosts(图3)

2.2 DenyHosts-2.10版本

DenyHosts2.10安装包附件下载:Linux 预防SSH暴力破解神器—DenyHosts(图1)1-21042R12516364.zip

[root@10-27-0-224 ~]# unzip denyhosts-2.10.zip #解压源码包

[root@10-27-0-224 ~]# cd denyhosts-2.10/   #进入安装解压目录

[root@10-27-0-224 denyhosts-2.10]# python setup.py install  #安装DenyHosts

[root@10-27-0-224 ~]# vim /etc/denyhosts.conf  #主配置文件

# 配置CentOS登录日志文件路径
SECURE_LOG = /var/log/secure
# 默认root用户只要密码输错一次,IP地址就会被禁止
DENY_THRESHOLD_ROOT = 1
# 默认情况下,永远不会清理长期被禁止的IP,即:PURGE_DENY =,建议保持默认
# 默认情况下,会调用iptables禁止IP建立连接,可以关闭该功能
#IPTABLES = /sbin/iptables
# 默认情况下会发送email到root@localhost,可以关闭该功能
ADMIN_EMAIL =
# Redhat/Fedora:
LOCK_FILE = /var/lock/subsys/denyhosts

# 新版本已经有了systemd服务脚本,可以直接复制使用

[root@10-27-0-224 ~]# find / -name denyhosts.service

/root/denyhosts-2.10/denyhosts.service

[root@10-27-0-224 ~]# cp denyhosts-2.10/denyhosts.service /etc/systemd/system/

[root@10-27-0-224 ~]# systemctl daemon-reload 

[root@10-27-0-224 ~]# systemctl enable denyhosts.service 

[root@10-27-0-224 ~]# systemctl start denyhosts.service 

【注意】对于误封的IP,可以删除/etc/hosts.deny中相关IP,并到/var/lib/denyhosts/allowed-hosts中添加IP白名单。3.x版本可以使用denyhosts.py --purgeip xxx清理误封的IP地址。

作者:UStarGao
链接:https://www.starcto.com/safetool/135.html
来源:STARCTO
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处

UCloud云平台推荐

UCloud新用户专属注册连接

UCloud CDN超值特惠专场

UCloud全球云主机(UHost/VPS)大促页面

UCloud快杰云主机大促页面

文章页广告

随便看看

栏目底部广告
`