使用nginx入口控制器和modsecurity通过geoip阻止国家/地区



我试图在启用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。

首先验证您的解决方案是否有效:

尝试更改您的条件:

"@streq GR"

至:

"!@streq GR"

并再次测试。如果你的规则真的有效,那么你得到的结果应该是:200比403或403比200。

相关内容

  • 没有找到相关文章

最新更新