ModSecurity: No action id present within the rule

Antiguamente, ModSecurity permitía establecer políticas de whitelist de forma muy sencilla con la directiva REMOTE_ADDR:

SecRule REMOTE_ADDR "^127.0.0.1$" nolog,allow

En las versiones actuales de ModSecurity, si establecemos esta regla y ejecutamos un configtest de Apache (o reiniciamos el servicio si somos valientes…) recibiremos el siguiente error de configuración:

Syntax error on line 30 of /etc/httpd/conf.d/mod_security.conf:
ModSecurity: No action id present within the rule
Action 'configtest' failed.

Como se puede intuir por el error, actualmente es obligatorio especificar un unique ID para la regla. Este ID debe estar comprendido entre el 1 y el 99999.

Así pues, como ya especifiqué en la entrada de deshabilitar mod_security por IP, generamos la regla con un ID único (podemos verificar previamente haciendo un grep del ID en el directorio de reglas):

SecRule REMOTE_ADDR "^127.0.0.1$" "phase:1,t:none,nolog,allow,ctl:ruleEngine=Off,ctl:auditEngine=Off,id:9999"