用心打造
VPS知识分享网站

如何使用Fail2ban防止Linux上的SSH暴力攻击?

Fail2ban 是什么?

Fail2ban 是一款开源入侵防御软件,可帮助保护 Linux 服务器免受未经授权的访问尝试。它旨在扫描日志文件(例如系统日志或应用程序日志),并识别可疑或恶意活动,尤其是重复失败的登录尝试或其他特定模式。检测到此类活动时,Fail2ban 会采取措施,动态更新防火墙规则以阻止与可疑活动相关的 IP 地址,从而有效阻止进一步的未经授权的访问。它兼容大多数远程连接服务,例如 SSH、FTP、SMTP 和 HTTP。

如何使用Fail2ban防止Linux上的SSH暴力攻击?

Fail2ban 可以发挥作用的情况

防御 SSH 暴力破解攻击: Fail2ban 可有效缓解针对 SSH、FTP 等协议或任何其他会生成日志的服务的 SSH 暴力破解攻击。它会检测来自特定 IP 地址的重复登录失败尝试,并动态阻止这些地址,从而阻止进一步的未经授权的登录尝试。

减少密码猜测: Fail2ban 有助于抵御密码猜测攻击,这类攻击是指自动化工具系统性地尝试不同的用户名和密码组合来获取访问权限。通过识别并阻止与此类活动相关的 IP 地址,Fail2ban 可以降低未经授权访问成功的几率。

增强的服务器安全性:通过持续监控日志并强制执行动态防火墙规则,Fail2ban 增强了服务器安全性,并防御各种恶意活动。它提供了额外的防御层,与服务器上已实施的其他安全措施相辅相成。

防止账户锁定: Fail2ban 可以防止合法用户账户因密码输入错误或意外登录失败而被锁定。它会设置临时封禁,允许用户在特定时间后重试,而不会被永久封禁。

自动响应安全威胁: Fail2ban 自动检测并响应安全威胁。它会扫描日志,识别可疑模式,并通过动态更新防火墙规则来采取行动。这种自动化操作可以节省时间并减轻管理员的工作量。

监控和审计: Fail2ban 会生成检测到的安全事件日志和报告,为监控和审计提供宝贵信息。管理员可以查看日志,深入了解潜在的安全风险并采取必要的纠正措施。

可定制的安全策略: Fail2ban 允许管理员根据特定的安全策略和需求定义自定义规则和过滤器。这种灵活性使组织能够根据其独特的环境定制保护措施,并应对可能面临的特定威胁。

使用 Fail2ban,您可以主动保护您的 Linux 服务器或 PC,从而降低安全漏洞的风险。

如何在Linux服务器上安装Fail2ban

Linux 发行版有很多,本教程以 Ubuntu 为例。

1.安装Fail2ban

登录到你的Linux服务器后,使用以下命令切换到root账户,并根据提示输入密码。

sudo -i
在 Linux 服务器上安装屏幕。

然后,使用以下命令安装 Fail2ban 并输入 y 继续安装软件包。

apt安装fail2ban
在 Linux 服务器上安装屏幕。

2.启动Fail2ban服务

通过启用该服务,该进程将在系统启动时在后台运行。

systemctl 启用 fail2ban.service
启用 fail2ban 服务
然后,使用命令启动服务。
systemctl 启动 fail2ban
启动fail2ban服务
接下来,通过输入命令检查 Fail2ban 服务的状态。从输出中可以看到服务正在运行。最后,同时按下“Ctrl”和“C”退出状态检查。
systemctl status fail2ban
检查fail2ban服务的状态

3.配置Fail2ban

/etc/fail2ban/jail.conf 文件存储了主要的 Fail2ban 配置。通过执行以下命令,您可以获取 prison.conf 文件的前 20 行。该文件的内容主要指导您不要修改此文件,而是在 prison.d/ 目录中创建单独的文件,或者在 prison.local 文件中提供自定义设置。jail.conf 文件将与 Fail2ban 本身一起定期更新,在您未进行任何自定义修改的情况下,可作为默认设置的参考。

cd /etc/fail2ban
head -20 监狱.conf
启用 fail2ban 服务

在本教程中,我们将创建一个jail.local文件,并在文件中提供自定义设置。我们通过复制jail.conf来创建jail.local。执行以下命令。

cd /etc/fail2ban && cp prison.conf prison.local
启动fail2ban服务

从输出中,您可以看到一个jail.local文件已被复制。
接下来,我们可以使用任何您喜欢的文本编辑器对jail.local文件进行自定义。在本教程中,我们使用nano编辑器。运行以下命令打开该文件。

纳米监狱.local
使用文本编辑器打开jail.local文件

该文件由多个部分组成,这些部分定义了特定服务的设置。DEFAULT 标头下的设置应用于 Fail2ban 支持的所有服务。其他部分(例如 sshd)的设置包含服务特定的设置,这些设置将应用于默认值之上。设置参数的具体值时,您可以阅读每个参数上方以 # 开头的注释以供参考。

例如,在 DEFAULT 部分下,bantime设置用户身份验证失败后被禁止的时长。maxretry
参数定义了用户在 findtime 内被禁止之前可以承受的最大身份验证失败次数。为了进行测试,我们分别将值设置为 20m 和 2 

自定义监狱设置

向下滚动文件,您可以更改要自定义的设置。例如,您可以通过在 sshd 部分添加“enabled = true”来启用 sshd prison。

启用 SSHD 监狱

自定义完成后,按“Ctrl”和“X”,然后输入“y”,然后按回车键保存更改。最后,运行以下命令重新启动Fail2ban服务,以使更改生效。

systemctl 重启 fail2ban
重启fail2ban服务

4.测试Fail2ban配置

现在,您可以测试 maxretry 配置是否正常工作。尝试通过 SSH 登录到您配置的服务器。当提示输入登录凭据时,请输入错误的密码。Fail2ban 将按照配置阻止您 20 分钟。

身份验证失败

您可以检查 Fail2ban 服务的日志以了解更多详细信息。

猫/var/log/fail2ban.log
检查日志

该 IP 因两次身份验证失败而被禁止,并根据配置在 20 分钟后解禁。

日志详细信息

结论

Fail2ban 是一款功能强大的工具,可以显著增强 Linux 系统的安全性,防止 SSH 暴力破解攻击。通过分析日志文件并自动封禁恶意 IP 地址,Fail2ban 可以作为可靠的守护者,有效抵御未经授权的访问尝试。在本篇博文中,我们探讨了 Fail2ban 的安装过程和配置选项。您可以开始安装 Fail2ban 并根据需求进行配置,以构建更安全的 Linux 服务器环境。请记住,在当今的数字环境中,主动保护系统安全至关重要,而 Fail2ban 是您武器库中不可或缺的工具。因此,请采取必要的措施来保护您的 Linux 系统,并阻止潜在的攻击者。

虽然 Fail2ban 是增强 Linux 服务器安全性的有效工具,但它并非全面安全的唯一解决方案。除了实施 Fail2ban 之外,您还应该考虑其他措施来增强 Linux 系统的安全性,例如使用强密码和配置防火墙。

赞(0)
未经允许不得转载;国外VPS测评网 » 如何使用Fail2ban防止Linux上的SSH暴力攻击?
分享到