生活哲学

如何使用 fail2ban 保护 Linux 服务器

使用fail2ban,你的Linux电脑会自动屏蔽连接错误过多的IP地址。这是一种安全的方式。以下文章将向您展示如何使用它们。

安全

如果您的计算机接受新的连接请求,例如 Secure Shell 连接或运行网站或电子邮件浏览器,您需要保护它免受外部攻击。

为此,您需要控制对您帐户的错误连接请求。如果短时间内未通过身份验证,他们将被禁止采取进一步行动。

最简单的方法是自动化整个过程。通过简单的配置,fail2ban 将为您控制、禁止或取消阻止所有连接。

fail2ban 与 Linux 防火墙的 iptable 集成。它将通过向防火墙添加规则来强制禁止可疑的 IP 地址。为了更详细地解释它,以下 iptables 将出现一组空白规则。

当然,如果您关心安全性,您可能正在使用配备一组通用规则的防火墙。 fail2ban 只添加或删除程序自己的规则,因此您计算机上的防火墙功能将保持不变。

空规则集会使用这个命令: 

sudo iptables-L
如何使用 fail2ban 保护 Linux 服务器的图片 1 输入上面的命令会得到一张图片

安装fail2ban

安装fail2ban非常简单。在 Ubuntu 20.04 上,请按照以下步骤操作:

sudo apt-get install fail2ban

在 Fedora 32 上,输入:

sudo dnf install fail2ban

在 Manjaro 20.0.1 上,我们使用: 

sudo pacman-Sy fail2ban

配置fail2ban

fail2ban的安装包含默认的jail.conf配置文件。这个文件在fail2ban升级的时候会被覆盖,所以编辑这个文件的机会几乎为零。

相反,我们更改文件 jail.conf 而不是 jail.local。当 jail.local 中的配置更改时,它们将在升级过程中保持不变。 fail2ban 会自动读取这两个文件。

复制文件的方式:

sudo cp/etc/fail2ban/jail.conf/etc/fail2ban/jail.local

可以用gedit打开文件:

sudo gedit/etc/fail2ban/jail.local

在文件中找到[DEFAULT]和[sshd]这两个部分。您可以在第 40 行附近找到 [DEFAULT]。这是一个内容丰富且评论丰富的部分。

如何使用 fail2ban 保护 Linux 服务器的图片 2 两个部分 [DEFAULT] 和 [sshd]

向下滚动到第90个左右,你会看到4个设置应该知道:

  1. ignoreip :这是一个有免费针的 IP 地址列表,从未被禁止。它们是默认列出的 IP 地址 (127.0.0.1) 以及等效的 IPv6 (:: 1)。如果您还知道其他 IP 地址不能被禁止,请通过在每个地址之间留一个空行来添加到此列表。
  2. bantime :每个IP地址被禁止的时间段(字母“m”代表分钟/分钟)。如果您输入的值不带“m”或“h”(小时/小时),系统将自动以秒为单位计数。如果值为-1,则IP地址将被永久禁止。小心这个。
  3. findtime :连接失败过多后禁止的 IP 时间量。
  4. ma​​xretry :该值表示“连接失败太多次”。
如何使用 fail2ban 保护 Linux 服务器的图片 3 4个值应该知道

如果来自同一个IP地址的连接在一定的findtime内遇到maxretry失败的连接,会被阻塞一段时间。唯一的例外是此 IP 存在于 ignoreip 列表中。

fail2ban 只将IP地址入狱一段时间t我。 fail2ban 支持许多不同类型的监狱,每一种都代表应用于特定类型连接的设置。这允许您对连接类型进行各种调整。或者fail2ban只是用来控制一组不同的连接类型。

您将不得不猜测[DEFAULT]部分中的单词,但我们看到的设置是默认设置。现在进行 SSH 监狱的设置。

创建监狱档案

Jail 允许与fail2ban 的仪表板进行连接。如果默认设置与您想要越狱的不匹配,您可以设置单独的值,如 bantime、findtime 和 maxretry。

大约到第 280 行,您将看到 [sshd] 部分。

如何使用 fail2ban 保护 Linux 服务器的图片 4 在 [sshd] 部分

这里可以设置SSH连接的越狱值。要在您的仪表板和禁令中包含此越狱,请输入以下内容:

enabled=true

输入下一个:

maxretry=3

默认设置为 5,但对 SSH 连接要格外小心。减少到 3,然后保存并关闭文件。

越狱可以使用默认和特定越狱设置。

激活fail2ban

fail2ban 已安装,现在必须激活自动启动服务。

要启用fail2ban,使用systemctl命令:

sudo systemctl enable fail2ban

它们也用于启动服务:

sudo systemctl start fail2ban

我们也可以使用systemctl查看服务状态:

sudo systemctl status fail2ban.service

当绿灯亮起时,一切都处于完美状态。

如何使用 fail2ban 保护 Linux 服务器的图片 5 蓝线已开启

现在让我们看看fail2ban是如何工作的:

sudo fail2ban-client status
如何使用 fail2ban 保护 Linux 服务器的图片 6 错误的fail2ban操作

这反映了上面安装的内容。激活一个名为 [sshd] 的监狱。如果我们在前面的命令中包含监狱的名称,我们可以看到:

sudo fail2ban-client status sshd
如何使用 fail2ban 保护 Linux 服务器的图片 7 断开的 IP 连接列表

将出现断开连接和禁止IP地址的列表。当然现在所有的指标都等于0了。

监狱测试。

在另一台电脑上,向被测设备发送SSH连接请求,故意输入错误密码。您将有 3 次时间为每个连接重新输入密码。

连接失败3次后立即弹出maxretry值,不是3次错误密码。这意味着 3 次错误的密码尝试与一次失败的连接。

尝试其他连接并输入错误密码 3 次。第三次连接后第一次,fail2ban会开启。

如何使用 fail2ban 保护 Linux 服务器的图片 8 fail2ban 将被启用

下一次之后,我们将没有收到服务器的响应,没有解释,不再另行通知。

您必须按 Ctrl + C 才能返回命令提示符。如果你再试一次,会弹出另一个响应:

ssh dave@ubuntu20-04.local
如何使用 fail2ban 保护 Linux 服务器的图片 9 拒绝连接通知

之前,错误消息是“权限被拒绝”。这一次,连接被拒绝。

再来看看[sshd] jail的细节:

sudo fail2ban-client status sshd
如何使用 fail2ban 保护 Linux 服务器的图片 10 三个连接失败,一个IP地址(192.168.4.25)被封禁

 

如上所述,fail2ban 通过向防火墙的规则集中添加新规则来禁止 IP。现在让我们看一下那组规则(第一个是空白的):

sudo iptables-L
如何使用 fail2ban 保护 Linux 服务器的图片 11 新规则被添加到防火墙

INPUT 策略中添加了一条规则,将 SSH 流量发送到 f2b-ssh 字符串。 f2b-sshd 字符串中的规则拒绝来自地址 192.168.4.25 的 SSH 连接。默认的bantime设置没有被替换,所以10分钟后,这些IP地址将被解锁,可能需要从头恢复。

如果您设置了较长的bantime(比如几个小时),但突然想尽快重新访问该IP地址,您可以调整时间。

输入以下内容:

sudo fail2ban-client set sshd unbanip 192.168.5.25

在服务器上,如果您需要另一个SSH连接并输入正确的密码,我们将连接:

ssh dave@ubuntu20-04.local
如何使用 fail2ban 保护 Linux 服务器的图片 12 允许连接时

简单有效

简单总是有效的,fail2ban 是解决问题的快速方法。安装只需要一点时间,然后在电脑上的所有操作都是自动的。

相关资讯

评论

回复