Firewall de aplicaciones web (WAF) y proxy inverso autoalojados que filtran el tráfico HTTP para bloquear inyecciones SQL, XSS, bots e inundaciones de tráfico.
fabriziosalmi/caddy-waf
Middleware de Web Application Firewall para Caddy que ofrece reglas regex, filtrado por IP/DNS/ASN/GeoIP, límites de solicitudes y bloqueo de nodos de salida de Tor.
Alternativa open source a:Cloudflare WAF
- Estrellas
- 876
- Forks
- 37
- Issues abiertos
- 1
- Último commit
- hace 3 días
¿Qué es?
caddy-waf es un módulo de HTTP handler para Caddy, escrito en Go, que inspecciona solicitudes y respuestas según un conjunto de reglas de expresiones regulares. Las reglas tienen una puntuación y se bloquea una solicitud cuando la puntuación total alcanza un umbral de anomalía configurable. La inspección abarca cuatro fases: encabezados de solicitud, cuerpo de la solicitud, encabezados de respuesta y cuerpo de la respuesta.
Además de evaluar las reglas, aplica listas de bloqueo de IP y CIDR, listas de bloqueo DNS, bloqueos por país y ASN mediante MaxMind GeoLite2 y una lista de nodos de salida de Tor que se actualiza periódicamente. También ofrece límites de solicitudes por IP con ventana deslizante y coincidencia opcional de rutas, respuestas de bloqueo personalizadas y un endpoint de métricas JSON. Los archivos de reglas y listas de bloqueo se supervisan y se vuelven a cargar cuando cambian, sin necesidad de reiniciar.
El módulo se configura mediante Caddyfile o JSON y se puede compilar con xcaddy, instalar con caddy add-package o ejecutar desde una imagen de Docker. Está publicado bajo la licencia AGPL-3.0.
Funciones clave
- 01Motor de reglas regex basado en el paquete RE2 de Go, con puntuación de anomalía por regla.
- 02Inspección de encabezados y cuerpos de solicitudes y respuestas en cuatro fases.
- 03Listas de bloqueo de IP y CIDR, además de listas de bloqueo DNS.
- 04Bloqueo por país y ASN mediante bases de datos MaxMind GeoLite2.
- 05Límites de solicitudes por IP con ventana deslizante y patrones de ruta opcionales.
- 06Bloqueo de nodos de salida de Tor y recarga en caliente de archivos de reglas y listas de bloqueo.
Casos de uso
- Proteger con un conjunto de reglas un sitio servido por Caddy frente a ataques web comunes.
- Bloquear tráfico de países, ASN, rangos de IP o nodos de salida de Tor específicos.
- Limitar las solicitudes a endpoints de API en un proxy inverso de Caddy.
- Exportar métricas del WAF a paneles de Prometheus o Grafana.
Inicio rápido
- 1
Instala el módulo con xcaddy
go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest - 2
Compila Caddy con el módulo caddy-waf
xcaddy build --with github.com/fabriziosalmi/caddy-waf - 3
Comprueba que el módulo WAF esté disponible
./caddy list-modules | grep waf
Antes de usarlo
- Está sujeto a la licencia AGPL-3.0, una licencia copyleft que puede no ser adecuada para todos los entornos de despliegue.
- Requiere Go 1.26.0 o posterior y Caddy v2.11.x o posterior.
- Las funciones GeoIP opcionales necesitan un archivo de base de datos MaxMind GeoLite2.
Temas
Preguntas frecuentes
- ¿Qué es caddy-waf?
- Middleware de Web Application Firewall para Caddy que ofrece reglas regex, filtrado por IP/DNS/ASN/GeoIP, límites de solicitudes y bloqueo de nodos de salida de Tor. caddy-waf es un módulo de HTTP handler para Caddy, escrito en Go, que inspecciona solicitudes y respuestas según un conjunto de reglas de expresiones regulares. Las reglas tienen una puntuación y se bloquea una solicitud cuando la puntuación total alcanza un umbral de anomalía configurable. La inspección abarca cuatro fases: encabezados de solicitud, cuerpo de la solicitud, encabezados de respuesta y cuerpo de la respuesta.
- ¿caddy-waf es gratuito? ¿Qué licencia tiene?
- caddy-waf es open source bajo la licencia AGPL-3.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿caddy-waf sigue mantenido?
- Mantenimiento activo. El último commit de caddy-waf fue el 17 oct 2026.
- ¿Para qué puedo usar caddy-waf?
- Proteger con un conjunto de reglas un sitio servido por Caddy frente a ataques web comunes. Bloquear tráfico de países, ASN, rangos de IP o nodos de salida de Tor específicos. Limitar las solicitudes a endpoints de API en un proxy inverso de Caddy. Exportar métricas del WAF a paneles de Prometheus o Grafana.
- ¿Cómo se instala caddy-waf?
- Instala el módulo con xcaddy: go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest Compila Caddy con el módulo caddy-waf: xcaddy build --with github.com/fabriziosalmi/caddy-waf Comprueba que el módulo WAF esté disponible: ./caddy list-modules | grep waf
- ¿Dónde consigo caddy-waf?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/fabriziosalmi/caddy-waf
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Servidor ligero de autenticación y autorización que funciona como middleware para Traefik, Nginx y Caddy, o como servidor de inicio de sesión SSO independiente.
Plataforma de servidor doméstico autohospedada que funciona como proxy inverso seguro, gestor de aplicaciones y gateway, con autenticación, MFA, SSO y protección contra bots.
Cliente de escritorio para Windows, macOS y Linux que añade cifrado transparente en el cliente a los archivos almacenados en Dropbox, Google Drive, OneDrive y otras carpetas sincronizadas en la nube.
Servicio de fuzzing continuo de Google para proyectos de código abierto, que usa libFuzzer, AFL++ y Honggfuzz con sanitizers para detectar fallos de seguridad.
Un sandbox seguro de Python escrito en Rust para ejecutar código generado por IA, sin contenedores.