当前位置: 首页 > news >正文

【 Fail2ban 使用教程】

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 的安装、配置和使用,有效保护系统免受暴力破解攻击。


相关文章:

  • 力扣——两数相加
  • 每日一题--数据库
  • 建筑兔零基础自学记录45|获取高德/百度POI-1
  • 前端面试:富文本编辑器里面如何在划词选择的文本上添加右键菜单?
  • 心理状态的微妙变化
  • 网关的详细介绍
  • qemu的usb前后端处理
  • 十四、Vue 项目工程化:从 ESLint 到 CI/CD 的最佳实践
  • 前端项目部署方案
  • 阿里云服务器购买及环境搭建宝塔部署springboot和vue项目
  • python-leetcode-叶子相似的树
  • 【MySQL】MySQL是如何传输数据的?
  • day3
  • 算法手记3
  • 人工智能与我何干
  • MinIO问题总结(持续更新)
  • VMware虚拟机网络连接模式介绍以及nat模式访问公网实践
  • AI短视频流量获取方法(一)
  • 【HarmonyOS NEXT】获取组件宽高和在屏幕上的位置
  • 【AI】从头到脚详解如何创建部署Azure Web App的OpenAI项目
  • 住房和城乡建设部网站施工员/阿里指数查询入口
  • qq建设网站首页/焦作seo公司
  • up网络推广公司/东莞网站建设优化诊断
  • 申请个网站要多少钱/青岛网络科技公司排名
  • cloudflare做侵权网站/中国女排联赛排名
  • 长春网站建设硕成传媒/株洲网站设计