基本问题。
如何在我的 Ubuntu 12.04.5 LTS (Precise Pangolin) 上安装升级版的 Fail2Ban,以便设置recidive
过滤器。Ubuntu 12.04.5 LTS 安装了 Fail2Ban 0.8.6,我需要 Fail2Ban 0.8.7 才能使用recidive
过滤器。
更多细节。
我管理着一堆 Ubuntu 12.04.5 LTS(Precise Pangolin)服务器,并且安装了失败禁止专门用于阻止重复的 SSH 暴力破解尝试。这些攻击针对的是所有这些系统,root
并且root
用户已被禁用,但我只想为我的组合添加另一层保护,并减少在我的 SSH 中筛选失败登录尝试所带来的额外“噪音” auth.log
。
无论如何,从默认存储库安装的 Ubuntu 12.04.5 LTS 的 Fail2Ban 版本(0.8.6 版)在大多数情况下都运行良好。但它似乎缺少对阻止重复犯罪者的支持。这些服务器肯定受到了很多持续的暴力攻击。所以我想确保这些小丑被阻止更长时间。
我查看了这篇博客文章,标题为,“使用 fail2ban 永久封禁重复违规者(已更新)”并建议使用recidive
过滤器。该帖子的其余部分展示了如何设置自定义等效项,recidive
但如果存在内置解决方案,我并不想使用自定义解决方案recidive
。
但是当我尝试在 Fail2Ban 0.8.6 中设置recidive
过滤器并重新启动服务时,它失败并提示过滤器recidive
不存在。
当我查看 GitHub 上的 Fail2Ban 更新日志我可以看到recidive
在版本 0.8.7 左右添加了支持:
Tom Hendrikx
* [f94a121..] 'recidive' filter/jail to monitor fail2ban.conf to ban
repeated offenders. Close gh-19
嗯,这不是很特别吗。我使用的是 0.8.6 版本,而 0.8.7 版本也支持此功能。
那么,如何在 Ubuntu 12.04.5 LTS 上轻松安装比 Fail2Ban 0.8.6 更新的版本?我尝试通过克隆 GitHub 存储库、切换到 Debian 分支(因为 Ubuntu 是基于 Debian 的)来安装版本 0.9.3,似乎可以正常工作。但启动服务不起作用,而且似乎 0.9.3 无法与我在 Ubuntu 12.04.5 LTS 中安装的 IPTables 版本兼容,除非我调整一些配置文件或可能升级 IPTables 本身。
也许有办法调整它以适用于 Ubuntu 12.04.5 LTS,但我没有时间或意愿去处理这个问题,因为我只想要recidive
支持,不关心其他任何事情。我该怎么办?
答案1
在尝试从源代码安装 Fail2Ban 0.9.3 时感到沮丧后,我搜索了自定义 PPA,但一无所获。但随后偶然发现了 Fail2Ban 的官方 Ubuntu 软件包页面这给了我一个想法。Ubuntu 14.10(Utopic Unicorn)官方的 Fail2Ban 软件包版本是 0.8.13。为什么不安装它呢?
因此我删除了 Ubuntu 12.04.5 安装的 Fail2Ban,如下所示:
sudo aptitude purge fail2ban
然后我手动安装了一些 Fail2Ban 依赖项,如下所示:
sudo aptitude install gamin libgamin0 python-central python-gamin python-support
完成后,我获取了.deb
Fail2Ban 0.8.13 的原始源 Ubuntu 档案,如下所示:
curl -O -L http://old-releases.ubuntu.com/ubuntu/pool/universe/f/fail2ban/fail2ban_0.8.13-1_all.deb
然后我dpkg
像这样安装它:
sudo dpkg -i fail2ban_0.8.13-1_all.deb
完成后,我检查了所安装内容的版本,如下所示:
fail2ban-client --version
而且它成功了!
Fail2Ban v0.8.13
Copyright (c) 2004-2008 Cyril Jaquier, 2008- Fail2Ban Contributors
Copyright of modifications held by their respective authors.
Licensed under the GNU General Public License v2 (GPL).
Written by Cyril Jaquier <[email protected]>.
Many contributions by Yaroslav O. Halchenko <[email protected]>.
使用 Fail2Ban 0.8.13,我现在可以添加recidive
过滤器,/etc/fail2ban/jail.local
并且一切都按预期工作。
笔记:请注意,虽然这一切似乎都有效(而且这是一个自问自答的问题),但如果有人相信或怀疑这种将 Ubuntu 14.10 软件包安装到 Ubuntu 12.04.5 中的设置是一个即将发生的问题,请告诉我。由于 Fail2Ban 完全基于 Python,并且现在似乎可以按预期工作,我怀疑这个软件包足够轻量,不会遇到任何问题。但如果我的假设不正确,请告诉我。
答案2
我遇到了类似的问题。我使用的是 64 位 Ubu 14.04.05,repo 版本为 Fail2ban v0.8.11。
想要 v0.8.14,它在 Fail2ban 主网站上被列为“非常稳定”。
事实证明,你可以下载更高版本并运行其 setup.py 来覆盖 v0.8.11。无需移除(卸载) v0.8.11,也不需要安装其他依赖项。但是,有一个问题,我将在下面描述。
无论如何,这是我的解决方案:
如果您还没有安装 Fail2ban,请从 repo 安装
apt-get update && apt-get upgrade -y
apt-get install build-essential -y
apt-get install fail2ban
检查 Fail2ban 版本,然后停止它
fail2ban-client --version
fail2ban-client stop
从 Github 下载 v0.8.14,解压
wget https://github.com/fail2ban/fail2ban/archive/0.8.14.tar.gz
tar -xzf 0.8.14.*
重要提示,请勿跳过此步骤:将当前的 fail2ban.conf 和 jail.conf 从 /etc/fail2ban 复制到安全的地方。如果需要,创建一个新文件夹。不用担心 jail.local。
cp /etc/fail2ban/fail2ban.conf SOME_OTHER_FOLDER
cp /etc/fail2ban/jail.conf SOME_OTHER_FOLDER
运行 v0.8.14 的 setup.py
cd fail2ban-0.8.14
python setup.py install
将您之前复制的两个 .conf 文件移回 /etc/fail2ban,覆盖 v0.8.14 设置创建的文件。
mv SOME_OTHER_FOLDER/fail2ban.conf /etc/fail2ban
mv SOME_OTHER_FOLDER/jail.conf /etc/fail2ban
启动fail2ban,检查版本
fail2ban-client start
fail2ban-client --version
由于我们没有“删除”Fail2ban,因此不需要弄乱init 或启动脚本;Fail2ban 仍会在重启时启动。
.conf 文件的备份很重要,因为 v0.8.14 setup.py 可能会生成无效的 .conf 文件,从而导致 Fail2ban 无法运行。(它可能会因“未找到任何日志文件”错误而退出)