可自托管的 Web 应用防火墙与反向代理,过滤 HTTP 流量,拦截 SQL 注入、XSS、恶意爬虫和洪水攻击。
fabriziosalmi/caddy-waf
面向 Caddy Web 服务器的 Web 应用防火墙中间件,支持正则规则、IP/DNS/GeoIP 过滤和速率限制。
可替代:Cloudflare WAF
- Star
- 876
- Fork
- 37
- 未关闭 Issue
- 1
- 最近提交
- 3天前
这是什么?
caddy-waf 是一个用 Go 编写的 Caddy HTTP 处理器模块,用正则规则检查请求和响应内容。每条规则带有分值,当请求的累计分数达到可配置的异常阈值时即被拦截。检查覆盖请求头、请求体、响应头和响应体四个阶段。
除规则匹配外,它还支持 IP 与 CIDR 黑名单、DNS 黑名单、基于 MaxMind GeoLite2 的国家和 ASN 封锁,以及定期更新的 Tor 出口节点列表。它提供按 IP 统计的滑动窗口限流(可按路径匹配),支持自定义拦截响应和 JSON 格式的指标接口。规则与黑名单文件变更后会自动热加载。
该模块可通过 Caddyfile 或 JSON 配置,可用 xcaddy 构建、通过 caddy add-package 安装,也可以使用 Docker 镜像运行。项目采用 AGPL-3.0 许可证。
核心功能
- 01基于 Go RE2 正则引擎的规则匹配,并为每条规则设置异常分值。
- 02覆盖请求头、请求体、响应头和响应体的四阶段检查。
- 03支持 IP 与 CIDR 黑名单以及 DNS 黑名单。
- 04基于 MaxMind GeoLite2 数据库的国家和 ASN 封锁。
- 05按 IP 的滑动窗口限流,可配置路径匹配。
- 06支持 Tor 出口节点封锁,规则和黑名单文件支持热加载。
适用场景
- 为 Caddy 站点配置规则集,防御常见 Web 攻击。
- 按国家、ASN、IP 段或 Tor 出口节点封禁访问。
- 在 Caddy 反向代理上对 API 接口进行限流。
- 将 WAF 指标接入 Prometheus 或 Grafana 监控面板。
快速上手
- 1
使用 xcaddy 安装模块
go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest - 2
构建包含 caddy-waf 模块的 Caddy
xcaddy build --with github.com/fabriziosalmi/caddy-waf - 3
验证 WAF 模块已可用
./caddy list-modules | grep waf
使用前须知
- 采用 AGPL-3.0 许可证,这是一种 Copyleft 许可证,未必适合所有部署场景。
- 需要 Go 1.26.0 或更新版本以及 Caddy v2.11.x 或更新版本。
- 可选的 GeoIP 功能需要 MaxMind GeoLite2 数据库文件。
标签
常见问题
- caddy-waf 是什么?
- 面向 Caddy Web 服务器的 Web 应用防火墙中间件,支持正则规则、IP/DNS/GeoIP 过滤和速率限制。 caddy-waf 是一个用 Go 编写的 Caddy HTTP 处理器模块,用正则规则检查请求和响应内容。每条规则带有分值,当请求的累计分数达到可配置的异常阈值时即被拦截。检查覆盖请求头、请求体、响应头和响应体四个阶段。
- caddy-waf 可以免费使用吗?用的什么许可证?
- caddy-waf 以 AGPL-3.0 许可证开源。用于商业产品前,请先确认许可证条款。
- caddy-waf 还在维护吗?
- 活跃维护中。caddy-waf 最近一次提交是在 2026年10月17日。
- caddy-waf 适合用来做什么?
- 为 Caddy 站点配置规则集,防御常见 Web 攻击。 按国家、ASN、IP 段或 Tor 出口节点封禁访问。 在 Caddy 反向代理上对 API 接口进行限流。 将 WAF 指标接入 Prometheus 或 Grafana 监控面板。
- caddy-waf 怎么安装和运行?
- 使用 xcaddy 安装模块: go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest 构建包含 caddy-waf 模块的 Caddy: xcaddy build --with github.com/fabriziosalmi/caddy-waf 验证 WAF 模块已可用: ./caddy list-modules | grep waf
- 在哪里获取 caddy-waf?
- 源代码和安装说明在 GitHub 上:https://github.com/fabriziosalmi/caddy-waf
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
一个轻量的认证与授权服务器,可作为 Traefik、Nginx、Caddy 等反向代理的中间件,也能独立运行为 SSO 登录服务。
自托管家庭服务器平台,兼具安全反向代理、应用管理和统一认证网关功能,内置 MFA 与防机器人保护。
面向 Windows、macOS 和 Linux 的桌面客户端,为 Dropbox、Google Drive、OneDrive 等同步云盘中的文件提供客户端加密。
Google 为开源项目提供的持续模糊测试服务,结合 libFuzzer、AFL++ 等引擎发现安全漏洞与稳定性问题。
用 Rust 编写的安全 Python 沙箱,用于运行 AI 生成的代码,无需容器。