在Kubernetes Nginx Ingress Controller中拒绝用户代理

时间:2017-09-12 18:05:27

标签: nginx kubernetes

我被一个使用User-Agent: Mozilla/5.0 Jorgee的漏洞探测攻击,我想删除/拒绝来自该用户代理的任何请求。

我一直在挖掘k8s的例子,但我似乎无法找到解决方案。

我是否可以根据User-Agent gcr.io/google_contianers/nginx-ingress-controller:0.8.3拒绝请求?

2 个答案:

答案 0 :(得分:1)

我可以从the nginx go-template得知,这不是他们的入口控制器的当前实现所提供的。我相信在他们的心智模型中,人们希望以每Service方式进行这种抑制,因为在Ingress控制器中执行此操作可以非常轻松地将该规则应用于整个群集,导致其他已发表的Service令人惊讶的结果。我看了the haproxy controller's go-template,看来也是如此。

此时,我认为您有两种选择:

  1. Use a custom nginx go-template file,这可能不是“坏”但是在进行升级时需要谨慎,因为您的控制器将不再具有已知正确的nginx.tmpl
  2. 试试a more advanced haproxy ingress controller,它允许您直接在Ingress资源中指定任意haproxy片段,这是我迄今为止看到的最佳方法,以backendRule数组为模not to be standard < / LI>

答案 1 :(得分:1)

您可以使用注释向Ingress添加自定义nginx配置片段,至少对于&#34; normal&#34; nginx控制器,不确定它是否也适用于GCE控制器。参见例如在这里:https://github.com/kubernetes/ingress/blob/master/examples/customization/configuration-snippets/nginx/ingress.yaml#L8