【 Fail2ban 使用教程】

server/2025/3/14 8:23:31/

Fail2ban 使用教程

  • 1. 安装 Fail2ban
  • 2. 配置 Fail2ban
    • 2.1 创建 `jail.local` 文件
    • 2.2 基本配置参数说明
    • 2.3 配置具体服务的监控规则
      • 2.3.1 SSH 服务
      • 2.3.2 Apache 服务
  • 3. 启动和管理 Fail2ban
    • 3.1 启动 Fail2ban 服务
    • 3.2 设置 Fail2ban 开机自启
    • 3.3 检查 Fail2ban 服务状态
    • 3.4 重新加载配置文件
  • 4. 查看和管理封禁列表
    • 4.1 查看当前封禁的 IP 地址
    • 4.2 解除封禁某个 IP 地址
  • 5. 自定义过滤规则
    • 5.1 创建自定义过滤规则文件
    • 5.2 编写过滤规则
    • 5.3 在 `jail.local` 文件中使用自定义过滤规则

Fail2ban 是一款基于日志监控的安全工具,可通过实时监控系统日志,对多次失败的登录尝试进行阻止,有效防止暴力破解攻击。以下是详细的使用教程:


1. 安装 Fail2ban

不同的操作系统安装方式不同,以下为你列举常见系统的安装方法:

  • Debian 或 Ubuntu:
sudo apt-get update
sudo apt-get install fail2ban
  • CentOS 或 RHEL:
sudo yum install epel-release
sudo yum install fail2ban
  • Fedora:
sudo dnf install fail2ban

2. 配置 Fail2ban

Fail2ban 的主要配置文件位于 /etc/fail2ban 目录下,其中 jail.conf 是默认配置文件,但不建议直接修改它,而是创建一个 jail.local 文件来覆盖默认配置。

2.1 创建 jail.local 文件

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

2.2 基本配置参数说明

jail.local 文件中,你可以对以下参数进行配置:

  • [DEFAULT] 部分:
    • ignoreip:指定不受 Fail2ban 限制的 IP 地址,多个 IP 地址用空格分隔。例如:
ignoreip = 127.0.0.1/8 192.168.1.0/24
  • bantime:设置封禁 IP 的时间,单位为秒。可以使用 m(分钟)、h(小时)、d(天)等单位。例如:
bantime = 600  # 封禁 10 分钟
  • findtime:在该时间段内,如果某个 IP 地址的失败尝试次数达到 maxretry,则会被封禁。例如:
findtime = 3600  # 1 小时内
  • maxretry:允许的最大失败尝试次数。例如:
maxretry = 3  # 允许 3 次失败尝试

2.3 配置具体服务的监控规则

jail.local 文件中,你可以为不同的服务添加监控规则。以下是一些常见服务的配置示例:

2.3.1 SSH 服务

[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log  # Debian/Ubuntu 系统
# logpath = /var/log/secure  # CentOS/RHEL 系统
maxretry = 3
bantime = 3600
  • enabled:设置为 true 表示启用该监控规则。
  • port:指定要监控的端口,ssh 表示默认的 SSH 端口 22。
  • filter:指定使用的过滤规则,sshd 是 Fail2ban 内置的 SSH 过滤规则。
  • logpath:指定 SSH 服务的日志文件路径。

2.3.2 Apache 服务

[apache]
enabled = true
port = http,https
filter = apache-auth
logpath = /var/log/apache2/error.log  # Debian/Ubuntu 系统
# logpath = /var/log/httpd/error_log  # CentOS/RHEL 系统
maxretry = 6
bantime = 3600

3. 启动和管理 Fail2ban

3.1 启动 Fail2ban 服务

sudo systemctl start fail2ban

3.2 设置 Fail2ban 开机自启

sudo systemctl enable fail2ban

3.3 检查 Fail2ban 服务状态

sudo systemctl status fail2ban

3.4 重新加载配置文件

当你修改了 jail.local 文件后,需要重新加载配置文件使更改生效:

sudo systemctl reload fail2ban

4. 查看和管理封禁列表

4.1 查看当前封禁的 IP 地址

sudo fail2ban-client status ssh  # 查看 SSH 服务的封禁列表

4.2 解除封禁某个 IP 地址

sudo fail2ban-client set ssh unbanip 192.168.1.100

5. 自定义过滤规则

如果你需要监控一些特殊的服务或日志格式,可以自定义过滤规则。过滤规则文件位于 /etc/fail2ban/filter.d 目录下。以下是一个简单的自定义过滤规则示例:

5.1 创建自定义过滤规则文件

sudo nano /etc/fail2ban/filter.d/custom-filter.conf

5.2 编写过滤规则

[Definition]
failregex = ^Your custom log pattern here$
ignoreregex =
  • failregex:指定匹配失败登录尝试的正则表达式。
  • ignoreregex:指定需要忽略的日志模式。

5.3 在 jail.local 文件中使用自定义过滤规则

[custom-service]
enabled = true
port = 8080
filter = custom-filter
logpath = /var/log/custom-service.log
maxretry = 3
bantime = 3600

通过以上步骤,你可以完成 Fail2ban 的安装、配置和使用,有效保护系统免受暴力破解攻击。



http://www.ppmy.cn/server/174831.html

相关文章

[密码学实战]Java实现国密TLSv1.3单向认证

一、代码运行结果 1.1 运行环境 1.2 运行结果 1.3 项目架构 二、TLS 协议基础与国密背景 2.1 TLS 协议的核心作用 TLS(Transport Layer Security) 是保障网络通信安全的加密协议,位于 TCP/IP 协议栈的应用层和传输层之间,提供: • 数据机密性:通过对称加密算法(如 AE…

C++蓝桥杯基础篇(十一)

片头 嗨~小伙伴们,大家好!今天我们来学习C蓝桥杯基础篇(十一),学习类,结构体,指针相关知识,准备好了吗?咱们开始咯~ 一、类与结构体 类的定义:在C中&#x…

STM32 HAL库实战:高效整合DMA与ADC开发指南

STM32 HAL库实战:高效整合DMA与ADC开发指南 一、DMA与ADC基础介绍 1. DMA:解放CPU的“数据搬运工” DMA(Direct Memory Access) 是STM32中用于在外设与内存之间直接传输数据的硬件模块。其核心优势在于无需CPU干预,…

SpringBoot3+Lombok如何配置logback输出日志到文件

Background/Requirement SpringBoot3Lombok如何配置logback输出日志到文件,因为我需要对这些日志进行输出,控制台输出和文件输出,文件输出是为了更好的作为AuditLog且支持滚动式备份,每天一个文件。 Technical Solution 1.确保你…

计算机网络--访问一个网页的全过程

文章目录 访问一个网页的全过程应用层在浏览器输入URL网址http://www.aspxfans.com:8080/news/index.aspboardID5&ID24618&page1#r_70732423通过DNS获取IP地址生成HTTP请求报文应用层最后 传输层传输层处理应用层报文建立TCP连接传输层最后 网络层网络层对TCP报文进行处…

STM32F407 cubeIDE Bootloader APP 如何写

一、bootloader 代码如下: #define FLASH_JUMP_ADDR (0x0800c000) /* USER CODE END PD *//* Private macro -------------------------------------------------------------*/ /* USER CODE BEGIN PM *//* USER CODE END PM *//* Private variables ----------…

红帆 iOffice M2 移动端密码爆破的渗透测试思路,绕过客户端实现Burpsuite批量跑,分享渗透思路,共建网络安全

一、本文概述 今天来自于领导的一个需求,需要对甲方的红帆 ioffice M2进行一次渗透测试【有授权书的】,拿到对应的APP和接口以后,我发现了进行不下去的一个关键点,他家的OA只有APP端,没有Web端,而且密码被加密了。 二、开始分析 红帆 iOffice M2,在登录的过程中,涉及…

AI预测福彩3D新模型百十个定位预测+胆码预测+杀和尾+杀和值2025年3月13日第21弹

前面由于工作原因停更了很长时间,停更期间很多彩友一直私信我何时恢复发布每日预测,目前手头上的项目已经基本收尾,接下来恢复发布。当然,也有很多朋友一直咨询3D超级助手开发的进度,在这里统一回复下。 由于本人既精…