SamWaf v1.3.24 延续了开源、轻量级和私有化部署的定位,并针对网站访问控制、HTTP/2、主机远程爆破防护以及 CDN 回源 IP 暴露等场景补充了实用能力。这个版本也带来了两项需要在升级前确认的变化:默认发布包不再内置 GeoLite2-Country.mmdb IPv6 地理库,中心管理功能已经移除。
升级前先确认两个变化
默认包不再包含 IPv6 地理库
v1.3.24 的默认发布包不再内置 GeoLite2-Country.mmdb。如果现有规则依赖基于国家或地区的 IPv6 地址判断,升级后需要单独准备对应数据库,并按照实际部署方式配置加载路径。
可以先检查发布包中是否存在该文件:
# 将路径替换为实际解压目录
find ./samwaf -type f -name 'GeoLite2-Country.mmdb' -print
如果命令没有输出,不代表 WAF 无法启动,但依赖地理位置匹配的规则需要重新验证。生产环境升级前,建议用一组 IPv4 和 IPv6 测试地址分别验证放行、拦截和日志记录结果。
中心管理功能已移除
该版本不再提供中心管理功能。对于过去依赖统一控制台管理多个实例的部署,需要重新评估运维方式,例如使用配置文件分发、进程管理工具、容器编排或现有的发布系统维护各个 WAF 节点。
这意味着升级不应只替换二进制文件,还应检查以下内容:
- 是否仍有自动化脚本调用中心管理接口;
- 多节点配置是否可以独立启动;
- 证书、白名单、黑名单和 IP 组是否需要逐节点同步;
- 回滚包是否保留了原有运行方式。
网站级访问控制更细化
网站可配置对外 HTTP/2 开关
v1.3.24 新增了网站级对外 HTTP/2 开关。它适合用于逐站点灰度:对已经确认兼容的 HTTPS 网站开启 HTTP/2,对存在老旧客户端、特殊代理链路或排障需求的网站保持关闭。
下面是一个用于表达部署意图的示例配置。字段名是实践示例,实际项目中应以 SamWaf 发布包提供的配置格式为准:
sites:
- name: app.example.internal
listen: 443
tls: true
http2: true
upstream: http://127.0.0.1:8080
- name: legacy.example.internal
listen: 443
tls: true
http2: false
upstream: http://127.0.0.1:8090
改造时需要关注三件事:TLS 证书是否正常、上游应用是否正确处理转发头,以及监控系统是否能够区分 HTTP/1.1 与 HTTP/2 请求。HTTP/2 开启后,连接复用和请求并发行为会变化,应用日志和限流策略也应随之检查。
统一访问认证方式
版本摘要还提到统一访问认证方式。对于需要保护管理入口、内部站点或敏感路径的场景,建议把认证策略按访问边界统一梳理,而不是在不同网站上混用多套容易遗忘的规则。
一种可执行的策略分层如下:
公网业务站点:仅开放业务路径,管理路径要求认证
内部管理站点:认证 + IP 白名单双重限制
健康检查路径:只允许监控网段访问
临时维护页面:短时启用,维护结束后立即撤销
认证本身不能替代权限控制。对外暴露的管理端口仍应限制来源地址,并通过日志审计认证失败、异常频率和可疑地理来源。
针对真实攻击面的防护能力
防止主机远程爆破
新增能力覆盖主机远程爆破防护场景。实际部署时,可以重点观察 SSH、远程管理服务以及 WAF 管理入口的失败登录行为,结合来源 IP、失败次数和时间窗口设置拦截或告警。
需要注意,WAF 规则只能覆盖经过它的流量。SSH 等主机服务通常还需要配合系统防火墙、登录失败封禁工具、密钥认证和最小权限账号。WAF 与主机侧防护应当形成互补,而不是把所有责任交给单一组件。
CDN 回源 IP 威胁情报
CDN 场景中,源站 IP 一旦泄露,攻击者可能绕过 CDN 直接访问源站。v1.3.24 增加 CDN 回源 IP 威胁情报相关能力,适合纳入以下检查流程:
- 盘点 DNS、证书透明度、历史资产和错误页面中是否泄露源站地址;
- 将已确认的 CDN 回源 IP 纳入威胁情报或访问控制规则;
- 让源站只接受 CDN 回源网段和必要的运维地址;
- 观察直连源站请求是否仍然出现,并核对 WAF 日志。
规则上线前应避免直接封禁整个 CDN 地址段。共享 CDN 网络可能承载多个租户,误封会造成业务中断。更稳妥的做法是先以观察模式验证命中情况,再逐步切换到拦截。
IP 订阅、泛解析与 IP 组
版本新增 IP 订阅能力,并支持 IP 黑白名单泛解析。IP 组还可以绑定 IP 白名单、IP 黑名单以及自定义规则,适合把重复的地址集合从单条规则中抽离出来统一维护。
可以这样组织规则对象:
ip_groups:
trusted_monitoring:
type: whitelist
entries:
- 192.0.2.10
- 198.51.100.0/24
known_attackers:
type: blacklist
subscription: https://threat-feed.example.invalid/list.txt
rules:
- name: allow-monitoring
source_group: trusted_monitoring
action: allow
- name: block-known-attackers
source_group: known_attackers
action: block
上面的地址和订阅地址仅用于说明配置思路,不能直接作为生产规则。实际接入 IP 订阅时,应确认订阅来源、更新频率、格式校验和失败回退策略。订阅服务不可用时,系统应继续使用最近一次经过校验的有效列表,避免因空列表或错误内容导致防护策略瞬间失效。
泛解析也需要谨慎使用。它可以减少重复维护,但范围过宽时可能把测试环境、管理地址或共享入口一并纳入规则。建议按业务边界拆分 IP 组,并为每次变更保留审计记录。
一份可执行的升级检查清单
部署 SamWaf v1.3.24 前,可以按下面顺序进行验证:
- 备份当前配置、证书、规则和日志;
- 确认业务是否依赖中心管理功能;
- 检查
GeoLite2-Country.mmdb是否需要单独准备; - 在测试站点开启和关闭 HTTP/2,验证客户端与上游兼容性;
- 统一管理入口和敏感路径的认证策略;
- 为远程爆破防护设置观察、告警和拦截阶段;
- 核对 CDN 回源 IP 情报,避免误封共享地址段;
- 为 IP 订阅配置格式校验、更新失败回退和变更审计;
- 使用真实 IPv4、IPv6、CDN 回源和管理网段流量进行回归测试;
- 保留可启动的旧版本包和明确的回滚步骤。
SamWaf v1.3.24 的价值不只在于新增了几个开关和规则类型,更在于它把网站级协议控制、认证、来源地址管理和 CDN 场景纳入了同一套私有化防护流程。对于中小规模站点,升级时应优先从配置兼容性、规则误拦截和运维替代方案入手,再逐步启用 HTTP/2、IP 订阅和威胁情报能力。