网站搜索

如何在 Ubuntu 24.04 上安装 Fail2ban 以实现 SSH 安全


Fail2ban 是一款基于 Python 的强大安全工具,可阻止尝试使用错误凭据登录的 IP 地址,帮助保护 Linux 系统免受暴力攻击。

它监视日志文件中是否有失败的登录尝试和其他可疑活动。当它检测到此类活动时,它会通过修改防火墙规则来禁止违规 IP 地址。

本文将探讨如何在 Ubuntu 24.04 上安装和使用 Fail2ban 来保护您的系统免受这些攻击。

在 Ubuntu 24.04 上安装 Fail2ban

要在 Ubuntu 24.04 上安装 Fail2ban,您需要通过运行以下 apt 命令来更新系统软件包列表。

sudo apt update

接下来,使用以下命令安装Fail2ban

sudo apt install fail2ban

安装后,通过检查其版本来验证 Fail2ban 是否已正确安装。

fail2ban-client --version

Fail2Ban v1.0.2

在 Ubuntu 24.04 上配置 Fail2ban

/etc/fail2ban 目录是 Fail2Ban 配置文件和日志的主要位置。该目录包含几个对于 Fail2Ban 功能至关重要的子目录和文件。

以下是关键组件的细分:

  • action.d:此目录包含 Fail2Ban 用于禁止 IP 地址的操作脚本。这些脚本特定于所使用的防火墙或服务(例如,iptablesufwnftables)。
  • filter.d:此目录包含定义 Fail2Ban 如何识别和禁止 IP 地址的过滤器配置文件。这些过滤器特定于正在监控的服务(例如,SSHHTTPFTP)。
  • jail.d:此目录包含监狱配置文件,用于定义 Fail2Ban 监控的特定服务以及禁止 IP 地址的规则。
  • paths-arch.confpaths-common.confpaths-debian.confpaths-opensuse.conf >:这些文件包含特定于不同 Linux 发行版的路径。
  • fail2ban.conf:这是Fail2Ban的主要配置文件,其中包含全局设置和选项。
  • jail.conf:该文件包含各种服务的默认监狱配置。
  • jail.local:该文件用于覆盖默认的监狱配置。建议创建一个 jail.local 文件以简化升级和进行自定义。
  • fail2ban.log:这是 Fail2Ban 的主日志文件,记录其操作和事件。

Fail2ban 附带默认配置文件,您可以根据需要进行自定义。主要配置文件位于/etc/fail2ban/jail.conf

但是,建议创建本地副本 (/etc/fail2ban/jail.local),以防止您的更改在更新期间被覆盖。

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

在 Nano 文本编辑器中打开本地配置文件。

sudo nano /etc/fail2ban/jail.local

在配置文件中,找到 [ssh] 部分并取消注释这些行并修改值以调整 Fail2ban 的行为,如图所示。

  • maxretry:这定义了 IP 地址被禁止之前登录尝试失败的最大次数。
  • findtime:这设置了必须进行最大重试才能触发禁令的时间窗口。
  • bantime:这定义了 IP 地址在超过最大重试次数后被禁止的持续时间。

配置示例(根据需要修改):

[ssh]
enabled = true
maxretry = 3
findtime = 10
bantime = 4h

在此示例中,启用了监狱,在10秒窗口内将最大重试尝试设置为3,并阻止了被禁止的IP 4 小时。

进行所需的更改后,保存文件并重新启动 Fail2ban 服务以使新配置生效。

sudo systemctl restart fail2ban
sudo systemctl enable fail2ban
sudo systemctl status fail2ban

在 Ubuntu 24.04 中测试 Fail2ban

要测试 Fail2ban,您可以模拟对系统的暴力攻击,其中涉及故意触发 Fail2ban 监控的条件,例如多次失败的登录尝试。

首先登录到另一台Linux机器,运行以下命令来模拟失败的登录尝试,确保将192.168.122.100替换为您服务器的IP地址。

for i in {1..6}; do ssh [email ; done

登录尝试失败后,请检查 Fail2ban 日志以查看 IP 地址是否已被禁止。

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

验证SSH监狱的状态并检查IP地址是否已被禁止。

sudo fail2ban-client status sshd

如果需要解封IP地址,请使用以下命令。

sudo fail2ban-client set sshd unbanip 192.168.122.1
结论

Fail2ban 是一个强大的工具,可以保护您的 Ubuntu 24.04 服务器免受暴力攻击。通过遵循本指南中概述的步骤,您可以安装、配置和使用 Fail2ban 来显着降低未经授权访问您的服务器的风险,确保为您的数据和应用程序提供更安全的环境。