
У меня есть следующие 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?