【发布时间】:2021-11-29 13:27:54
【问题描述】:
我试图在启用 modsecurity 的 nginx 入口控制器上阻止一个国家,但仍然没有运气。我的配置是:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
cert-manager.io/cluster-issuer: letsencrypt
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/modsecurity-snippet: |
SecRuleEngine On
SeqRequestBodyAccess On
SecAuditEngine On
SecAuditLogParts ABIJDEFHZ
SecAuditLog /var/log/modsec_audit.log
SecGeoLookupDb /etc/nginx/geoip/GeoIP.dat
SecRule REMOTE_ADDR "@geoLookup" "chain,id:22,drop,msg:WrongIP"
SecRule GEO:COUNTRY_CODE "@streq GR"
nginx.ingress.kubernetes.io/whitelist-source-range: 0.0.0.0/0
当我尝试使用 curl 访问 URL 时,我得到的是 HTTP 200 而不是 HTTP 403。
【问题讨论】:
-
您使用的是哪个版本的 Kubernetes,您是如何设置集群的?您是使用裸机安装还是某些云提供商?
-
我使用基于 kubernetes 1.21 EKS 和 nginx-ingress-controller 1.0.3
-
抱歉很久没有回复。您能否提供您的日志?
标签: kubernetes-ingress nginx-ingress mod-security