如何在 Ubuntu 20.04 上安装和配置 Fail2ban

Fail2ban 是一种用于提高服务器安全性免受网络攻击的工具。 它允许您根据定义的设置临时或永久阻止远程 IP 地址。 它可以帮助您保护您的服务器和数据免受攻击者的侵害。

本教程帮助您在 Ubuntu 20.04 LTS Linux 系统上安装 Fail2ban。 还为您提供使用 fail2ban 保护 SSL 的初始配置。

先决条件

您必须具有对 Ubuntu 20.04 系统的 shell 访问权限 sudo 特权帐户。

第 1 步 – 安装 Fail2ban

Fail2ban Debian 软件包在默认 apt 存储库下可用。 您只需要更新 Apt 缓存并在您的系统上安装 fail2ban debian 包。

打开终端并输入:

sudo apt update  sudo apt install fail2ban -y  

安装成功后,确保服务已启动。

sudo systemctl status fail2ban  

确保服务处于活动状态并正在运行。

步骤 2 – 初始 Fail2ban 配置

Fail2ban 将配置文件保存在 /etc/fail2ban 目录。 jail.conf 文件包含可用于创建新配置的基本配置。 Fail2ban 使用单独的 jail.local 文件作为配置以避免在软件包更新期间更新 jail.conf。

所以创建一个名称为配置文件的副本 jail.local

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

下一个编辑 jail.local 文本编辑器中的配置文件。

sudo vim /etc/fail2ban/jail.local  

更新下的初始设置 [DEFAULT] 部分。

  • 忽略ip—— 被 Fail2ban 禁止的 IP 地址列表。
    贝壳
    [DEFAULT]

    忽略 IP = 127.0.0.1/8 192.168.1.0/24123[DEFAULT] 忽略ip = 127.0.0.1/8 192.168.1.0/24

  • 班时间—— 是主机被禁止的秒数。
    贝壳
    禁止时间 = 60m1班时间 = 60米
  • 查找时间 – 如果主机在最后的“findtime”秒内生成了“maxretry”,则该主机被禁止。
    贝壳
    查找时间 = 5m1找时间 = 5米
  • 最大重试 – 是主机被禁止之前的失败次数。
    贝壳
    最大重试 = 51最大重试次数 = 5

在下一节中,您可以保护系统服务以

第 3 步 – 保护 SSH/SFTP

完成默认配置后,在同一个文件 jail.local 中向下并更新 [ssh-iptables] 部分如下。

[ssh-iptables]  enabled  = true filter   = sshd action   = iptables[name=SSH, port=22, protocol=tcp]            sendmail-whois[name=SSH, dest=root, [email protected], sendername="Fail2Ban"] logpath  = /var/log/secure maxretry = 3 

步骤 4 – 保护 FTP

让我们保护您的 FTP (vsFTPd) 服务器,找到以下条目 [vsftpd-iptables] 部分并进行如下更改。 如果您没有使用 vsFTPd,则可以跳过本节。

[vsftpd-iptables]  enabled  = true filter   = vsftpd action   = iptables[name=VSFTPD, port=21, protocol=tcp]            sendmail-whois[name=VSFTPD, [email protected]] logpath  = /var/log/vsftpd.log maxretry = 5 bantime  = 1800 

步骤 5 – 管理 Fail2ban 服务

完成所有更改后,保存文件并使用以下命令重新启动 Fail2ban 服务。

sudo systemctl restart fail2ban.service  sudo systemctl enable fail2ban.service  

出于测试目的,我尝试使用来自另一台机器的错误凭据进行 SSH。 在三次错误尝试后,Fail2ban 通过带有拒绝 ICMP 的 iptables 阻止了该 IP。 屏蔽IP地址后,您可以在iptables中看到规则,如下所示。 对于仅限 SSH 的系统,在进行这些测试之前,请确保从另一个 IP 获得 SSH 访问。

结论

本教程帮助您在 Ubuntu 20.04 LTS 系统上安装和配置 Fail2ban。 此外,还为您提供了配置详细信息以保护特定服务,如 SSH、SFTP 和 FTP。