在 Red Hat Enterprise Linux 8 上安装和配置 Fail2ban

Fail2ban 是用于 Linux 和其他类 Unix 系统的开源入侵防御软件。 Fail2ban 通过扫描日志文件来查找失败的身份验证尝试或其他潜在入侵迹象。 它可以自动更新防火墙规则以在预定义的时间段内禁止(阻止)违规的 IP 地址。

默认情况下,Fail2Ban 为各种服务提供过滤器,例如 ssh、apache 等。在本教程中,我们将介绍在 Red Hat Enterprise Linux 8 (RHEL 8) 上安装 Fail2ban 并配置 ssh 服务过滤器的步骤。

先决条件

  • RHEL 8 系统
  • 一个用户 sudo 能力

安装 Fail2ban

在 RHEL 8 上,Fail2ban 可通过 Extra Packages for Enterprise Linux (EPEL) 存储库获得。 如果您尚未安装 EPEL,请运行以下命令。

$ sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

此外,建议启用 codeready-builder-for-rhel-8-*-rpms 存储库,因为 EPEL 包可能依赖于其中的包。 运行下一个命令来做到这一点。

$ sudo ARCH=$( /bin/arch )
$ sudo subscription-manager repos --enable "codeready-builder-for-rhel-8-${ARCH}-rpms"

接下来,更新可用的软件包,如下所示。

$ sudo yum update

现在,使用以下命令安装 Fail2ban。

$ sudo dnf install fail2ban

出现提示时,输入 是的 继续安装Fail2ban。

安装成功后,运行以下命令检查fail2ban服务的状态。

$ sudo systemctl status fail2ban

如果您没有得到指示 Fail2ban 服务处于活动状态的输出,则运行下一条命令以启动该服务。

$ sudo systemctl start fail2ban

之后,检查 fail2ban 服务的状态以确认它现在处于活动状态。

q 返回命令提示符。

配置Fail2ban

Fail2ban 的配置文件存储在 /etc/fail2ban 您可以将它们列出如下。

$ ls /etc/fail2ban

如前所述,Fail2ban 为包括 ssh 在内的流行服务提供过滤器。 这些过滤器存储在 /etc/fail2ban/filter.d 目录。

Fail2ban 的全局配置文件是 监狱.conf 但不建议直接修改此文件,因为它可能会在发行版升级期间被覆盖。 相反,我们将创建一个 监狱本地 文件并在那里进行我们的全局配置更改。

此外,还建议在 /etc/fail2ban/jail.d 您打算保护的每个服务的目录。

现在,运行以下命令以基于现有的 jail.conf 文件创建 jail.local 配置文件。

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

打开 jail.local 文件进行编辑。

$ sudo nano /etc/fail2ban/jail.local

寻找 忽略ip 选项并通过删除前面的取消注释它 # 象征。

ignoreip 选项用于指定 Fail2ban 永远不应阻止的 IP 地址或网络范围。 默认值指向 本地主机 这应该可以防止系统干扰自身。 您可以添加以空格或逗号分隔的其他 IP 地址。

Save 和 close jail.local 文件。

为 Fail2ban 配置 ssh 过滤器

运行以下命令为 ssh 服务创建一个单独的 jail 文件。

$ sudo nano /etc/fail2ban/jail.d/sshd.local

将以下自定义配置设置复制并粘贴到 sshd.local 文件。

[sshd]

enabled = true

maxretry = 3

bantime = 5m

笔记:

最大重试次数 是有问题的 IP 地址被阻止之前的失败次数

班泰 是一个有问题的 IP 地址将被阻止多长时间。 在里面 example 上面,5m 表示 5 分钟。 您可以根据需要更改此设置。 为了 example, 1h 表示 1 小时。 如果您未指定 m 或 h,则该值将以秒为单位。

Save 和 close 这 sshd.local 文件。

使用下一条命令重新启动 Fail2ban。

$ sudo systemctl restart fail2ban

测试 Fail2ban

为了说明这一点,我现在将通过 ssh 从另一台计算机向我的 RHEL 8 系统发起失败的登录尝试。 你也可以这样做。

失败的登录尝试将记录到 /var/log/fail2ban.log 中,您可以使用以下命令实时查看。

$ sudo tail -f /var/log/fail2ban.log

如下图所示,我的另一台电脑的IP地址在3次登录失败后被禁止。

CTRL + C 返回命令提示符。

要查看有关 ssh 服务的禁止 IP 地址的信息,请运行下一条命令。

$ sudo fail2ban-client status sshd

要取消阻止被禁止的 IP,请运行以下命令。 代替 与实际 IP 地址。

$ sudo fail2ban-client set sshd unbanip <IP>

结论

在本教程中,我们介绍了 Fail2ban 的安装和 sshd 过滤器的配置。

有很多选项可供配置,但我们专注于基本选项。 随意通过运行阅读 Fail2ban 手册页 人失败2禁令 发现你可以用它做更多的事情。