
Fail2Ban 是一款用于保护服务器免受暴力攻击的入侵防御软件。通过监控系统日志,自动封禁有恶意行为的 IP 地址。本指南介绍从 GitHub 源码编译安装 Fail2Ban,并配置为 systemd 服务的方法。
fail2ban官方的安装包并不适合所有系统,本文参考:https://github.com/fail2ban/fail2ban/wiki/How-to-install-or-upgrade-fail2ban-manually 使用通用编译安装方式进行安装。

步骤 1:安装编译与运行时依赖
yum install gcc python3-devel python3-setuptools python3-pip git -y步骤 2:获取 Fail2Ban 源码
cd /tmp
git clone https://github.com/fail2ban/fail2ban.git
cd fail2ban
#github地址在海外,境内网络机器下载源码可能比较慢,或者超时,实在不行也可以找能下载的终端下载好再上传到需要安装的机器上。/tmp/fail2ban,并进入该目录。
步骤 3:安装
python3 setup.py install/usr/local/bin)。步骤 4:复制 systemd 服务文件
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查找build/目录下的文件,而不是源码中的模板文件。
步骤 5:重新加载 systemd 配置并启用服务
systemctl daemon-reload
systemctl enable --now fail2bandaemon-reload使 systemd 识别新的服务文件;enable --now设置开机自启并立即启动服务。
步骤 6:验证服务状态
systemctl status fail2banActive: active (running),表示服务运行正常。
如果遇到 ModuleNotFoundError等 Python 环境问题,建议使用虚拟环境隔离安装,步骤如下:
/etc/systemd/system/fail2ban.service,将 ExecStart、ExecStop等路径改为虚拟环境中的路径,例如:
ExecStart=/opt/fail2ban-env/bin/fail2ban-server -xf start ExecStop=/opt/fail2ban-env/bin/fail2ban-client stop配置文件位置:
/etc/fail2ban/jail.conf(不建议直接修改)。/etc/fail2ban/jail.local,在此文件中覆盖默认设置。fail2ban-client status检查运行状态。systemctl status fail2banfail2ban-client ping应返回 pongfail2ban-client status原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。