加固系统安全,防范ssh暴力破解之Fail2Ban

你是否还在担心你的服务器被攻击?你是否还在担心你的博客的安全?你是否还在担心你的隐私?别急fail2ban它来了,它可以解决你的一切问题。

Fail2Ban 是什么?

现在让我们一起来认识一下今天的主角 – Fail2Ban。简单说来,这是一个入侵防御软件的框架,可以保护计算机服务器免受暴力攻击。Fail2Ban 使用 Python 编程语言编写,能够运行在 POSIX 系统上(例如:Linux),并且具有与本地安装的数据包控制系统或防火墙的接口,例如iptables或TCP Wrapper 等。更进一步的解释,Fail2Ban 帮助我们自动化的监视暴力攻击和密码猜测者的攻击,对于在短时间内反复未能通过身份验证,则自动的禁止进行尝试。

Fail2Ban 工作原理

Fail2ban通过扫描日志文件(例如/ var / log / apache / error_log),发现并禁止显示出恶意迹象的IP地址(例如:过多的密码失败、寻找漏洞利用等)。通常,Fail2Ban使用更新防火墙规则的方法在指定的时间内拒绝特定的IP地址,在Linux 操作系统下,Fail2Ban 是通过向iptables 添加规则来强制实施对可疑IP地址的禁止。当然也可以配置任何其他任意操作(例如:发送电子邮件等)。

Fail2Ban具有开箱即用的特性,标准配置附带了Apache、Lighttpd、sshd、vsftpd、qmail、Postfix和Courier邮件服务器的过滤器。过滤器是由Python正则表达式定义的,熟悉正则表达式的开发人员可以方便地对其进行定制。一个过滤器和一个动作的组合被称为“jail”(监狱),是用来阻止恶意访问者对特定网络服务的访问。以及随软件分发的示例,可能会为创建访问日志文件的任何面向网络的过程创建一个“监狱”。考虑到现实的场景中,可能已为本机的防火墙配置了规则。Fail2Ban仅添加和删除其自己的规则-常规的iptables 的规则将保持不变。

Fail2Ban能够减少不正确的/恶意的身份验证尝试的发生率,但是它不能消除弱身份验证带来的安全风险。 如果确实想保护服务器资源,则务必要结合安全的身份认证方法,例如多因子认证(MFA)等。

安装 Fai2Ban

yum install -y fail2ban

配置 Fai2Ban

Fail2Ban安装包中含有一个名为jail.conf的默认配置文件。 升级Fail2Ban时,该文件将被覆盖。因此,如果有定制化的配置,需要在升级前做好备份。

另一种推荐的方法是将jail.conf文件复制到一个名为jail.local的文件中。 我们将定制的的配置更改存入jail.local中。这个文件在升级过程中将保持不变。 Fail2Ban启动时会自动读取这jail.conf与jail.local这两个配置文件,当然后者的优先级比较高。

操作方法:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

现在,我们使用编辑器中打开文件jail.local。我使用的是vim

操作方法:sudo vim /etc/fail2ban/jail.local

我们配置的是60秒内失败一次永久封禁

配置好后就可以启动fail2ban服务

systemctl enable --now fail2ban

然后查看Jail(监狱)

fail2ban-client status

然后查看指定的Jail(监狱)

fail2ban-client status sshd

测试配置

我们可以找到另一台计算机上,用这台机器将向测试的实例发出SSH连接请求,并故意输入密码

创建测试账号

useradd testssh
passwd testssh

在另一台机器上进行测试,并在目标机器上观察日志

tail -f /var/log/fail2ban.log

 

可以看到在 我们第一次输错密码的时候我们进行连接的ip地址就已经被加入黑名单,再次进行ssh连接直接被拒绝

查看sshd监狱,可以看到我们刚才使用的ip已经进入黑名单

以下是一些常用的 Fail2Ban 命令:

  1. 启动 Fail2Ban 服务:

    sudo systemctl start fail2ban
    

    这个命令用于启动 Fail2Ban 服务。

  2. 停止 Fail2Ban 服务:

    sudo systemctl stop fail2ban
    

    这个命令用于停止 Fail2Ban 服务。

  3. 重启 Fail2Ban 服务:

    sudo systemctl restart fail2ban
    

    这个命令用于重启 Fail2Ban 服务。

  4. 检查 Fail2Ban 服务状态:

    sudo systemctl status fail2ban
    

    这个命令用于检查 Fail2Ban 服务的状态,包括是否正在运行、最近的日志等信息。

  5. 显示当前的封禁规则和封禁的 IP 地址:

    sudo fail2ban-client status
    

    这个命令用于显示当前的封禁规则和封禁的 IP 地址列表。

  6. 解封 IP 地址:

    sudo fail2ban-client set [JAIL 名称] unbanip [IP 地址]
    

    这个命令用于手动解封指定的 IP 地址。将 [JAIL 名称] 替换为实际的 Fail2Ban 配置文件中定义的监控规则(如 sshd),将 [IP 地址] 替换为需要解封的 IP 地址。

  7. 查看指定 JAIL 的详细信息和状态:

    sudo fail2ban-client status [JAIL 名称]
    

这个命令用于显示指定 JAIL 的详细信息和状态,包括封禁的 IP 地址、封禁时间等信息。

结语

我不认为Fail2Ban是解决安全问题的“银子弹”。但是你不能否认Fail2Ban是一个简单有效的恶意嗅探/暴力攻击的有效的方法。它只需很少的配置,几乎不会给我们的服务器带来任何操作开销。更重要的是,它没有任何成本,除了安装配置所付出的几分钟时间。还犹豫什么呢?

最后

从时代发展的角度看,网络安全的知识是学不完的,而且以后要学的会更多,同学们要摆正心态,既然选择入门网络安全,就不能仅仅只是入门程度而已,能力越强机会才越多。

因为入门学习阶段知识点比较杂,所以我讲得比较笼统,大家如果有不懂的地方可以找我咨询,我保证知无不言言无不尽,需要相关资料也可以找我要,我的网盘里一大堆资料都在吃灰呢。

干货主要有:

①1000+CTF历届题库(主流和经典的应该都有了)

②CTF技术文档(最全中文版)

③项目源码(四五十个有趣且经典的练手项目及源码)

④ CTF大赛、web安全、渗透测试方面的视频(适合小白学习)

⑤ 网络安全学习路线图(告别不入流的学习)

⑥ CTF/渗透测试工具镜像文件大全

⑦ 2023密码学/隐身术/PWN技术手册大全

扫码领取

 

本文转自 https://blog.csdn.net/weixin_72610956/article/details/137464314?spm=1001.2100.3001.7377&utm_medium=distribute.pc_feed_blog_category.none-task-blog-classify_tag-8-137464314-null-null.nonecase&depth_1-utm_source=distribute.pc_feed_blog_category.none-task-blog-classify_tag-8-137464314-null-null.nonecase,如有侵权,请联系删除。

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值