步骤一:添加防护域名(云模式-CNAME接入)
该章节指导您将网站域名以CNAME接入的方式添加到Web应用防火墙,并完成域名接入,使网站流量切入WAF。域名接入WAF后,WAF作为一个反向代理存在于客户端和服务器之间,服务器的真实IP被隐藏起来,Web访问者只能看到WAF的IP地址。
如果您已开通企业项目,您可以在“企业项目”下拉列表中选择您所在的企业项目,在该企业项目下添加防护域名。
前提条件
已购买WAF云模式。
约束条件
规格限制
将网站接入WAF后,网站的文件上传请求限制为10G。
系统影响
如果配置了非标准端口,访问网站时,需要在网址后面增加非标准端口进行访问,否则访问网站时会出现404错误。
操作步骤
- 登录管理控制台。
- 单击管理控制台左上角的,选择区域或项目。
- 单击页面左上方的,选择 。
- 在左侧导航树中,选择“网站设置”,进入“网站设置”页面。
- 在网站列表左上角,单击“添加防护网站”。
- 选择“云模式-CNAME接入”并单击“确定”。
- 配置“域名信息”,如图1所示。
- “网站名称”:可选参数,自定义网站名称。
- “防护域名”:需要添加到WAF进行防护的域名,支持单域名(例如,一级域名example.com,二级域名www.example.com等)和泛域名(例如,*.example.com)。
如果您的域名托管在华为云云解析服务上,您可以直接单击“快速添加云内域名”,在弹出的“选择域名”对话框中选择待防护的域名,单击“确定”,托管的域名信息将自动添加到防护域名配置框中。
- 泛域名添加说明如下:
- “防护域名”配置为“*”时,只能防护除80、443端口以外的非标端口。
- 如果各子域名对应的服务器IP地址相同:输入防护的泛域名。例如:子域名a.example.com,b.example.com和c.example.com对应的服务器IP地址相同,可以直接添加泛域名*.example.com。
- 如果各子域名对应的服务器IP地址不相同:请将子域名按“单域名”方式逐条添加。
- 泛域名添加说明如下:
- “网站备注”:可选参数,网站的备注信息。
- 源站配置,如图2所示,参数说明如表1所示。
表1 基本信息参数说明 参数
参数说明
取值样例
防护域名端口
在下拉框中选择面要防护的端口。
配置80/443端口,在下拉框中选择“标准端口”。
Web应用防火墙支持的端口请参见WAF支持的端口范围。
说明:如果配置了除80/443以外的其他端口,访问网站时,需要在网址后面增加非标准端口进行访问,否则访问网站时会出现404错误。
81
服务器配置
网站服务器地址的配置。包括对外协议、源站协议、源站地址、源站端口和权重。
- 对外协议:客户端请求访问服务器的协议类型。包括“HTTP”、“HTTPS”两种协议类型。
“对外协议”选择“HTTPS”时,支持开启HTTP2协议。
- 源站协议:Web应用防火墙转发客户端请求的协议类型。包括“HTTP”、“HTTPS”两种协议类型。
说明:
- 对外协议与源站协议的具体配置规则,请参见示例四:不同访问模式的协议配置规则。
- WAF支持WebSocket/WebSockets协议,且默认为开启状态。
- 源站地址:客户端访问的网站服务器的公网IP地址(一般对应该域名在DNS服务商处配置的A记录)或者域名(一般对应该域名在DNS服务商处配置的CNAME)。支持以下两种IP格式:
- IPv4,例如:XXX.XXX.1.1
- IPv6,例如:fe80:0000:0000:0000:0000:0000:0000:0000
须知:仅专业版和铂金版支持IPv6防护。
- 源站端口:WAF转发客户端请求到服务器的业务端口。
- 权重:负载均衡算法将按权重将请求分配给源站。
对外协议:HTTP
源站协议:HTTP
源站地址: XXX .XXX.1.1
源站端口:80
证书名称
“对外协议”设置为“HTTPS”时,需要选择证书。您可以选择已创建的证书或选择导入的新证书。导入新证书的操作请参见导入新证书。
成功导入的新证书,将添加到“证书管理”页面的证书列表中。有关证书管理的操作,请参见上传证书。
您也可以在CCM管理控制台购买证书并推送到WAF。有关CCM证书推送到WAF的详细操作,请参见推送证书到云产品。
须知:--
- 对外协议:客户端请求访问服务器的协议类型。包括“HTTP”、“HTTPS”两种协议类型。
- 高级配置,如图3所示。
- “IPv6防护”:若该域名存在IPv6协议的访问请求,请选择“开启”,开启后WAF将为域名分配IPv6的接入地址。
- “源站地址”选择“IPv6”时,默认开启“IPv6防护”。
- “源站地址”选择“IPv4”时,开启“IPv6防护”后,WAF将为域名分配IPv6的接入地址,即将IPv4源站转化成IPv6网站,将外部IPv6访问流量转化成对内的IPv4流量。
当源站存在IPv6地址,默认开启IPv6防护。WAF为了防止客户IPv6的业务中断,禁止关闭IPv6的开关,如果确定不需要IPv6防护,需要先修改服务器配置,在源站删除IPv6的配置,具体的操作方法请参见修改服务器配置信息。
- 配置“负载均衡算法”:
- 源IP Hash:将某个IP的请求定向到同一个服务器。
- 加权轮询:所有请求将按权重轮流分配给源站服务器,权重越大,回源到该源站的几率越高。
- Session Hash:将某个Session标识的请求定向到同一个源站服务器,请确保在域名添加完毕后配置攻击惩罚的流量标识,否则Session Hash配置不生效。
更多信息请见修改负载均衡算法。
- 选择“是否已使用代理”。
- 七层代理:使用了DDoS高防(七层代理)、CDN、云加速等Web代理产品。
- 四层代理:使用了DDoS高防(四层转发)等Web代理产品。
- 无代理:未使用任何代理产品。
- 当在Web应用防火墙前使用代理时,不能切换为“Bypass”工作模式。如何切换工作模式请参考切换工作模式。
- 如果网站未使用任何代理,而“是否已使用代理”选择了“七层代理”或者“四层代理”,该配置仅会使WAF在获取真实源IP时信任HTTP请求头中的“X-Forwarded-For”字段,不影响用户业务。
- 选择“七层代理”后,WAF将从配置的Header头中字段中获取用户真实访问IP,,详见配置攻击惩罚的流量标识。
- “HTTP2协议”:如果您的网站需要支持HTTP2协议的访问,则选择“使用”。
HTTP2协议仅适用于客户端到WAF之间的访问,且“对外协议”必须包含HTTPS才支持使用。
- “服务器配置”中至少有一条源站地址的“对外协议”配置为HTTPS,开启后才会生效。
- 当客户端最大支持TLS 1.2时,HTTP2才生效。
- 选择“策略配置”:默认为“系统自动生成策略”,您也可以选择自定义防护策略,系统自动生成的策略相关说明如表2所示。
标准版只能选择“系统自动生成策略”。
您也可以选择已创建的防护策略或在域名接入后根据防护需求配置防护规则。
表2 系统自动生成策略说明 版本
防护策略
策略说明
标准版
Web基础防护(“仅记录”模式、常规检测)
仅记录SQL注入、XSS跨站脚本、远程溢出攻击、文件包含、Bash漏洞攻击、远程命令执行、目录遍历、敏感文件访问、命令/代码注入等攻击行为。
专业版、铂金版
Web基础防护(“仅记录”模式、常规检测)
仅记录SQL注入、XSS跨站脚本、远程溢出攻击、文件包含、Bash漏洞攻击、远程命令执行、目录遍历、敏感文件访问、命令/代码注入等攻击行为。
网站反爬虫(“仅记录”模式、扫描器)
仅记录漏洞扫描、病毒扫描等Web扫描任务,如OpenVAS、Nmap的爬虫行为。
“仅记录”模式:发现攻击行为后WAF只记录攻击事件不阻断攻击。
- “IPv6防护”:若该域名存在IPv6协议的访问请求,请选择“开启”,开启后WAF将为域名分配IPv6的接入地址。
- 单击“确认”,添加域名完成。
可根据界面提示,完成放行WAF回源IP、本地验证和域名接入配置操作,建议单击“稍后”。后续参照步骤四:放行WAF回源IP、步骤二:本地验证和步骤三:修改域名DNS解析设置完成相关操作。图4 添加域名完成
生效条件
- 默认情况下,WAF每隔一小时就会自动检测每个防护域名的“接入状态”。
- 一般情况下,如果您确认已完成域名接入,“接入状态”为“已接入”,表示域名接入成功。
如果防护域名已接入WAF,“接入状态”仍然为“未接入”,可单击,刷新状态,如果仍然为“未接入”,可参照步骤三:修改域名DNS解析设置重新完成域名接入。
导入新证书
当“对外协议”设置为“HTTPS”时,可以导入新证书。
- 单击“导入新证书”,打开“导入新证书”对话框。然后输入“证书名称”,并将证书内容和私钥内容粘贴到对应的文本框中,如图5所示。
Web应用防火墙将对私钥进行加密保存,保障证书私钥的安全性。
WAF当前仅支持PEM格式证书。如果证书为非PEM格式,请参考表3在本地将证书转换为PEM格式,再上传。表3 证书转换命令 格式类型
转换方式
CER/CRT
将“cert.crt”证书文件直接重命名为“cert.pem”。
PFX
- 提取私钥命令,以“cert.pfx”转换为“key.pem”为例。
openssl pkcs12 -in cert.pfx -nocerts -out key.pem -nodes
- 提取证书命令,以“cert.pfx”转换为“cert.pem”为例。
openssl pkcs12 -in cert.pfx -nokeys -out cert.pem
P7B
- 证书转换,以“cert.p7b”转换为“cert.cer”为例。
openssl pkcs7 -print_certs -in cert.p7b -out cert.cer
- 将“cert.cer”证书文件直接重命名为“cert.pem”。
DER
- 提取私钥命令,以“privatekey.der”转换为“privatekey.pem”为例。
openssl rsa -inform DER -outform PEM -in privatekey.der -out privatekey.pem
- 提取证书命令,以“cert.cer”转换为“cert.pem”为例。
openssl x509 -inform der -in cert.cer -out cert.pem
- 执行openssl命令前,请确保本地已安装openssl。
- 如果本地为Windows操作系统,请进入“命令提示符”对话框后,再执行证书转换命令。
- 提取私钥命令,以“cert.pfx”转换为“key.pem”为例。
- 单击“确认”,上传证书。
配置示例
不同场景的配置示例请参考配置示例:添加防护域名。