如果您的业务未配置负载均衡,建议通过 CNAME 方式接入云 WAF 实例。在火山引擎 Web 应用防火墙控制台配置防护域名参数和 WAF 回源参数后,您只需要修改防护域名的 DNS 解析记录并放行火山引擎 Web 应用防火墙的回源 IP 地址,即可完成域名的安全防护配置。本文介绍通过 CNAME 接入防护的操作步骤。
前提条件 您已创建云 WAF 实例。创建相关操作,请参考创建 WAF 实例 。 所需防护域名已备案,且未添加到云 WAF 实例。备案相关操作,请参考备案流程 。
注意事项 WAF CNAME 接入支持 WebSocket 和 WebSockets 协议,且默认为启用状态,暂不支持关闭。
流程说明
步骤一:添加域名 登录 Web 应用防火墙控制台 。
在顶部菜单栏选择实例所属地域。
在左侧导航选择网站设置 ,然后单击新建站点 。
选择接入方式为 CNAME 。
填写要接入 WAF 的网站基础信息,包括网站配置 、接入能力 、源站配置 和回源能力 。
参数
说明
配置示例
网站配置
防护域名
填写需要接入防护的域名,支持泛域名或精准域名。域名须经过 ICP 备案 ,未备案域名将无法正常添加。
说明
如需同时配置泛域名和域名主体本身,请分别配置。如:需要同时配置*.b.a.com
和b.a.com
,需要分别接入域名并配置策略。
www.test.com
协议类型
需要接入 WAF 的网站所使用的通信协议,可选 HTTP、HTTPS 协议,勾选目标协议后,可在协议下方的输入框输入端口号。
协议选择:勾选 HTTPS 协议后需要选择对应证书。如只勾选 HTTPS 协议,则 HTTP 请求将默认重定向至 HTTPS。 端口号配置:
HTTP 协议默认支持 80 端口,HTTPS 默认支持 443 端口。 协议支持配置的端口数量因版本而异。 端口号输入后按回车键可继续输入其他端口号。 支持编辑或删除已输入的端口号。 注意
输入的端口号需在可添加端口范围内且不能重复,单击查看可添加端口 可搜索查看对应协议下可添加的端口号。
更多设置:
协议跟随:开启后,访问请求的“回源协议”与“访问协议”保持一致。为保证正常回源,请同时选中 HTTP 和 HTTPS 并确认源站支持已选中的协议类型。 HTTP 2.0:开启前需要勾选 HTTPS 协议类型,开启后支持 HTTP 2.0 协议接入防护,以 HTTP 1.0/1.1 协议转发回源。 IPv6 防护:开启后支持对 IPv6 客户端请求的防护,可在回源配置中配置 IPv4 和 IPv6 源站地址。开启协议跟随后,IPv4 请求将转发 IPv4 源站,IPv6 请求转发 IPv6 源站。 HTTP:80、81 HTTPS:443、4443 协议跟随:关闭 HTTP 2.0:关闭 IPv6 防护:关闭 证书选择
勾选 HTTPS 协议后需要选择对应证书,支持选择已上传的证书或者新增证书。
因启用 HTTPS 协议,故需要选择相关证书
日志采集
选择当前域名的日志服务的启用状态。
开启 :域名规则创建完成后开始采集该域名产生的日志数据。关闭 :域名规则创建完成后不会采集该域名产生的日志数据。说明
如果需要开启日志服务,需要先完成 WAF 访问日志服务的跨服务授权,让 WAF 服务获取日志采集和存储权限。
开启日志采集
DDoS 原生防护
如您需要对实例开启 DDoS 原生防护,可启用该功能,并选择相关 DDoS 原生防护实例。
注意
如您在之前配置并开启了 WAF 关联 EIP 实例的云防火墙防护策略,在您选择开启 DDoS 原生防护(企业版)后,WAF 的 EIP 会被与 DDoS 原生防护(企业版)关联的增强型防护 EIP 替代,此时 WAF 实例不受已有的云防火墙防护策略保护。如需要开启云防火墙防护,请重新配置。
暂不开启
接入能力
代理配置
需要配置的网站在接入 WAF 前是否使用了高防、CDN 等七层代理。
否 :WAF 前没有配置代理,WAF 取与 WAF 建立连接的 IP(取 X-Real-Ip)作为客户端 IP。是 :WAF 前配置了代理,表示 WAF 收到的业务请求来自其他七层代理服务转发,而非直接来自发起请求的客户端,需要进一步配置客户端 IP 判定方式。
X-Forwarded-For 字段获取客户端真实 IP:通过 X-Forwarded-For 字段中第一个公网 IP 地址作为客户端真实 IP 地址。注意
该方式存在攻击者伪造 X-Forwarded-For 字段的风险。
自定义 Header 字段:按匹配字段添加顺序获取客户端 IP 并将其作为客户端真实 IP 。如匹配字段无法获取客户端 IP,则将通过 X-Forwarded-For 字段获取;如 X-Forwarded-For 字段由于伪造非法 IP 无法获取,则取 X-Real-Ip 字段作为客户端 IP。说明
单实例每域名最多可配置 5 个自定义 Header 字段。
否
TLS 配置
如果勾选了 HTTPS 协议类型,需设置 TLS 参数,即设置允许使用的 TLS 协议版本和加密套件,不匹配的请求将默认被丢弃。为提升业务安全和兼容性,建议您使用系统默认配置。
TLS 协议 :默认全选。注意
修改时至少选择一个协议版本,暂不支持单独选中 TLSv1.3 版本。 选择多个版本时需注意版本号需要保持连续。例如,您不能仅选择 TLSv1 和 TLSv1.3。 加密套件 :默认选择全部加密套件。注意
使用未被选中的加密套件的请求将无法正常访问,请谨慎修改。
保持默认(全选)
长连接
配置客户端与 WAF 之间的长连接限制。
长连接保持时间:客户端与 WAF 之间的长连接保持时间。默认为 75 秒,支持配置 0~900 秒。 复用长连接请求数:单个已建立的 TCP 连接上可以重复发送多个请求的个数。默认为 100 个,支持配置 60~1000 个。 保持默认:
长连接保持时间:75 秒 复用长连接请求数:100 个 请求 Body 最大值
可接收客户端请求正文的最大值。默认为 60 MB,支持配置 1~10240 MB。
保持默认:60 MB
源站配置
回源方式
公网回源:回源地址为公网 IP。 VPC 内私有 IP 地址:回源地址为私有 IP,需选择对应火山引擎 VPC。 公网回源
负载均衡
加权轮询(WRR):权重值越高的后端服务器,被轮询到的次数(概率)越高。 加权最小连接数(WLC):将请求分发给“当前连接/权重”比值最小的后端服务器。 源地址哈希(SH):基于源 IP 地址的一致性哈希,相同源地址的请求会调度到相同的后端服务器。 加权轮询
源站配置
分组:
默认分组:默认包含全部未自定义配置回源规则的接入端口。当自定义分组规则未命中,默认匹配默认分组规则。 自定义分组:
单击添加 可生成一个自定义分组,需要配置生效的端口范围。 支持编辑自定义分组名称,不超过 15 个字符,支持中文、英文、数字和下划线。 支持删除自定义分组,删除分组后将清空组内回源配置,并对组内接入端口按照默认分组配置执行回源操作。 接入端口配置:
默认分组的接入端口范围为全部未自定义配置回源规则的接入端口。 自定义分组支持在添加的端口范围内选择多个目标接口。不同自定义分组间不得重复选择。 说明
例如,您在网站配置中选择了 HTTP 协议下的80
、81
、82
、83
端口,和 HTTPS 协议下的443
、4443
端口,且在源站配置的自定义分组 1 中选择了 HTTP 协议下的80
和81
端口,则余下的82
、83
、443
和4443
端口都将适用默认分组的回源规则配置。
源站地址配置:
源站协议:即从 WAF 回源至源站的回源协议,支持 HTTP/HTTPS 回源。注意
未开启协议跟随时,同一地域下不同分组间的源站协议将全局保持一致。例如:您将自定义分组中的某源站配置的协议设置为 HTTP 协议,则所有分组(包括默认分组)下的源站协议都将设置为 HTTP 协议。
源站地址:需要接入 WAF 的网站所提供服务的源站 IP 地址。 源站端口:源站地址对应的端口。 权重:表示后端服务器收到请求的概率,支持设置 1-100 的任意整数。说明
权重数字不直接代表比重。
如您希望多个源站的轮询概率相同,可设置同样的权重值。
源站权重之和可以大于 100。
当负载均衡算法为加权轮询时,每个源站被轮询的概率为(该源站的权重)/(源站组中所有源站权重之和)。因此权重越大,收到请求的概率越大。 当负载均衡算法为加权最小连接数时,计算数值为(当前连接数)/(该源站的权重),值最小的源站收到请求的概率最大。 当监听器调度算法为源地址哈希时,无需配置权重。 说明
由于网站配置勾选了 HTTP 和 HTTPS 协议,并且开启了协议跟随,所以需要分别配置支持 HTTP 和 HTTPS 协议的源站信息。
例如:
在默认分组中,添加以下 2 条源站配置。
源站 1 :
源站协议:HTTP 源站地址:192.1.. 源站端口:80 权重:100 源站 2:
源站协议:HTTPS 源站地址:192.2.. 源站端口:443 权重:40 说明
由于负载均衡算法为加权轮询
,源站 1(权重为 100) 的轮询概率更高。
回源能力
建立超时时间
WAF 和后端服务器的建连超时时间,建议大于健康检查超时时间。默认为 4 秒,支持配置 4~120 秒。
保持默认:4 秒
写连接超时时间
WAF 将请求传输给后端服务器的超时时间。默认为 60 秒,支持配置 30~3600 秒。
保持默认:60 秒
读连接超时时间
WAF 从后端服务器读取响应的超时时间。默认为 60 秒,支持配置 30~3600 秒。
保持默认:60 秒
回源长连接
WAF 回源时,长连接可复用的个数。默认为 100 个,支持配置 60~1000 个。
保持默认:100 个
回源重试
WAF 回源失败后,可重试的次数。默认为 3 次,支持配置 1~10 次。
保持默认:3 次
空闲长连接超时时间
WAF 与后端服务器建立请求的长连接空闲时间。默认为 15 秒,支持配置 1~60 秒。
保持默认:15 秒
单击提交 。
站点添加成功后,WAF 会在页面返回防护域名的 CNAME 值和 WAF 的回源 IP 地址。
步骤二:放行 WAF 回源 IP 在业务接入 Web 应用防火墙之后,所有的请求都会通过 WAF 的回源 IP 段返回到源站。这会导致每个回源 IP 上的请求量增加,从而容易触发安全策略的误拦截或限速,因此需要对 WAF 的回源 IP 段进行放行。
如果源站已经配置了防火墙或安装了安全软件,您复制以下回源 IP 地址,并将它们添加到源站的防火墙、访问控制列表(ACL)或者其他任何安全软件的白名单中。这样可以确保回源 IP 不会受到源站安全策略的影响。
您可以在添加完成后的返回页面,单击复制全部 IP 地址 ,获取需要放行的回源 IP 信息。
步骤三:验证转发配置 建议您在放行回源 IP 后,验证 WAF 实例的业务转发配置是否生效,避免因配置未生效导致业务切换过程中发生中断。验证操作详情请参见验证转发配置 。
步骤四:修改域名 DNS 访问 Web 应用的 DNS 解析服务商,将 DNS 服务记录类型设置为 CNAME,将记录值修改为刚获取到的 WAF CNAME 值。
待 DNS 解析生效后,防护域名的请求流量就会转发到 WAF。您可以在网站设置 页面查看添加的网站信息,接入成功的网站状态和防护模式如下。
步骤五:设置防护策略 域名接入后,默认开启漏洞防护策略(正常模式)。您也可自定义其他防护策略,关于防护策略设置的更多详情,请参见防护策略类型 。
说明
默认开启的漏洞防护策略将执行观察动作,即放行请求流量,但会将请求行为上报至攻击日志。
下文以配置一条黑名单防护策略,限制 IP 地址192.1.1.1
的访问请求为例。
登录 Web 应用防火墙控制台 。
在顶部菜单栏选择实例所属地域。
在左侧导航选择防护策略>访问管控 。
开启待防护域名的黑名单访问功能。
在页面上方选择需要添加访问黑名单策略的域名。 单击访问黑名单 。 开启策略启用开关。 单击添加黑名单 ,配置规则参数。
参数
说明
配置示例
基本信息
规则名称
防护规则名称。
说明
以中文、字母、数字开头。 允许字母、数字、中文、点“.”、下划线“_”和短横线“-”。 长度为 1-128 个字符。 Block_rule1
规则描述
填写规则相关备注信息,例如拦截原因。
拦截对应 IP 的访问
防护域名
选择域名:选择已经接入防护的域名,支持选择多个域名。 选择域名组:选择已经创建的域名组,支持选择多个域名组。 选择域名组
规则条件
IP 地址
手动添加:手动输入需要加为白名单的 IP 地址,支持输入单个 IP 地址、IP 地址段或全部 IP 地址(*)。 引用地址组:选择已经创建的 IP 地址组,支持选择多个地址组。 选择地理位置:勾选需要限制的 IP 来源区域,支持选择多个区域。 手动添加:192.1.1.1
特征描述
请求路径:填写需要拦截 IP 地址的网站路径,可以是具体的某个页面 URL,也可以针对整个网站。
某个具体的 URL 地址,例如需要拦截对test.com/test.html
路径的访问,则填写 /test.html
。 针对整个网站,则填写/*
即可。 支持填写通配符*
,仅可出现一次,例如/test/*
。 多个网站路径可用英文逗号分隔。 添加条件:设置其他匹配字段、逻辑符和匹配内容。
匹配字段:选择匹配字段,目前支持请求协议、请求 uri、请求方法、请求路径、请求参数、请求头等字段。 逻辑符:选择逻辑符,目前支持大于、大于等于、等于、小于、小于等于、不等于等逻辑关系。 匹配内容:填写该条规则需要匹配的具体内容。 多个条件之间为“且”的关系,即当多个条件都满足,方可触发规则。 例如,拦截来自访问源 IP 地址至/test.html
路径,且请求方法为POST
的访问请求,则可以设置以下特征:
请求路径
等于
/test.html
请求方法
等于
POST
请求路径:/test.html 添加条件:请求方法
等于
POST
执行动作
观察:放行请求流量,但会将请求行为上报至攻击日志。 拦截:拦截请求流量,将请求行为上报至攻击日志。如果配置了自定义拦截响应页面,WAF 会将配置的拦截响应页面信息返回给客户端。 拦截
生效配置
规则开关
开启或关闭当前规则。
开启
单击确定 ,完成规则配置。
配置完成后,则所有来自源 IP 192.1.1.1
的访问请求都将被拦截,且在攻击日志中可查看对应记录。
后续操作