将SSH多次登录失败的IP加入黑名单

更多文章请移步:www.yanjun.pro

最近发现有人经常尝试使用SSH登录我的服务器,但是由于种种原因,只有自己想办法来阻止非法访问,最简单的方法就是通过系统自带的黑名单机制,将登录失败次数达到设定值的主机IP加入黑名单,以此来防止非法登录。

解决思路

创建一个定时任务,定时执行脚本文件,以此来检查登录失败主机列表,并将达到登录失败次数的主机IP地址加入到黑名单

【2021-08-09 】 经过一段时间的观察,使用现有的脚本虽然能防止非法 SSH 访问,但是在阻止访问后,一方面在系统安全日志中会记录每一条访问记录,这样会导致日志中大量记录非法访问的主机的 IP 地址,将其他的信息淹没在无用的信息中,不便于查询其他日志记录;另一方面,在将非法主机写入文件后,如果该主机继续访问,那么 sshd 服务还得去查询记录文件,来一条查一次,这样会导致 sshd 服务异常繁忙,可能会影响到正常业务访问。

为了解决以上问题,现将脚本进行了优化,在原有脚本的基础上,添加了系统防火墙联动机制(仅限于使用 firewalld 防火墙,其他如:Ubuntu的UFW防火墙请参考本脚本自行修改),将登录失败次数超过限定次数的主机 IP 地址,一方面写入 hosts.deny 文件外,同时将该 IP 地址添加到防火墙策略中,将其的数据包在到达主机时,直接丢弃,这样就不需要再通过 sshd 服务处理,一方面可以减轻 sshd 服务的压力;另一方面,因为不需要 sshd 服务的干预,所以也就没有相关日志的记录,不会将其他信息覆盖。

脚本文件

最新脚本文件:ssh_login_failed_host_deny_v0.2.sh

#!/usr/bin/bash
# -*- coding:UTF-8 -*-
#
#########################################################
#                                                  
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值