实战演练:Fail2Ban部署全攻略,确保您的服务器免受CVE-2024-6387侵害!

Fail2Ban是一个开源的入侵防护软件,它可以扫描日志文件,识别恶意行为(如多次失败的登录尝试),并自动采取措施(如更新防火墙规则)来阻止攻击者。最近,CVE-2024-6387漏洞的爆出使我们更加关注服务器安全问题,本文将详细介绍如何安装和配置Fail2Ban来保护您的服务器,特别是如何应对类似CVE-2024-6387这样的漏洞。

一、漏洞简介

CVE-2024-6387 是 OpenSSH 服务器中的一个严重漏洞,影响基于 glibc 的 Linux 系统。攻击者可以利用该漏洞在无需认证的情况下,通过竞态条件远程执行任意代码,获得系统控制权。这个漏洞源于处理超时信号时的不安全操作,最早在 OpenSSH 8.5p1 版本中引入。
受影响的版本:

OpenSSH 版本 8.5p1 到 9.8p1(不包括9.8p1)。

关于该漏洞的更加详细资料请阅读上一篇文章

二、安装Fail2Ban

Fail2Ban可以在大多数Linux发行版上安装,以下是安装步骤:

在Debian/Ubuntu上安装
bash 复制代码
sudo apt update
sudo apt install fail2ban
在CentOS/RHEL上安装
bash 复制代码
sudo yum update
sudo yum install epel-release
sudo yum install fail2ban

三、基本配置

Fail2Ban的配置文件位于 /etc/fail2ban 目录下,主要配置文件是 jail.confjail.local。我们建议不要直接修改 jail.conf,而是在 jail.local 中进行配置,以便于软件升级时保留自定义配置。

创建jail.local

首先,创建一个新的配置文件 jail.local

bash 复制代码
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
配置SSH防护

打开 jail.local 文件,找到 [sshd] 部分,并进行如下配置:

properties 复制代码
ignoreip = 127.0.0.1/8
enabled = true
filter = sshd
port = 22
maxretry = 5
findtime = 300
bantime = 600
banaction = ufw
action = %(action_mwl)s
logpath = /var/log/auth.log
  • enabled:设置为 true 以启用对SSH服务的监控。
  • port:设置为 ssh,或指定具体的端口号。
  • logpath:指定SSH日志文件路径。大多数系统上为 /var/log/auth.log。
  • maxretry:可以单独为SSH服务配置失败尝试次数
启动和管理Fail2ban

配置完成后,可以启动Fail2ban服务:

shell 复制代码
sudo systemctl start fail2ban
sudo systemctl enable fail2ban

通过如下命令查看服务启动状态

四、高级配置

为应对CVE-2024-6387漏洞,我们需要更严格的配置和规则。可以通过调整 bantime(封禁时间)、findtime(检测时间窗口)和 maxretry(最大尝试次数)来实现。

调整封禁策略

jail.local 中,添加或修改以下内容:

properties 复制代码
[DEFAULT]
bantime  = 1h
findtime = 10m
maxretry = 3

这样配置后,如果某个IP在10分钟内尝试登录失败超过3次,该IP将被封禁1小时。

六、重启Fail2Ban

完成配置后,重启Fail2Ban以使配置生效:

bash 复制代码
sudo systemctl restart fail2ban

七、监控和日志查看

Fail2Ban运行时会生成日志,默认日志文件位于 /var/log/fail2ban.log。您可以通过查看此日志文件来监控Fail2Ban的运行状态和封禁情况。

bash 复制代码
tail -f /var/log/fail2ban.log

八、总结

Fail2Ban是一款强大的工具,可以显著提高服务器的安全性。通过合理配置,您可以有效防范包括CVE-2024-6387在内的各种攻击。定期更新和监控Fail2Ban的日志,是确保服务器安全运行的关键。

相关推荐
安迪小宝18 分钟前
6 任务路由与负载均衡
运维·python·celery
遇见火星29 分钟前
jenkins流水线常规配置教程!
运维·docker·jenkins
LunarCod2 小时前
Ubuntu使用Docker搭建SonarQube企业版(含破解方法)
linux·运维·服务器·ubuntu·docker·开源·sonarqube
什么半岛铁盒2 小时前
Linux信号的保存
linux·运维·网络
noravinsc2 小时前
国产化中间件 替换 nginx
运维·nginx·中间件
惜.己3 小时前
Linux常用命令(十四)
linux·运维·服务器
linkingvision3 小时前
H5S 视频监控AWS S3 对象存储
linux·运维·aws·视频监控s3对象存储
doupoa4 小时前
Fabric 服务端插件开发简述与聊天事件监听转发
运维·python·fabric
BillKu4 小时前
服务器多JAR程序运行与管理指南
运维·服务器·jar
QQ2740287564 小时前
BlockMesh Ai项目 监控节点部署教程
运维·服务器·web3