Skip to content
返回云服务

Fail2ban:自动封禁暴力破解 SSH 和 Web 应用的 IP

安装 Fail2ban 监控日志并封禁反复认证失败的 IP,含 SSH、Nginx 和应用的自定义 jail。

服务器安全进阶

为什么

暴力破解机器人 24/7 袭击 SSH 和 Web 登录端点。Fail2ban 监控认证日志,N 次失败后在防火墙(iptables/nftables)封禁违规 IP,自动降噪并阻断真实攻击。

Verizon 2024 DBIR 显示 68% 的泄露涉及非恶意人为因素。SSH 密钥泄露和 S3 桶配置错误是主要攻击向量 — 加固将泄露风险降低 80% 以上。

何时使用

任何面向互联网、有 SSH 或 Web 登录的服务器用。加 WAF/Cloudflare 前尤其有价值。

如何做

1. Assess your workload requirements — compute, memory, storage, latency 2. Compare providers on price, region availability, and managed services 3. 安装:`apt install fail2ban`。配置在 /etc/fail2ban/jail.local(覆盖 jail.conf)。启用 sshd jail:`[sshd]\nenabled = true\nmaxretry = 4\nfindtime = 10m\nbantime = 1h\nbackend = systemd`。Nginx 登录:创建过滤器 /etc/fail2ban/filter.d/nginx-login.conf 匹配你的 401 日志行,再建 jail 指向访问日志。惯犯(recidive):bantime = 1w。重启:`systemctl restart fail2ban`。查看:`fail2ban-client status sshd`。解封:`fail2ban-client set sshd unbanip 1.2.3.4`。 4. Set up IaC (Terraform/Pulumi) to provision resources 5. Configure monitoring, alerts, and cost budgets before going live

示例

// security-fail2ban — 配置示例 const config = { provider: "security" }; # /etc/fail2ban/jail.local [DEFAULT] bantime = 1h findtime = 10m maxretry = 4 backend = systemd destemail = [email protected] action = %(action_mwl)s # 封禁+邮件+whois [sshd] enabled = true port = 22 maxretry = 3 # Web 登录返回 401 的自定义 jail [nginx-login] enabled = true port = http,https filter = nginx-login logpath = /var/log/nginx/access.log maxretry = 5 bantime = 2h # 惯犯:封禁一周 [recidive] enabled = true bantime = 1w findtime = 1d maxretry = 3

常见问题

  • ⚠backend = auto 在现代 Ubuntu 漏 systemd-journald 日志——显式设 backend = systemd。
  • ⚠封禁列表无界增长;加 recidive jail 和 ignoreip 放自己办公室/VPN 防自封。
  • ⚠Cloudflare 在前时 Fail2ban 封 CF 边缘 IP,挡所有用户——改用 action_cf 通过 CF API 封禁。

最佳实践

  • ✓在 [DEFAULT] 的 ignoreip 加自己 IP/VPN,测试时永不自封。
  • ✓用 recidive jail 自动将惯犯升级为周封禁。
  • ✓Cloudflare 在前时用 cloudflare action(cfapi)在边缘封禁,而非源站防火墙。

常见问题解答

什么是Fail2ban:自动封禁暴力破解 SSH 和 Web 应用的 IP?它解决什么问题?

安装 Fail2ban 监控日志并封禁反复认证失败的 IP,含 SSH、Nginx 和应用的自定义 jail。 它可帮助开发者在不自建基础设施的前提下完成部署、存储与扩展,是云服务选型的核心参考。

如何在 5 分钟内上手Fail2ban:自动封禁暴力破解 SSH 和 Web 应用的 IP?

两步即可跑通:① Assess your workload requirements — compute, memory, storage, latency;② Compare providers on price, region availability, and managed services。建议先用免费套餐验证流程,再接入生产环境。

Fail2ban:自动封禁暴力破解 SSH 和 Web 应用的 IP 最容易踩的坑是什么?

最高频的问题是:backend = auto 在现代 Ubuntu 漏 systemd-journald 日志——显式设 backend = systemd。。建议在上线前用 checklist 逐项核对,并在 CI 中加入策略与配置扫描。

Fail2ban:自动封禁暴力破解 SSH 和 Web 应用的 IP 的最佳实践有哪些?

Fail2ban:自动封禁暴力破解 SSH 和 Web 应用的 IP 的最佳实践包括:在 [DEFAULT] 的 ignoreip 加自己 IP/VPN,测试时永不自封。;用 recidive jail 自动将惯犯升级为周封禁。;Cloudflare 在前时用 cloudflare action(cfapi)在边缘封禁,而非源站防火墙。。其中首条「在 [DEFAULT] 的 ignoreip 加自己 IP/VPN,测试时永不自封。」应作为团队默认规范写入 IaC 模板。

Fail2ban:自动封禁暴力破解 SSH 和 Web 应用的 IP 如何控制成本与避免账单意外?

三招防超支:① 为所有资源打 env/team 标签并启用账单告警;② 用预算阈值触发 Slack/邮件通知;③ 定期用 Cost Explorer 审查闲置资源并清理。Fail2ban:自动封禁暴力破解 SSH 和 Web 应用的 IP 多数提供免费套餐,先在免费额度内验证再放量。