这是作者可能已经解决的一个老问题,但对于其他社区成员,我决定提供一些澄清的答案。
我试图找到一个fail2ban
可以帮助解决这种情况的解决方案。不幸的是,我没有找到任何合适且易于使用的东西。创建一个与 Kubernetes 集成的GitHub 问题
可能是合理的。fail2ban
以下是一些可能对您有所帮助的其他解决方案:
使用Kubernetes Ingress将集群外部的 HTTP 和 HTTPS 路由公开给集群内的服务可能是一个很好的起点。
正如我们在Kubernetes Ingress 文档中看到的:
您必须有一个 Ingress 控制器才能满足 Ingress。仅创建 Ingress 资源没有任何效果。您可能需要部署一个 Ingress 控制器,例如 ingress-nginx。
在 NGINX 入口控制器中,您可以使用ModSecurity作为第三方插件:
ModSecurity 是一个开源 Web 应用程序防火墙。可以为一组特定的入口位置启用它。ModSecurity 模块必须首先通过在 ConfigMap 中启用 ModSecurity 来启用。请注意,这将为所有路径启用 ModSecurity,并且必须手动禁用每个路径。
您可以通过在入口级别设置以下注释来启用OWASP 核心规则集(更多信息可以在NGINX ModSecurity 配置文档中找到):
nginx.ingress.kubernetes.io/enable-owasp-core-rules: "true"
如本文所述,似乎可以ModSecurity
用作蛮力身份验证保护:
防御 WordPress 登录免受蛮力攻击。
此外,值得一提的是,NGINX Ingress Controller 有许多可用于缓解DDoS 攻击的注解,例如:
nginx.ingress.kubernetes.io/limit-whitelist:客户端IP源范围排除在速率限制之外。该值是一个逗号分隔的 CIDR 列表。
nginx.ingress.kubernetes.io/limit-rps:每秒从给定 IP 接受的请求数。突发限制设置为此限制乘以突发倍数,默认倍数为 5。当客户端超过此限制时,返回 limit-req-status-code default: 503。
nginx.ingress.kubernetes.io/limit-connections:单个 IP 地址允许的并发连接数。超过此限制时返回 503 错误。
当您使用 WordPress 时,您可以使用许多 WordPress 插件。例如,Web 应用程序防火墙插件提供了Real Time IP Blocking
功能。
无论您使用的是本地还是云环境,您都可以使用专门的防火墙 (WAF) 和 DDoS 缓解服务,例如Google Cloud Armor(请参阅Cloud Armor 了解本地和云工作负载)。