Dos ajustes controlan el WAF de un sitio: mode y waf_level. Los dos se pueden fijar para toda la zona o para un nombre.
Modos
mode | Panel | Qué ocurre |
|---|---|---|
active (por defecto) | Proteger | Las peticiones que llegan al umbral de bloqueo se bloquean con un 403. Los escudos bloquean. |
log | Solo observar | Ni el WAF ni los escudos bloquean: cada detección se registra como evento de seguridad con la acción log y la petición sigue hasta el origen. |
off | Apagado | Sin inspección del WAF ni escudos. El límite básico por IP (rate_limit_rpm) también se apaga. |
El modo no cambia las reglas por IP y por país, las listas de amenazas, las reglas de límite de peticiones, las reglas de límite por ruta ni la puerta de acceso: se aplican en cualquier modo.
Niveles
OpenWAF ejecuta OWASP CRS 4.25 con nivel de paranoia 1. Cada regla de CRS que coincide con una petición suma puntos a su puntuación de anomalía (crítica 5, error 4, aviso 3, nota 2). El nivel fija la puntuación a partir de la cual se bloquea:
waf_level | Panel | Bloquea con una puntuación CRS de | Uso típico |
|---|---|---|---|
off | Apagado: sin reglas del WAF | — | Desactivar el WAF del sitio, como mode=off. |
low | Baja | 15 | Solo ataques evidentes; menos falsos positivos. |
medium (por defecto) | Media (recomendada) | 10 | Equilibrado. |
high | Alta | 5 | La más estricta: una sola coincidencia crítica bloquea. Puede bloquear alguna petición legítima. |
Las reglas propias de OpenWAF (identificadores 10000–19999, como ficheros sensibles, recorrido de rutas o request smuggling) describen ataques sin ambigüedad: una crítica bloquea en cualquier nivel. Los parches virtuales de emergencia para CVE nuevos, como la regla 10075 para PHP2Shell, son de este grupo.
Aplicación
stack describe la aplicación que hay detrás del nombre: generic (por defecto), wordpress, nextjs o static. Hoy solo wordpress cambia lo que hace el WAF:
- activa el escudo de endurecimiento de WordPress (identificador 1001);
- la regla 10002 de OpenWAF, que bloquea las rutas de WordPress (
/wp-login.php,/wp-admin,/wp-includes,/wp-content/uploads,/xmlrpc.php) en los sitios que no son WordPress, deja de bloquear.
/wp-config.php se bloquea en todos los sitios, sean WordPress o no.
Cambiarlos
Dominio → Seguridad → Firewall → Protección: Modo, Sensibilidad del WAF y Aplicación. Usa Se aplica a para cambiar un solo nombre.
openwaf-cloud ctl zones set example.com mode=active waf_level=high stack=wordpress --reason "Sitio WordPress, WAF estricto"curl -sS -X PATCH "https://dash.openwaf.dev/v1/orgs/$ORG/zones/example.com/edge" \
-H "Authorization: Bearer $OPENWAF_TOKEN" \
-H "X-Change-Reason: Sitio WordPress, WAF estricto" \
-H "Content-Type: application/json" \
-d '{"mode": "active", "waf_level": "high", "stack": "wordpress"}'update_settings con {"zone": "example.com", "settings": {"mode": "active", "waf_level": "high", "stack": "wordpress"}, "reason": "…"}; simula y después confirma.