← 全部对比

CasWAF 与 ModSecurity 对比

ModSecurity 不是装好就能点开用的产品。它是一个 WAF 引擎 libmodsecurity,由Web服务器加载:服务器还要你自己选,规则要自己写或导入,证书要自己管,请求被拦了还要找地方看。CasWAF 是另一种形态:一个程序同时是代理、防火墙和管理界面,跑的是 ModSecurity 自己的 SecLang 规则,引擎换成了 Coraza。

一览

CasWAFModSecurity
是什么反向代理、防火墙和管理界面,一个程序由Web服务器加载的 WAF 引擎
许可证Apache-2.0Apache-2.0
用什么写的Go,规则跑在 Coraza 上C++,另有 Apache、Nginx、IIS 的连接器
规则跑在哪网关进程里,Coraza 上Web服务器里,通过连接器
站点和证书在管理界面里,按域名用 Let’s Encrypt交给Web服务器和 Certbot 之类
管理界面和记录自带,有看板和告警没有,日志送到哪里就在哪里看
单点登录Casdoor,管理界面和受保护站点共用没有用户的概念

CasWAF 不一样的地方

引擎周围的部分都带了

站点、跳转、证书、请求记录、看板和告警都在同一个程序里。用 ModSecurity 时这些要自己从Web服务器、Certbot、日志采集和日志查看工具里拼出来。

同一种规则语言,只放在一个地方

SecRule 写在管理界面的规则里,和写在 ModSecurity 配置里一样,由 Coraza 执行。已经会写的规则可以照用,省掉外面那层服务器配置。

多节点一个库

每个网关节点读同样的站点、证书和规则,在一台机器上加的规则在所有机器上生效。用 ModSecurity 时每台服务器的配置各管各的。

登录不用另外做

管理界面用 Casdoor 做多因素认证、LDAP、SAML 和第三方登录,同一个登录可以保护任何站点。ModSecurity 没有用户的概念。

Windows 是一等目标

CasWAF 在 Windows 和 Linux 上都是单个可执行文件。ModSecurity 在 Windows 上只有 IIS 连接器,路窄得多。

ModSecurity 领先的地方

语言是它定义的

SecLang 来自 ModSecurity v3,以及更早的 v2 Apache 模块。新的指令和操作符先出现在那里,Coraza 是照着实现这门语言,而不是定义它。

指令支持更全

Coraza 覆盖了真实规则集用到的指令和操作符,但不等于每一条都支持。一套很大、很特别的 ModSecurity 配置,行为要测过才能确认一致。

能嵌进 Apache 和 IIS

v2 模块跑在 Apache 进程里,还有 IIS 连接器。CasWAF 始终是挡在应用前面的代理,部署形态不同。

二十年的检验

ModSecurity 被审计、被部署、被打穿的时间长得多,OWASP Core Rule Set 也是为它写和调的。这段历史本身就有价值。

怎么选

  • 已经在跑 Nginx 或 Apache,只要那个引擎:ModSecurity 加 Core Rule Set。
  • 想把代理、证书、规则、记录和管理界面放在一起:CasWAF。
  • 有一套信得过的 ModSecurity 规则:CasWAF 用 Coraza 跑 SecLang,但先测一遍。
  • 防火墙必须在 Apache 或 IIS 进程里:ModSecurity。

相关页面

在一台机器上试试 CasWAF

需要 Go、Node.js 和 MySQL,管理界面还要一个 Casdoor 应用,网关默认监听 17000 端口。