
Tengo las siguientes 3 reglas en modsecurity
.
Regla 1: Bloquear todos los países definidos como de alto riesgo excepto 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"
Regla 2: Permitir el acceso desde la siguiente IP:
SecRule REMOTE_ADDR "^XX\.XX\.XX\.XX$" "phase:1,id:2000002,nolog,allow,msg:'Allow access from IP XX.XX.XX.XX'"
Regla 3: Permitir el acceso desde el siguiente host remoto:
SecRule REMOTE_HOST "host\.name\.com$" "phase:1,id:2000003,nolog,allow,msg:'Allow access from host.name.com'"
Todas las reglas funcionan bien si tomamos cualquiera de ellas. Sin embargo, me gustaría "fusionarlos" en una regla que haga lo siguiente:
Bloquear todo acceso desde los países prohibidos (Regla 1), excepto cuando la solicitud provenga de IP XX.XX.XX.XX
(Regla 2) o excepto cuando el host sea host.name.com
(Regla 3).
¿Cómo puedo hacer eso en modscurity?