Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker 如何在Kubernetes下使用Fail2ban?_Docker_Kubernetes_Firewall_Fail2ban_Ufw - Fatal编程技术网

Docker 如何在Kubernetes下使用Fail2ban?

Docker 如何在Kubernetes下使用Fail2ban?,docker,kubernetes,firewall,fail2ban,ufw,Docker,Kubernetes,Firewall,Fail2ban,Ufw,到目前为止,我一直在使用Docker在单个VPC上提供手工托管解决方案,在主机上安装fail2ban,并通过Nginx容器查看Docker日志(每个服务器可以托管多个网站,通过Nginx代理提供服务) 我想知道如何使用Kubernetes实现相同的功能,特别是在X次尝试后阻止对/wp admin访问的POST请求 我考虑为Nginx代理(K8s中的入口)构建一个自定义Docker映像,包括Fail2ban;但也许有一个更简单的解决方案:网络策略?我想你说的是监控请求,k8s无法监控流量。网络策略

到目前为止,我一直在使用Docker在单个VPC上提供手工托管解决方案,在主机上安装fail2ban,并通过Nginx容器查看Docker日志(每个服务器可以托管多个网站,通过Nginx代理提供服务)

我想知道如何使用Kubernetes实现相同的功能,特别是在X次尝试后阻止对/wp admin访问的POST请求


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

我想你说的是监控请求,k8s无法监控流量。网络策略只能用于节点之间的负载平衡。您可以使用Istio监控存储流量,但要与微服务连接

您需要在群集上安装。 然后,您必须使用Grafana可视化度量,并遵循下面教程中的步骤 在第页,可视化工作负载仪表板提供了有关每个工作负载的指标的详细信息

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


我希望这能有所帮助。

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

我试图找到一个
fail2ban
解决方案来帮助解决这个问题。不幸的是,我没有同时找到合适和易于使用的东西。
创建与Kubernetes集成的for
fail2ban可能是合理的

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

使用公开从集群外部到集群内服务的HTTP和HTTPS路由可能是一个很好的起点

正如我们在下面的例子中所看到的:

您必须拥有入口控制器才能满足入口要求。仅创建入口资源无效。您可能需要部署入口控制器,如Ingress nginx

在NGINX入口控制器中,您可以用作第三方插件:

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

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

似乎可以使用
ModSecurity
作为暴力身份验证保护,如本文所述:

此外,值得一提的是,NGINX入口控制器有许多可用于缓解DDoS攻击的功能,例如:

nginx.ingres.kubernetes.io/limit-whitelist:要从速率限制中排除的客户端IP源范围。该值是以逗号分隔的CIDR列表

nginx.ingres.kubernetes.io/limit-rps:每秒从给定IP接受的请求数。突发限制设置为该限制乘以突发乘数,默认乘数为5。当客户端超过此限制时,将返回限制请求状态代码default:503

nginx.ingres.kubernetes.io/limit-connections:单个IP地址允许的并发连接数。超过此限制时返回503错误

当您使用WordPress时,您可以使用许多WordPress插件。 例如,该插件提供了
实时IP阻塞
功能


无论您使用的是onprem还是云环境,您都可以使用专门的防火墙(WAF)和DDoS缓解服务,如(请参阅)。

谢谢您的回答。但据我所知,Istio/Zipkin与任何WAF都无关。除了可视化请求,我希望能够禁止IP匹配自定义筛选器。是的,但Istio将帮助您可视化请求,然后在此基础上您可以编写自己的脚本来阻止您想要的请求。Kubernetes中没有这样的功能,你必须手动执行。@MaggieO你能描述一下脚本吗,比如在分析日志后,我想阻止IP,那么脚本应该发送什么样的请求以及在哪里?阻止IP?您仍然存在此问题吗?我不知道你能不能解决这个案子。
nginx.ingress.kubernetes.io/enable-owasp-core-rules: "true"