我目前在网络服务器上使用以下modsecurity配置来阻止国家/地区:
SecGeoLookupDb GeoIP.dat
SecRule REMOTE_ADDR "@geoLookup" "chain,id:1,deny,msg:'Block IN'"
SecRule GEO:COUNTRY_CODE "@streq IN"
现在我想要一个新项目,我希望只允许某些国家/地区。是否可以使用阻止所有流量的默认规则以及以下内容来允许国家/地区进行此操作?
SecGeoLookupDb GeoIP.dat
SecRule REMOTE_ADDR "@geoLookup" "chain,id:1,pass,msg:'Block IN'"
SecRule GEO:COUNTRY_CODE "@streq IN"
答案 0 :(得分:1)
是的,它可以。或者您可以使用以下内容在一个链式规则中执行此操作:
SecGeoLookupDb /usr/local/geo/data/GeoLiteCity.dat
...
SecRule REMOTE_ADDR "@geoLookup" "chain,id:22,drop,msg:'Non-GB IP address'"
SecRule GEO:COUNTRY_CODE "!@streq GB"
只允许使用GB。
此示例取自文档:https://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual#GEO
或者要允许多个国家/地区,请尝试使用@pm运算符:
SecRule REMOTE_ADDR "@geoLookup" "chain,id:22,drop,msg:'Non-GB or IE IP address'"
SecRule GEO:COUNTRY_CODE "!@pm GB IE"