Plataforma Actualizado julio 2026 por Thijs de Zoete

Mejor WAF para HAProxy

Añade un firewall de aplicaciones web a HAProxy. Compara el WAF nativo de HAProxy Enterprise frente a las opciones SPOA fuera de proceso (coraza-spoa, SPOA de ModSecurity) y CrowdSec para la seguridad de balanceadores de carga y reverse proxy.

HAProxy es el balanceador de carga y controlador de entrega de aplicaciones de código abierto más utilizado del mundo, situado por delante de sitios y APIs de alto tráfico en empresas como Reddit, GitHub y Roblox. Como termina el tráfico del cliente antes de que llegue a tus servidores de aplicaciones, HAProxy es un lugar natural para aplicar la política de un firewall de aplicaciones web.

Hay algo que conviene entender de entrada: HAProxy de código abierto (HAProxy Community) no tiene módulo WAF nativo. De serie te ofrece filtrado de peticiones basado en ACL y limitación de tasa mediante stick-tables, que gestionan el abuso en las capas 3/4 y una limitación básica en la capa 7, pero no inspecciona el contenido de las peticiones en busca de inyección SQL, XSS u otros ataques de la capa de aplicación. Para conseguir una cobertura WAF real, o bien añades un motor WAF de código abierto fuera de proceso a través del mecanismo Stream Processing Offload Agent (SPOA) de HAProxy, o bien ejecutas HAProxy Enterprise, que incluye un WAF integrado.

Esta guía compara las opciones realistas para poner un WAF por delante de, o dentro de, HAProxy: el WAF nativo de HAProxy Enterprise, los motores de código abierto conectados por SPOA como coraza-spoa (que ejecuta el OWASP Core Rule Set) y un SPOA de ModSecurity, y CrowdSec para el bloqueo colaborativo. También cubre qué puede y qué no puede hacer HAProxy de forma nativa, para que decidas dónde encaja el WAF en tu stack.

Mejores Proveedores WAF para HAProxy

2

Coraza Web Application Firewall

Mejor opción de código abierto

Coraza es la mejor vía de código abierto para tener un WAF en HAProxy Community. Se conecta a través de coraza-spoa, que habla el protocolo SPOA de HAProxy, y ejecuta el OWASP Core Rule Set más cualquier regla SecLang compatible con ModSecurity. Escrito en Go y sin dependencias de C, es fácil de desplegar como proceso acompañante o contenedor. Ten en cuenta que la integración coraza-spoa es comparativamente joven (estado preview), así que valídala con tu tráfico antes de confiar en ella en producción.

Beneficios Clave:

  • Gratuito y de código abierto (proyecto OWASP, Apache 2.0)
  • Ejecuta el OWASP CRS y reglas SecLang de ModSecurity
  • Se conecta a HAProxy mediante el protocolo SPOA/SPOP
  • Go puro, fácil de contenerizar y sin dependencias de C
Calificación: 4,2/5
Precios: Gratuito y de código abierto (Apache 2.0)
Plan Gratuito
3

ModSecurity Open Source WAF

Reglas estándar del sector

ModSecurity no tiene un conector oficial para HAProxy, pero hay dos formas consolidadas de usarlo con él. La primera es el agente SPOA de ModSecurity de ejemplo que incluye HAProxy, que envuelve una compilación independiente de ModSecurity v2 (por ejemplo 2.9.x) y ejecuta el OWASP CRS fuera de proceso. Ten en cuenta que este agente de ejemplo envuelve ModSecurity v2, no libmodsecurity (v3); un SPOA de HAProxy con v3/libmodsecurity existe solo como proyectos comunitarios experimentales y no oficiales. La segunda, si prefieres evitar el agente SPOA de ejemplo, es ejecutar ModSecurity sobre una instancia de Nginx independiente como reverse proxy detrás de HAProxy, reutilizando el conector oficial ModSecurity-nginx. Cualquiera de las dos es una opción sólida si tu equipo ya mantiene reglas SecLang y quiere el ecosistema maduro y consolidado de ModSecurity y el OWASP CRS. La contrapartida es que ninguna es un módulo integrado en HAProxy: el agente SPOA es una implementación de referencia/ejemplo y la variante con Nginx añade un salto de proxy extra, así que en ambos casos espera más configuración y mantenimiento manuales que con un módulo de primera categoría.

Beneficios Clave:

  • Ecosistema de reglas SecLang y OWASP CRS probado a fondo
  • Se ejecuta fuera de proceso mediante un agente SPOA de ModSecurity o Nginx detrás de HAProxy
  • Gratuito y de código abierto, sin coste de licencia
  • Familiar para equipos que migran reglas ModSecurity existentes
Calificación: 4,0/5
Precios: Gratuito (Código Abierto)
Plan Gratuito

Qué Buscar en un WAF para HAProxy

A la hora de elegir cómo añadir un WAF a HAProxy, sopesa estos factores:

  • En proceso frente a fuera de proceso - El WAF de HAProxy Enterprise se ejecuta dentro de HAProxy, sin añadir ningún salto de red. Las opciones de código abierto (coraza-spoa, SPOA de ModSecurity) se ejecutan como agentes independientes con los que HAProxy se comunica mediante el protocolo SPOA/SPOP. Los agentes fuera de proceso son gratuitos y flexibles, pero añaden un viaje de ida y vuelta entre procesos por cada petición inspeccionada.
  • Soporte del OWASP Core Rule Set - Tanto coraza-spoa como el SPOA de ModSecurity ejecutan directamente el OWASP CRS y reglas SecLang. HAProxy Enterprise ofrece un modo de compatibilidad con el CRS que procesa las reglas del CRS a través de su motor de ML. Confirma la versión del CRS y cómo se entregan las actualizaciones de reglas.
  • Madurez y soporte del SPOA - El ecosistema SPOA es más pequeño que el ecosistema de módulos WAF de NGINX. coraza-spoa es relativamente nuevo, y el SPOA de ModSecurity es un agente de ejemplo. Si necesitas soporte de un proveedor y SLA, HAProxy Enterprise o una opción comercial es la vía más segura.
  • Latencia y rendimiento - HAProxy se elige por su rendimiento. Un WAF en proceso lo preserva; un agente SPOA añade una latencia proporcional al coste de inspección y al escalado del agente. Haz benchmark con tu tráfico real y dimensiona el pool de agentes en consecuencia.
  • Limitación de tasa y ACL nativas - HAProxy ya hace mucho antes de cualquier WAF: las stick-tables proporcionan limitación de tasa de conexiones y peticiones, y las ACL filtran por cabeceras, rutas e IP. Decide qué resolver de forma nativa frente a qué necesita realmente inspección de contenido.
  • IP real del cliente - Si HAProxy se sitúa detrás de un CDN u otro proxy, configura X-Forwarded-For o el protocolo PROXY para que el WAF y tus límites de tasa vean la dirección real del cliente, no la del proxy aguas arriba.

Consideraciones para HAProxy

Consideraciones específicas de HAProxy al desplegar un WAF:

  • Community no tiene módulo WAF - HAProxy de código abierto proporciona únicamente filtrado por ACL y limitación de tasa con stick-tables. Un WAF de la capa de aplicación requiere o bien un agente SPOA o bien una actualización a HAProxy Enterprise. No asumas que HAProxy Community incluye detección de amenazas basada en firmas o en ML; no lo hace.
  • Cómo funciona SPOA/SPOE - HAProxy usa un filtro Stream Processing Offload Engine (SPOE) para reenviar los datos de la petición mediante el protocolo SPOP a un Stream Processing Offload Agent (SPOA). El agente inspecciona la petición y devuelve un veredicto (permitir, denegar, etiquetar) sobre el que HAProxy actúa. coraza-spoa y el SPOA de ModSecurity son ambos agentes SPOA.
  • Estado de coraza-spoa - La integración coraza-spoa ejecuta el OWASP CRS a través del motor Coraza y es la vía de código abierto más activa, pero todavía está madurando (preview). Fija las versiones y prueba las actualizaciones de reglas antes de desplegar en producción.
  • ModSecurity: agente de ejemplo o Nginx detrás de HAProxy - No existe un módulo oficial de ModSecurity para HAProxy. Tienes dos caminos consolidados: el SPOA de contrib/ejemplo que incluye HAProxy, que envuelve una compilación independiente de ModSecurity v2 fuera de proceso, o bien ejecutar ModSecurity con el conector oficial ModSecurity-nginx sobre una instancia de Nginx independiente que actúa como reverse proxy detrás de HAProxy. El primero exige compilarlo y mantenerlo tú mismo; el segundo añade un salto de proxy extra pero reutiliza un conector con soporte oficial.
  • La limitación de tasa se queda en modo nativo - Incluso con un WAF desplegado, mantén los controles de abuso en las stick-tables y las ACL, que es donde corresponden. Se ejecutan en proceso a velocidad de línea y reducen el volumen de tráfico que tus agentes WAF necesitan inspeccionar.
  • Forma de despliegue - El WAF de HAProxy Enterprise se distribuye para on-premises, nube, Kubernetes, el appliance ALOHA y el servicio totalmente gestionado HAProxy Edge, usando el mismo motor. Los agentes SPOA de código abierto se ejecutan allí donde ejecutes HAProxy, normalmente como proceso acompañante o contenedor sidecar.

Preguntas Frecuentes

¿Incluye HAProxy de código abierto un WAF?

No. HAProxy de código abierto (HAProxy Community) es un balanceador de carga y reverse proxy. Proporciona filtrado de peticiones basado en ACL y limitación de tasa mediante stick-tables, pero no inspecciona el contenido en busca de ataques de la capa de aplicación como la inyección SQL o el XSS. Para añadir un WAF real, o bien conectas un motor de código abierto por SPOA (coraza-spoa o un SPOA de ModSecurity) o bien ejecutas HAProxy Enterprise, que tiene un WAF integrado.

¿Cómo añado un WAF a HAProxy?

Dos enfoques principales. Primero, código abierto fuera de proceso: ejecuta un Stream Processing Offload Agent (SPOA) junto a HAProxy. coraza-spoa ejecuta el OWASP Core Rule Set a través del motor Coraza, y un SPOA de ModSecurity ejecuta una compilación independiente de ModSecurity v2 con el CRS. HAProxy reenvía las peticiones al agente mediante el protocolo SPOP y actúa sobre su veredicto. Segundo, nativo: actualiza a HAProxy Enterprise, cuyo Intelligent WAF Engine se ejecuta en proceso sin un agente aparte.

¿Qué son SPOA, SPOE y SPOP?

Son las piezas del mecanismo de descarga de HAProxy para trasladar trabajo a un agente externo. SPOE (Stream Processing Offload Engine) es el filtro del lado de HAProxy que configuras; SPOP (Stream Processing Offload Protocol) es el protocolo de comunicación; SPOA (Stream Processing Offload Agent) es el programa externo que hace el trabajo, como un WAF. coraza-spoa y el SPOA de ModSecurity son ambos agentes SPOA que inspeccionan las peticiones y devuelven una decisión de permitir o denegar.

¿Debería usar coraza-spoa o un SPOA de ModSecurity?

Ambos ejecutan el OWASP CRS y reglas SecLang compatibles con ModSecurity sobre SPOA. coraza-spoa está construido sobre Coraza, un motor moderno en Go sin dependencias de C, y es la integración de desarrollo más activo, aunque todavía está madurando. El SPOA de ModSecurity ejecuta una compilación independiente de ModSecurity v2 (no libmodsecurity v3) pero es un agente de ejemplo/contrib que compilas y mantienes tú mismo; si prefieres no usar el agente de ejemplo, otra opción es ejecutar ModSecurity con el conector oficial ModSecurity-nginx sobre una instancia de Nginx independiente detrás de HAProxy. Para despliegues nuevos, coraza-spoa suele ser el mejor punto de partida; elige una de las vías de ModSecurity si tienes una inversión existente en reglas de ModSecurity.

¿Puedo limitar la tasa y bloquear tráfico malicioso en HAProxy sin un WAF?

Sí, hasta cierto punto. Las stick-tables de HAProxy rastrean métricas por cliente (tasa de peticiones, tasa de conexiones, tasa de errores) y te permiten limitar o denegar fuentes abusivas, mientras que las ACL filtran por cabeceras, rutas, métodos y rangos de IP. Esto gestiona el abuso en las capas 3/4 y la limitación básica de tasa de la capa 7 de forma nativa y eficiente. Lo que no puede hacer es inspeccionar el contenido de las peticiones en busca de ataques de inyección o XSS, que es donde se necesita un WAF.

WAF de HAProxy Enterprise frente a un WAF SPOA de código abierto, ¿cuál elijo?

El WAF de HAProxy Enterprise se ejecuta en proceso con el balanceador de carga, añade una latencia inferior al milisegundo, usa un motor de ML en lugar de firmas regex y viene con soporte comercial, pero requiere una licencia de pago con precio a medida. Un SPOA de código abierto (coraza-spoa o SPOA de ModSecurity) es gratuito y te da reglas CRS/SecLang transparentes que controlas por completo, a costa de un salto adicional fuera de proceso y de una configuración y mantenimiento autogestionados. Elige Enterprise por latencia, precisión y soporte; elige un SPOA cuando el presupuesto y la transparencia de las reglas son lo más importante.

¿Funciona CrowdSec con HAProxy?

Sí. CrowdSec proporciona un bouncer de HAProxy que aplica listas de bloqueo, y su componente AppSec añade inspección WAF usando reglas compatibles con SecLang de ModSecurity. Su punto fuerte es la inteligencia de amenazas colaborativa, listas de bloqueo construidas a partir de señales compartidas entre más de 200.000 instalaciones, por lo que funciona mejor como una capa complementaria que bloquea las IP conocidas como maliciosas antes de que lleguen a un WAF basado en reglas como coraza-spoa o el WAF de HAProxy Enterprise.