0Pricing
Linux Server Deployment & SSH Mastery · 课时

入侵检测与防御

设置并配置 Fail2Ban 等入侵检测系统(IDS),了解入侵防御系统(IPS)的原理,主动保护服务器。

入侵检测与防御 是 CoddyKit 上的免费 Linux Server Deployment & SSH Mastery 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Linux Server Deployment & SSH Mastery 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Linux Server Deployment & SSH Mastery 课程共包含 4 节课。

超越防火墙:主动防御

欢迎来到服务器安全的最后一课!我们已经学习了防火墙和审计,它们对于预防攻击至关重要。但如果攻击者执意尝试绕过这些防御措施,该怎么办?

本课将介绍入侵检测系统(IDS)和入侵防御系统(IPS)。这些工具提供额外的主动防御层,帮助您发现并阻止服务器上的恶意活动。

什么是 IDS

入侵检测系统(IDS)就像一名持续监视可疑活动的保安。它会监控服务器的网络流量或系统日志,查找表明攻击的模式。

  • 被动监控:IDS 会检测威胁并向您发出警报。
  • 不进行阻止:它不会主动阻止或防止入侵,其工作只是发出通知。
  • 示例:Snort 或 Suricata 等工具可以充当基于网络的 IDS,分析传入和传出的数据。

什么是 IPS

入侵防御系统(IPS)将 IDS 的概念又推进了一步。IPS 不只是发出警报,还会主动介入以阻止检测到的威胁。

  • 主动防护:它可以自动阻止恶意 IP 地址、终止可疑连接或丢弃有害数据包。
  • 防御重点:目标是实时阻止入侵成功。
  • Fail2Ban:这是基于主机的 IPS 的常见示例,也是我们今天重点学习的工具。

认识 Fail2Ban

Fail2Ban 是一款功能强大的开源基于主机的 IPS。它会扫描日志文件(例如 SSH、Web 服务器或邮件服务器的日志),查找重复的登录失败尝试或其他可疑模式。

当 Fail2Ban 检测到同一个 IP 地址在指定时间内尝试失败次数过多时,它会自动更新服务器的防火墙规则,暂时或永久禁止该 IP 地址。

Fail2Ban 的工作方式

Fail2Ban 使用三个核心概念:

  • 过滤器:这些是正则表达式,用于定义要在日志文件中查找的模式(例如“root 的密码错误”)。
  • 监狱:监狱将过滤器与操作结合起来。它会指定要监控的日志文件、要使用的过滤器,以及过滤器条件满足时要执行的操作。
  • 操作:这些是 IP 被禁止时执行的命令,通常会修改防火墙规则(例如 iptables 或 ufw),以阻止源 IP。

安装 Fail2Ban

大多数 Linux 发行版的默认软件仓库中都提供 Fail2Ban。下面我们将在基于 Debian 的系统(例如 Ubuntu)上安装它。

首先更新软件包列表,然后安装 fail2ban 软件包:

sudo apt update
sudo apt install fail2ban

基本配置:jail.local

Fail2Ban 的主配置文件是 /etc/fail2ban/jail.conf。但是,您绝不要直接编辑此文件,因为它可能会在更新过程中被覆盖。

请改为创建一个名为 /etc/fail2ban/jail.local 的副本,并在那里进行修改。此文件会覆盖 jail.conf 中的设置。

下面是您可能会在 jail.local 中配置的一些重要全局设置:

  • bantime:IP 被禁止的时长(例如,10m 表示 10 分钟)。
  • findtime:统计失败尝试的时间窗口(例如 10m)。
  • maxretry:IP 被禁止前允许的失败尝试次数(例如 5)。

启用 SSH 防护

Fail2Ban 最常见的用途之一是保护 SSH 免受暴力破解攻击。在您的 /etc/fail2ban/jail.local 文件中,您会看到针对不同服务的部分,这些部分称为“监狱”。

要启用 SSH 监狱,通常只需在 [sshd] 部分下设置 enabled = true。您还可以自定义其 bantime、findtime 和 maxretry 值。

编辑完成后,重启 Fail2Ban 使更改生效:

[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 1h

sudo systemctl restart fail2ban

监控 Fail2Ban

配置并启动 Fail2Ban 后,您需要检查其状态,确认它是否正在主动禁止 IP。您可以使用 fail2ban-client 命令完成此操作。

要检查 Fail2Ban 的总体状态:

sudo systemctl status fail2ban

快速检查:Fail2Ban 配置

您已配置 Fail2Ban 来保护 SSH 服务,并设置了 maxretry = 3 和 bantime = 1h。

攻击者尝试通过 SSH 登录:

  1. 10:00:00 登录失败
  2. 10:00:30 登录失败
  3. 10:01:00 登录失败
  4. 10:01:30 登录失败

假设 findtime 设置为 10 分钟,攻击者的 IP 地址会发生什么?

回顾:IDS、IPS 和 Fail2Ban

做得很好!您已经学会了如何为服务器添加主动防御层:

  • IDS(入侵检测系统)会检测可疑活动并发出警报。
  • IPS(入侵防御系统)会检测并报告威胁,还会主动阻止威胁。
  • Fail2Ban 是一种基于主机的 IPS,它会扫描日志中的恶意模式,并通过更新防火墙规则来禁止相关的 IP 地址。
  • 您已经学会安装 Fail2Ban、在 jail.local 中配置全局设置、启用特定监狱(例如 SSH),以及监控其状态。

实施 Fail2Ban 可以显著增强服务器抵御暴力破解攻击和其他自动化威胁的能力。请继续练习这些技能,构建真正稳健且安全的系统!

常见问题解答

「入侵检测与防御」课时是免费的吗?

是的 — 「入侵检测与防御」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Linux Server Deployment & SSH Mastery 课程的其余内容,请升级到 CoddyKit PRO。 Linux Server Deployment & SSH Mastery 课程共包含 4 节课。

「入侵检测与防御」这节课中我会学到什么?

设置并配置 Fail2Ban 等入侵检测系统(IDS),了解入侵防御系统(IPS)的原理,主动保护服务器。 你通过在浏览器中直接运行的动手代码来练习 Linux Server Deployment & SSH Mastery,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Linux Server Deployment & SSH Mastery 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Linux Server Deployment & SSH Mastery 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。

「入侵检测与防御」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Linux Server Deployment & SSH Mastery 课中编写并运行代码吗?

能。每节 Linux Server Deployment & SSH Mastery 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 服务器安全审计
  2. 高级防火墙规则(IPTables)
  3. 入侵检测与防御
  4. 集中式日志记录与 SIEM 集成
← 返回 Linux Server Deployment & SSH Mastery