Modsecurity 阻止来自除特定 IP 或特定远程主机之外的所有国家的访问

Modsecurity 阻止来自除特定 IP 或特定远程主机之外的所有国家的访问

我有以下 3 条规则modsecurity

规则1:阻止所有被定义为高风险的国家,但以下国家除外US

SecAction \
 "id:900600,\
  phase:1,\
  nolog,\
  pass,\
  t:none,\
  setvar:'tx.high_risk_country_codes = AD AE AF AG AI AL AM AO AQ AR...'"

#Allow only the below countries
SecRule REMOTE_ADDR "@geoLookup" "chain,id:2000001,drop,msg:'Countries allowed'"
SecRule GEO:COUNTRY_CODE "!@pm US"

规则 2:允许从以下IP访问:

SecRule REMOTE_ADDR "^XX\.XX\.XX\.XX$" "phase:1,id:2000002,nolog,allow,msg:'Allow access from IP XX.XX.XX.XX'"

规则 3:允许从以下远程主机访问:

SecRule REMOTE_HOST "host\.name\.com$" "phase:1,id:2000003,nolog,allow,msg:'Allow access from host.name.com'"

如果我们采用其中任何一条规则,所有规则都可以正常工作。但是,我想将它们“合并”为一条规则,该规则执行以下操作:

阻止来自禁入国家/地区的所有访问(规则 1),除非请求来自 IP XX.XX.XX.XX(规则 2)或除非主机是host.name.com(规则 3)。

我如何在 modscurity 中做到这一点?

相关内容