广告

云主机Centos使用DenyHosts阻止SSH爆破

2023-11-29

该教程仅适用于云主机产品

DenyHosts是一个开源且免费的基于日志的入侵防御安全程序。

其通过监测身份验证登录日志中失败的登录尝试,屏蔽这些登录者的IP地址,从而预防对SSH服务器的暴力破解。

1.下载DenyHosts

wget http://mirror.neu.edu.cn/fedora-epel/7/x86_64/d/denyhosts-2.9-4.el7.noarch.rpm

下载DenyHosts

2.安装DenyHosts

rpm -ivh denyhosts-2.9-4.el7.noarch.rpm

安装DenyHosts


3.查看是否安装成功,查看DenyHosts软件安装路径信息

rpm -ql denyhosts

查看是否安装成功,查看DenyHosts软件安装路径信息


4.查看默认配置文件(附 配置说明)

grep -v "^#" /etc/denyhosts.conf | grep -v "^$"
配置文件信息如下:

SECURE_LOG = /var/log/secure #ssh 日志文件,它是根据这个文件来判断的。

HOSTS_DENY = /etc/hosts.deny #控制用户登陆的文件

PURGE_DENY = 4w #过多久后清除已经禁止的IP,其中w代表周,d代表天,h代表小时,s代表秒,m代表分钟

BLOCK_SERVICE = sshd #denyhosts所要阻止的服务名称

DENY_THRESHOLD_INVALID = 5 #允许无效用户登录失败的次数

DENY_THRESHOLD_VALID = 10 #允许普通用户登录失败的次数

DENY_THRESHOLD_ROOT = 1 #允许ROOT用户登录失败的次数

DENY_THRESHOLD_RESTRICTED = 1 #在失败次数后阻止每个主机登录尝试次数已超过此值。该值适用于只出现在 WORK_DIR/restricted-usernames 文件中的用户名。

WORK_DIR = /var/lib/denyhosts #denyhosts工作数据目录,将deny的host或ip记录到WORK_DIR中

ETC_DIR = /etc

SUSPICIOUS_LOGIN_REPORT_ALLOWED_HOSTS=YES

HOSTNAME_LOOKUP=NO #是否做域名反解

LOCK_FILE = /var/lock/subsys/denyhosts

#将DenyHost启动的pid记录到LOCK_FILE中,已确保服务正确启动,防止同时启动多个服务

############ THESE SETTINGS ARE OPTIONAL ############

ADMIN_EMAIL = root@localhost #设置管理员邮件地址

SMTP_HOST = localhost

SMTP_PORT = 25

SMTP_FROM = DenyHosts 

SMTP_SUBJECT = DenyHosts Report from $[HOSTNAME]

ALLOWED_HOSTS_HOSTNAME_LOOKUP=NO

AGE_RESET_VALID=5d #有效用户登录失败计数归零的时间

AGE_RESET_ROOT=25d #ROOT用户登录失败计数归零的时间

AGE_RESET_RESTRICTED=25d #用户的失败登录计数重置为0的时间

AGE_RESET_INVALID=10d #无效用户登录失败计数归零的时间

######### THESE SETTINGS ARE SPECIFIC TO DAEMON MODE ##########

DAEMON_LOG = /var/log/denyhosts #denyhost服务日志文件

DAEMON_SLEEP = 30s

DAEMON_PURGE = 1h

#该项与PURGE_DENY 设置成一样,也是清除hosts.deniedssh 用户的时间

######### THESE SETTINGS ARE SPECIFIC TO ##########

######### DAEMON SYNCHRONIZATION ##########

SYNC_UPLOAD = no

SYNC_DOWNLOAD = no

5.修改配置文件

vi /etc/denyhosts.conf
为了不影响正常SSH登录,建议的时间与次数配置如下

修改配置文件

设置开机启动并运行denyhosts服务

systemctl enable denyhosts

systemctl start denyhosts

运行后查看denyhosts服务状态

Systemctl status denyhosts

查看服务状态为Action (running)

查看服务状态


测试SSH暴力破解登录

测试SSH暴力破解登录

多次失败后再次SSH远程

多次失败后再次SSH远程

通过查看DenyHosts日志信息

tail -f /var/log/denyhosts
观察可知 在多次失败SSH远程后用于测试的IP:121.*.*.162被封禁,禁止SSH远程

通过查看DenyHosts日志信息

通过查看hosts.deny文件 查看当前已被禁止的IP

cat /etc/hosts.deny

通过查看hosts.deny文件 查看当前已被禁止的IP
 

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。本站原创内容未经允许不得转载,或转载时需注明出处!

上一篇:Windows系统如何删除休眠文件

下一篇:Ubuntu18.04系统如何安装guacamole

这条帮助是否解决了您的问题?已解决未解决

提交成功!非常感谢您的反馈,我们会继续努力做到更好!很抱歉未能解决您的疑问。我们已收到您的反馈意见,同时会及时作出反馈处理!

立即注册91VPS账号,免费体验多款产品
立即注册
联系我们
全国咨询热线:
0712-5319406
QQ客服:
800193021
91VPS微信客服

扫码联系微信客服