如何在Kubernetes下使用Fail2ban?

时间:2019-05-15 22:46:46

标签: docker kubernetes firewall fail2ban ufw

直到现在,我仍在使用Docker作为单VPC上的手工托管解决方案,并在主机上安装了fail2ban并查看来自Nginx容器的Docker日志(每台服务器可以托管多个网站,并通过Nginx代理提供服务)< / p>

我想知道如何用Kubernetes实现相同的功能,尤其是在X尝试之后阻止对/ wp-admin访问的POST请求吗?

我考虑过要为Nginx代理(K8s中的Ingress)构建自定义Docker映像,包括Fail2ban;但也许有一个更简单的解决方案:网络策略?

2 个答案:

答案 0 :(得分:0)

我认为您是在谈论监视请求,k8 无法监视流量。网络策略只能用于节点之间的负载平衡。您可以使用 Istio 监控流量,但该流量已与微服务连接。

您需要在群集上安装Istio。 然后,您必须使用Grafana可视化指标并按照以下教程中的步骤进行操作 https://istio.io/docs/tasks/telemetry/metrics/using-istio-dashboard/ 在可视化的工作负载仪表板上,提供有关每个工作负载的指标的详细信息。

Istio还有许多其他优点,您也可以使用Zipkin

跟踪请求

我希望这会有所帮助。

答案 1 :(得分:0)

作者可能已经解决了这个老问题,但对于其他社区成员,我决定提供一个答案并进行一些澄清。

我已尝试找到可以帮助解决此问题的 fail2ban 解决方案。不幸的是,我没有找到任何既合适又易于使用的东西。
fail2ban 与 Kubernetes 的集成创建一个 GitHub issue 可能是合理的。

以下是一些可能对您有所帮助的其他解决方案:

ModSecurity

使用 Kubernetes Ingress 将来自集群外部的 HTTP 和 HTTPS 路由暴露给集群内的服务可能是一个很好的起点。

正如我们在 Kubernetes Ingress documentation 中看到的:

<块引用>

你必须有一个 Ingress 控制器才能满足一个 Ingress。仅创建 Ingress 资源无效。您可能需要部署一个 Ingress 控制器,例如 ingress-nginx。

在 NGINX Ingress Controller 中,您可以使用 ModSecurity 作为第三方插件:

<块引用>

ModSecurity 是一个开源 Web 应用程序防火墙。可以为一组特定的入口位置启用它。必须首先通过在 ConfigMap 中启用 ModSecurity 来启用 ModSecurity 模块。请注意,这将为所有路径启用 ModSecurity,并且必须手动禁用每个路径。

您可以通过在入口级别设置以下注释来启用 OWASP Core Rule Set(更多信息可以在 NGINX ModSecurity configuration 文档中找到):

nginx.ingress.kubernetes.io/enable-owasp-core-rules: "true"

似乎可以使用 ModSecurity 作为暴力验证保护,如本文所述: Defending WordPress Logins from Brute Force Attacks

此外,值得一提的是,NGINX Ingress Controller 有许多 annotations 可用于缓解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 Plugins

当您使用 WordPress 时,您可以使用许多 WordPress 插件。 例如,Web Application Firewall 插件提供 Real Time IP Blocking 功能。

Web Application Firewall (WAF)

无论您使用的是本地还是云环境,您都可以使用专门的防火墙 (WAF) 和 DDoS 缓解服务,例如 Google Cloud Armor(请参阅 Cloud Armor for on-prem and cloud workloads)。