Caddy 配置 WAF防火墙
Caddy是一个功能强大的 Web 中间件,但是Caddy 并不自带安全防护功能,但是可以通过第三方模块来增强网站的安全性,例如 Coraza WAF ,这篇文章将使用 Coraza WAF 插件以及 OWASP CRS 规则集来增强网站的安全性。
安装 Coraza WAF 插件
这里需要确保 Caddy 安装了 Coraza WAF 插件,以便能够使用 CRS 规则集。
Caddy 支持通过官方插件库安装插件,也可以通过 xcaddy
构建工具来安装插件,xcaddy
是一个用来编译和构建 Caddy 自定义版本的工具,支持在 Caddy 中安装额外插件,如果有定制化需求可以选择使用 xcaddy
。
1 | caddy add-package github.com/corazawaf/coraza-caddy # 通过官方插件库 |
[card title=”注意……” color=”warning”] 如果采用 xcaddy
需要提前安装好 Go 环境。[/card]
下载 OWASP CRS 规则集
这里我选择放到
/etc/coreruleset
目录下
1 | git clone https://github.com/coreruleset/coreruleset.git /etc/coreruleset |
克隆完成之后将里面的crs-setup.conf.example
重命名为 coraza.conf-recommended
配置 Caddyfile
下面是一个参考例子
1 | wanghaoyu.com.cn { |
基本配置说明:
- **
coraza_waf
**:将 WAF 集成到 Caddy 的请求处理流程 - **
Include
**:用于加载 CRS 默认配置和防护规则 - **
SecRuleEngine On
**:启用规则引擎,确保请求会经过防火墙的检查和过滤。 - **
reverse_proxy
**:反代后端节点,将wanghaoyu.com.cn
的流量请求转发到 localhost:8080 当然 这只是个例子
安全头
为了增强一下安全性,可以配置一下 HTTP 响应头,防止常见攻击,这个部分是可选的。
1 | header { |
验证配置
Caddy 提供了一个工具用来检查配置文件是否正确的,类似于 nginx -t
1 | caddy validate --config /etc/caddy/Caddyfile |
如果配置没问题的话会返回 Valid configuration
证明这是个有效的配置。
参考:
All articles on this blog are licensed under CC BY-NC-SA 4.0 unless otherwise stated.
Comments