如何在 Ubuntu 24.04 服务器上安装 Fail2ban
在此页面上
- 先决条件
- 安装 Fail2ban 和 UFW(简单防火墙)
- 配置 Fail2ban
- 使用fail2ban-client检查fail2ban规则
- 如何使用fail2ban-client禁止和取消禁止IP地址
- 结论
Fail2ban 是免费的开源 IPS(入侵防御软件),可帮助管理员保护 Linux 服务器免受恶意登录和暴力攻击。 Fail2ban 采用 Python 编写,附带针对 Apache2、SSH、FTP 等各种服务的过滤器。Fail2ban 通过阻止源攻击的 IP 地址来减少恶意登录尝试。
Fail2ban 的工作原理是扫描服务日志文件 (e.f /var/log/auth.log) 并禁止显示恶意登录尝试的 IP 地址,例如过多的错误密码、寻求漏洞利用等。Fail2ban 还支持多个防火墙后端,例如 iptables、 ufw 和firewalld。还允许您为每次被阻止的登录尝试设置电子邮件通知。
在本指南中,您将了解如何在 Ubuntu 24.04 服务器上安装 Fail2ba。您将设置 Fail2ban 监狱,学习基本的“fail2ban-client”命令,然后了解如何使用 Fail2ban 禁止和取消禁止 IP 地址。
先决条件
要开始使用本指南,请确保您拥有:
- Ubuntu 24.04 服务器
- 具有管理员权限的非 root 用户
安装 Fail2ban 和 UFW(简单防火墙)
Fail2ban 是一款 IPS(入侵防御软件),可保护服务器免受暴力攻击。默认情况下,它在大多数 Linux 存储库上可用,并支持多个防火墙后端。在本部分中,您将安装 Fail2ban,然后设置 UFW(简单防火墙),它将用作 Fail2ban 的防火墙后端。
首先,运行以下命令来更新您的 Ubuntu 软件包索引。
sudo apt update现在使用以下“apt”命令安装“fail2ban”和“ufw”软件包。输入“Y”确认安装。
sudo apt install fail2ban ufw安装完成后,运行以下命令打开SSH端口并启用UFW。输入“Y”确认、启动并启用 UFW。
sudo ufw allow OpenSSH
sudo ufw enable启用 UFW 后,您将看到输出“防火墙处于活动状态并在系统启动时启用”。
接下来,运行以下命令来检查 UFW 状态。您将看到 UFW 处于“活动”状态,并且“OpenSSH”已启用。
sudo ufw status最后,运行下面的“systemctl”命令来启动、启用和验证“fail2ban”服务。
sudo systemctl enable --now fail2ban
sudo systemctl status fail2ban您可以在下面看到“fail2ban”处于活动状态(正在运行)并已启用。
配置 Fail2ban
安装fail2ban后,您必须在Fail2ban执行操作(检查和阻止)之前对其进行配置。在本部分中,您将修改fail2ban配置'/etc/fail2ban/jail.local',设置'bantime'、'maxretry'的全局配置,和“findtime”,设置默认操作和 UFW 防火墙后端,然后启用“sshd”监狱以保护 SSH 服务免受暴力攻击。
首先,将默认的fail2ban配置复制到“/etc/fail2ban/jail.local”,其中包含以下内容:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local使用以下“nano”编辑器命令打开文件“/etc/fail2ban/jail.local”。
sudo nano /etc/fail2ban/jail.local将您的本地网络添加到“ignoreip”选项。此选项内的任何子网都不会被fail2ban 阻止。
ignoreip = 127.0.0.1/8 ::1 192.168.1.0/24 192.168.10.20调整默认配置“bantime”(IP地址被封禁的时间)、“findtime”(封禁操作前失败次数之间的持续时间)、和“maxretry”(IP 地址被禁止的失败次数)。在此示例中,您将“bantime”设置为“1 小时”,将“findtime”设置为“10”分钟秒”,将“最大重试”设置为“5 次”。
bantime = 1h
findtime = 10m
maxretry = 5或者,将默认的“操作”更改为“%(action_mw)s”以禁止 IP 地址并通过电子邮件向管理员发送通知。另外,请确保更改“目标邮件”和“发件人”选项。
action = %(action_mw)s
destemail = [email
sender = [email 将默认的“banaction”更改为“ufw”。这样,IP 地址将通过 UFW 被fail2ban 禁止。
banaction = ufw现在使用以下配置更改“sshd”的默认监狱。在此示例中,“sshd”监狱将具有“bantime”、“maxretry”和“findtime”的自定义设置'。
[sshd]
enabled = true
maxretry = 3
findtime = 15m
bantime = 3h
port = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s完成后保存并退出文件。
最后,运行下面的“systemctl”命令来重新启动“fail2ban”服务并应用您的更改。
sudo systemctl restart fail2ban使用fail2ban-client检查fail2ban规则
此时,Fail2ban 服务已启动并正在运行,并且启用了“sshd”监狱。现在您将学习“fail2ban-client”的基本命令,用于检查和管理 Fail2ban 安装。
要确保fail2ban正在运行,请运行下面的“fail2ban-client”命令。
sudo fail2ban-client ping如果fail2ban正在运行,您将看到输出“PONG”。
现在使用以下命令检查“sshd”监狱的状态。这将向您显示“sshd”监狱检测到和禁止的 IP 地址列表。
sudo fail2ban-client status sshd接下来,运行下面的“fail2ban-client get”命令来检查你的fail2ban监狱的具体规则。在此部分中,您将检查“bantime”、“maxretry”、“actions”、“findtime” >”,以及来自“sshd”监狱的“ignoreip”。
sudo fail2ban-client get sshd bantime
sudo fail2ban-client get sshd maxretry
sudo fail2ban-client get sshd actions
sudo fail2ban-client get sshd findtime
sudo fail2ban-client get sshd ignoreip如何使用fail2ban-client禁止和取消禁止IP地址
了解如何使用“fail2ban-client”手动禁止或取消禁止 IP 地址非常重要。这样,您就可以轻松地将您的 IP 地址从禁止列表中删除。您将使用“fail2ban-client”命令在 Fail2ban 上禁止和取消禁止 IP 地址。
要通过fail2ban手动禁止IP地址,请运行下面的“fail2ban-client”命令。在这种情况下,被禁止的 IP 地址将进入“sshd”监狱。
sudo fail2ban-client set sshd banip IP-ADDRESS现在运行以下命令从fail2ban 'sshd'监狱中取消禁止IP地址。
Sudo fail2ban-client set sshd unbanip IP-ADDRESS最后,您可以使用以下命令检查“sshd”监狱状态。您会看到 IP 地址已被删除。
sudo fail2ban-client status sshd结论
恭喜!您已在 Ubuntu 24.04 服务器上完成了 failed2ban 的安装。您还学习了配置 Fail2ban 的基本配置,包括设置全局配置和监狱。最后,您还学习了“fail2ban-client”命令的基本用法来检查fail2ban状态、jail状态、jail配置以及手动禁止和取消禁止IP地址。







