首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >TencentOS Server 4 或者tlinux4安装fail2ban

TencentOS Server 4 或者tlinux4安装fail2ban

原创
作者头像
Sync
修改2026-02-14 12:50:37
修改2026-02-14 12:50:37
1040
举报
文章被收录于专栏:系统运维系统运维

Fail2Ban 源码安装与配置指南

概述

Fail2Ban 是一款用于保护服务器免受暴力攻击的入侵防御软件。通过监控系统日志,自动封禁有恶意行为的 IP 地址。本指南介绍从 GitHub 源码编译安装 Fail2Ban,并配置为 systemd 服务的方法。

fail2ban官方的安装包并不适合所有系统,本文参考:https://github.com/fail2ban/fail2ban/wiki/How-to-install-or-upgrade-fail2ban-manually 使用通用编译安装方式进行安装。

前提条件
  • 操作系统:TencentOS Server 4。
  • 用户权限:root 或具有 sudo 权限的用户。
  • 网络连接:可访问互联网以下载源码和依赖。
安装步骤

步骤 1:安装编译与运行时依赖

代码语言:javascript
复制
yum install gcc python3-devel python3-setuptools python3-pip git -y
  • 解释:安装编译工具(gcc)、Python 开发包、pip 包管理器和 Git。这些是编译和安装 Fail2Ban 所必需的。

步骤 2:获取 Fail2Ban 源码

代码语言:javascript
复制
cd /tmp
git clone https://github.com/fail2ban/fail2ban.git
cd fail2ban
#github地址在海外,境内网络机器下载源码可能比较慢,或者超时,实在不行也可以找能下载的终端下载好再上传到需要安装的机器上。
  • 解释:将源码克隆到临时目录 /tmp/fail2ban,并进入该目录。

步骤 3:安装

代码语言:javascript
复制
python3 setup.py install
  • 解释:将可执行文件安装到系统路径(如 /usr/local/bin)。
  • 注意:如果系统中存在多个 Python 环境,建议使用虚拟环境(见下文“可选优化”部分)。

步骤 4:复制 systemd 服务文件

代码语言:javascript
复制
cp /tmp/fail2ban/build/fail2ban.service /etc/systemd/system/

编辑 /etc/systemd/system/fail2ban.service,在 [Service]部分添加:
Environment="PYTHONPATH=/usr/local/lib/python3.11/site-packages"

系统实际的PYTHONPATH可通过 find /usr -name fail2ban -type d | grep site-packages查找
  • 解释:Fail2Ban 的源码在编译过程中会生成 systemd 服务文件。此命令将其复制到 systemd 的系统目录,以便管理服务。
  • 关键:必须复制 build/目录下的文件,而不是源码中的模板文件。
这里提供一张完整的 /etc/systemd/system/fail2ban.service文件图片,以供老铁参考:
这里提供一张完整的 /etc/systemd/system/fail2ban.service文件图片,以供老铁参考:

步骤 5:重新加载 systemd 配置并启用服务

代码语言:javascript
复制
systemctl daemon-reload
systemctl enable --now fail2ban
  • 解释daemon-reload使 systemd 识别新的服务文件;enable --now设置开机自启并立即启动服务。

步骤 6:验证服务状态

代码语言:javascript
复制
systemctl status fail2ban
  • 预期输出:应显示 Active: active (running),表示服务运行正常。
可选优化:使用 Python 虚拟环境,不太熟悉的老铁不要往下复制粘贴了。

如果遇到 ModuleNotFoundError等 Python 环境问题,建议使用虚拟环境隔离安装,步骤如下:

  1. 创建虚拟环境: python3 -m venv /opt/fail2ban-env source /opt/fail2ban-env/bin/activate
  2. 在虚拟环境中安装: cd /tmp/fail2ban pip install . deactivate
  3. 修改 systemd 服务文件: 编辑 /etc/systemd/system/fail2ban.service,将 ExecStartExecStop等路径改为虚拟环境中的路径,例如: ExecStart=/opt/fail2ban-env/bin/fail2ban-server -xf start ExecStop=/opt/fail2ban-env/bin/fail2ban-client stop
  4. 重新加载并启动服务: systemctl daemon-reload systemctl restart fail2ban

配置文件位置

  • 主配置文件:/etc/fail2ban/jail.conf(不建议直接修改)。
  • 自定义配置:创建 /etc/fail2ban/jail.local,在此文件中覆盖默认设置。
  • 启动后,使用 fail2ban-client status检查运行状态。

验证安装
  • 检查服务状态:systemctl status fail2ban
  • 测试 Fail2Ban 功能:fail2ban-client ping应返回 pong
  • 查看当前监控的监狱:fail2ban-client status

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Fail2Ban 源码安装与配置指南
    • 概述
    • 前提条件
    • 安装步骤
    • 可选优化:使用 Python 虚拟环境,不太熟悉的老铁不要往下复制粘贴了。
    • 验证安装
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档