Firewall de aplicação web (WAF) e proxy reverso auto-hospedados que filtram o tráfego HTTP para bloquear SQL injection, XSS, bots e floods.
fabriziosalmi/caddy-waf
Middleware de Web Application Firewall para o servidor Caddy, com regras regex, filtragem por IP/DNS/ASN/GeoIP, limitação de taxa e bloqueio de nós de saída do Tor.
Alternativa open source a:Cloudflare WAF
- Estrelas
- 876
- Forks
- 37
- Issues abertas
- 1
- Último commit
- há 3 dias
O que é?
caddy-waf é um módulo HTTP handler para Caddy, escrito em Go, que inspeciona requisições e respostas com base em um conjunto de regras de expressões regulares. As regras têm pontuações, e uma requisição é bloqueada quando a soma atinge um limite de anomalia configurável. A inspeção cobre quatro etapas: cabeçalhos da requisição, corpo da requisição, cabeçalhos da resposta e corpo da resposta.
Além da correspondência de regras, o módulo aplica listas de bloqueio de IP e CIDR, listas de bloqueio de DNS, bloqueio por país e ASN com o MaxMind GeoLite2 e uma lista de nós de saída do Tor atualizada periodicamente. Também oferece limitação de taxa por IP com janela deslizante e correspondência opcional de caminhos, respostas de bloqueio personalizadas e um endpoint de métricas JSON. Os arquivos de regras e listas de bloqueio são monitorados e recarregados quando mudam, sem necessidade de reiniciar.
O módulo é configurado pelo Caddyfile ou por JSON e pode ser compilado com xcaddy, instalado via caddy add-package ou executado a partir de uma imagem Docker. É licenciado sob AGPL-3.0.
Recursos principais
- 01Mecanismo de regras regex baseado no pacote RE2 do Go, com pontuação de anomalia por regra.
- 02Inspeção de cabeçalhos e corpos de requisições e respostas em quatro etapas.
- 03Listas de bloqueio de IP e CIDR, além de listas de bloqueio de DNS.
- 04Bloqueio por país e ASN usando bancos de dados MaxMind GeoLite2.
- 05Limitação de taxa por IP com janela deslizante e padrões de caminho opcionais.
- 06Bloqueio de nós de saída do Tor e recarga automática de arquivos de regras e listas de bloqueio.
Casos de uso
- Proteger um site servido pelo Caddy contra ataques web comuns usando um conjunto de regras.
- Bloquear tráfego de países, ASNs, faixas de IP ou nós de saída do Tor específicos.
- Limitar a taxa de requisições a endpoints de API em um proxy reverso Caddy.
- Exportar métricas do WAF para dashboards do Prometheus ou Grafana.
Início rápido
- 1
Instale o módulo com xcaddy
go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest - 2
Compile o Caddy com o módulo caddy-waf
xcaddy build --with github.com/fabriziosalmi/caddy-waf - 3
Verifique se o módulo WAF está disponível
./caddy list-modules | grep waf
Antes de usar
- Licenciado sob a AGPL-3.0, uma licença copyleft que pode não ser adequada para todos os ambientes de implantação.
- Requer Go 1.26.0 ou mais recente e Caddy v2.11.x ou mais recente.
- Os recursos GeoIP opcionais precisam de um arquivo de banco de dados MaxMind GeoLite2.
Tópicos
Perguntas frequentes
- O que é caddy-waf?
- Middleware de Web Application Firewall para o servidor Caddy, com regras regex, filtragem por IP/DNS/ASN/GeoIP, limitação de taxa e bloqueio de nós de saída do Tor. caddy-waf é um módulo HTTP handler para Caddy, escrito em Go, que inspeciona requisições e respostas com base em um conjunto de regras de expressões regulares. As regras têm pontuações, e uma requisição é bloqueada quando a soma atinge um limite de anomalia configurável. A inspeção cobre quatro etapas: cabeçalhos da requisição, corpo da requisição, cabeçalhos da resposta e corpo da resposta.
- caddy-waf é gratuito? Qual é a licença?
- caddy-waf é open source sob a licença AGPL-3.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
- caddy-waf ainda é mantido?
- Manutenção ativa. O último commit de caddy-waf foi em 17 de out. de 2026.
- Para que posso usar caddy-waf?
- Proteger um site servido pelo Caddy contra ataques web comuns usando um conjunto de regras. Bloquear tráfego de países, ASNs, faixas de IP ou nós de saída do Tor específicos. Limitar a taxa de requisições a endpoints de API em um proxy reverso Caddy. Exportar métricas do WAF para dashboards do Prometheus ou Grafana.
- Como instalar caddy-waf?
- Instale o módulo com xcaddy: go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest Compile o Caddy com o módulo caddy-waf: xcaddy build --with github.com/fabriziosalmi/caddy-waf Verifique se o módulo WAF está disponível: ./caddy list-modules | grep waf
- Onde consigo caddy-waf?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/fabriziosalmi/caddy-waf
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Um servidor compacto de autenticação e autorização que funciona como middleware para Traefik, Nginx e Caddy ou como servidor de login SSO independente.
Plataforma de servidor doméstico auto-hospedada que funciona como proxy reverso seguro, gerenciador de apps e gateway, com autenticação, MFA, SSO e proteção contra bots.
Cliente para Windows, macOS e Linux que adiciona criptografia transparente no dispositivo a arquivos armazenados no Dropbox, Google Drive, OneDrive e outras pastas sincronizadas na nuvem.
Serviço de fuzzing contínuo do Google para projetos de código aberto, que usa libFuzzer, AFL++ e Honggfuzz com sanitizers para encontrar falhas de segurança.
Um sandbox seguro para Python, escrito em Rust, que executa código gerado por IA sem usar contêineres.