在 Ubuntu 20.04 上安装和配置 Fail2ban
Fail2ban 是一个基于 Python 的实用程序,可提供针对 DDoS 攻击、僵尸程序暴力破解等网络攻击的安全保护。它是免费和开源的,可以在包括本地防火墙的 POSIX 系统上使用。 总结一下 Fail2ban 的工作原理,它会主动查找潜在的密码身份验证滥用迹象,以过滤掉 IP 地址,并定期更新系统防火墙以将这些 IP 地址暂停一段时间。
本简短指南将向您展示如何在 Ubuntu 20.04 系统上设置 Fail2ban。
更新官方包列表
我们将从官方 Ubuntu 存储库获取fail2ban。启动终端并输入以下命令来更新 Fail2ban 最新可用版本的软件包列表:
安装 Fail2ban
然后,输入以下命令来安装更新的 Fail2ban 软件包:
fail2ban 服务将在安装后自行激活并启动。
验证安装
不过,您应该验证它是否安装正确。运行以下命令来检查安装:
如果输出中的 Active 行包含 active(正在运行),则表示一切正常。让我们继续看看如何配置 Fail2ban。
在 Ubuntu 20.04 上配置 Fail2ban
要在 Ubuntu 上配置 Fail2ban,我们将编辑两个特定的配置文件。一个是 /etc/fail2ban/ 位置中的 jail.conf,另一个是 /etc/fail2ban/jail.d 中的 defaults-debian.conf /。但为了保持它们的完整性,我们不会直接编辑它们,因为这可能会破坏程序,而且我们肯定无法更新软件。相反,我们制作每个副本并对其进行编辑。
运行以下命令将jail.conf复制粘贴为jail.local:
我们将致力于在本教程中修改这个特定文件。在文本编辑器中启动副本以开始编辑。运行以下命令:
让我们看看我们可以做出哪些改变。
配置IP禁止参数
所有 IP 地址的禁止时间均由名为 bantime 的参数设置。默认情况下,bantime 设置的值仅为 10 分钟。您可以将其值更改为您想要对禁止施加的任何时间限制。例如,要设置所有被禁止的 IP 地址的禁止时间,您可以将其设置为:
您还可以通过指定负值来永久禁止。
另一个非常重要的变量是findtime。它定义了连续登录尝试之间允许的持续时间。如果在findtime定义的时间内进行了多次登录尝试,则会对该IP进行封禁。
最后,还有最大重试次数。它定义了查找时间内允许的失败登录尝试的确切次数。如果findtime内尝试授权失败的次数超过maxretry值,则该IP将被禁止重新登录。默认值为5。
Fail2ban 还允许您授予对您选择的 IP 地址和 IP 范围的免疫力。上面讨论的这些条件不会应用于这些 IP,本质上是让您创建一个白名单。
要将 IP 添加到此白名单,请修改ignoreip 行并输入要豁免的 IP 地址:
作为管理员,您应该首先将您的 IP 地址添加到此白名单中。
包起来
本教程向您展示了如何在 Ubuntu 上设置 Fail2ban。我们直接从标准 Ubuntu 存储库安装它。我们还研究了如何配置它以及以什么方式配置它。您现在应该知道如何设置禁令条件以及如何排除 IP 受到禁令。