步骤一:添加防护域名(云模式)
该章节指导您将网站域名以CNAME接入的方式添加到Web应用防火墙,并完成域名接入,使网站流量切入WAF。域名接入WAF后,WAF作为一个反向代理存在于客户端和服务器之间,服务器的真实IP被隐藏起来,Web访问者只能看到WAF的IP地址。
前提条件
已申请WAF云模式。
约束条件
- 主账号可以查看子账号添加的域名,但子账号不能查看主账号添加的域名。
- 同一防护域名不能重复添加到WAF云模式。
同一个域名对应不同非标准端口视为不同的防护对象,例如www.example.com:8080和www.example.com:8081为两个不同的防护对象,且占用两个域名防护配额。如果您需要防护同一域名的多个端口,您需要将该域名和端口逐一添加到WAF。
- WAF支持防护多级别单域名(例如,一级域名example.com,二级域名www.example.com等)和泛域名(例如,*.example.com)。
- WAF不支持添加带有下划线(_)的泛域名。
- 泛域名添加说明如下:
- 如果各子域名对应的服务器IP地址相同:输入防护的泛域名。例如:子域名a.example.com,b.example.com和c.example.com对应的服务器IP地址相同,可以直接添加泛域名*.example.com。
- 如果各子域名对应的服务器IP地址不相同:请将子域名按“单域名”方式逐条添加。
- WAF不支持自定义防护域名的HTTP Header消息头。
- CNAME值是根据域名生成的,对于同一个域名,其CNAME值是一致的。
- WAF当前仅支持PEM格式证书。
- WAF支持WebSocket协议,且默认为开启状态。
- “对外协议”选择“HTTP”时,默认支持WebSocket
- “对外协议”选择“HTTPS”时,默认支持WebSockets
规格限制
将网站接入WAF后,网站的文件上传请求限制为10G。
系统影响
如果配置了非标准端口,访问网站时,需要在网址后面增加非标准端口进行访问。
操作步骤
- 登录管理控制台。
- 单击管理控制台左上角的,选择区域或项目。
- 单击页面左上方的,选择 。
- 在左侧导航树中,选择“网站设置”,进入“网站设置”页面。
- 在网站列表左上角,单击“添加防护网站”。
- 选择“云模式”并单击“确定”。
- 在“防护域名”文本框中输入防护域名后,单击“确认”。
防护域名支持多级别单域名(例如,一级域名example.com,二级域名www.example.com等)和泛域名(例如,*.example.com)。
- 泛域名添加说明如下:
- “防护域名”配置为“*”时,只能防护除80、443端口以外的非标端口。
- 如果各子域名对应的服务器IP地址相同:输入防护的泛域名。例如:子域名a.example.com,b.example.com和c.example.com对应的服务器IP地址相同,可以直接添加泛域名*.example.com。
- 如果各子域名对应的服务器IP地址不相同:请将子域名按“单域名”方式逐条添加。
- 泛域名添加说明如下:
- 配置“域名信息”,如图1所示。
- “网站名称”:可选参数,自定义网站名称。
- “防护域名”:需要添加到WAF进行防护的域名,支持单域名(例如,一级域名example.com,二级域名www.example.com等)和泛域名(例如,*.example.com)。
- “网站备注”:可选参数,网站的备注信息。
- 源站配置,如图2所示,参数说明如表1所示。
表1 基本信息参数说明 参数
参数说明
取值样例
防护域名端口
在下拉框中选择面要防护的端口。
配置80/443端口,在下拉框中选择“标准端口”。
81
服务器配置
网站服务器地址的配置。包括对外协议、源站协议、源站地址、源站端口。
- 对外协议:客户端请求访问服务器的协议类型。包括“HTTP”、“HTTPS”两种协议类型。
“对外协议”选择“HTTPS”时,支持开启HTTP2协议。
- 源站协议:Web应用防火墙转发客户端请求的协议类型。包括“HTTP”、“HTTPS”两种协议类型。
说明:
- 对外协议与源站协议的具体配置规则,请参见示例四:不同访问模式的协议配置规则。
- WAF支持WebSocket/WebSockets协议,且默认为开启状态。
- 源站地址:客户端访问的网站服务器的公网IP地址(一般对应该域名在DNS服务商处配置的A记录)或者域名(一般对应该域名在DNS服务商处配置的CNAME)。
- 源站端口:WAF转发客户端请求到服务器的业务端口。
对外协议:HTTP
源站协议:HTTP
源站地址: XXX .XXX.1.1
源站端口:80
证书名称
“对外协议”设置为“HTTPS”时,需要选择证书。您可以选择已创建的证书或选择导入的新证书。导入新证书的操作请参见导入新证书。
成功导入的新证书,将添加到“证书管理”页面的证书列表中。有关证书管理的操作,请参见上传证书。
须知:- WAF当前仅支持PEM格式证书。如果证书为非PEM格式,请参考表3将证书转换为PEM格式,再上传。
- 如果您的证书即将到期,为了不影响网站的使用,建议您在到期前重新使用新的证书,并在WAF中同步更新网站绑定的证书。
- 域名和证书需要一一对应,泛域名只能使用泛域名证书。如果您没有泛域名证书,只有单域名对应的证书,则只能在WAF中按照单域名的方式逐条添加域名进行防护。
--
- 对外协议:客户端请求访问服务器的协议类型。包括“HTTP”、“HTTPS”两种协议类型。
- 高级配置,如图3所示。
- 配置“负载均衡算法”:
- 源IP Hash:将某个IP的请求定向到同一个服务器。
- 加权轮询:所有请求将按权重轮流分配给源站服务器,权重越大,回源到该源站的几率越高。
- Session Hash:将某个Session标识的请求定向到同一个源站服务器,请确保在域名添加完毕后配置攻击惩罚的流量标识,否则Session Hash配置不生效。
更多信息请见修改负载均衡算法。
- “是否已使用代理”:若已使用DDoS高防、CDN、云加速等Web代理产品,请务必选择“是”。
如果已使用DDoS高防等四层Web代理产品,“是否已使用代理”选择“是”,同时为了保证WAF的安全策略能够针对真实源IP生效,成功获取Web访问者请求的真实IP地址,完成步骤四:修改域名DNS解析设置后,在域名的基本信息页面,“是否已使用代理”修改为“否”。
当在Web应用防火墙前使用代理时,不能切换为“Bypass”工作模式。如何切换工作模式请参考切换工作模式。
- “HTTP2协议”:如果您的网站需要支持HTTP2协议的访问,则选择“使用”。
HTTP2协议仅适用于客户端到WAF之间的访问,且“对外协议”必须包含HTTPS才支持使用。
- “服务器配置”中至少有一条源站地址的“对外协议”配置为HTTPS,开启后才会生效。
- 当客户端最大支持TLS 1.2时,HTTP2才生效。
- 选择“策略配置”:默认为“系统自动生成策略”,您也可以选择自定义防护策略,系统自动生成的策略相关说明如表2所示。
您也可以选择已创建的防护策略或在域名接入后根据防护需求配置防护规则。
表2 系统自动生成策略说明 防护策略
策略说明
Web基础防护(“仅记录”模式、常规检测)
仅记录SQL注入、XSS跨站脚本、远程溢出攻击、文件包含、Bash漏洞攻击、远程命令执行、目录遍历、敏感文件访问、命令/代码注入等攻击行为。
Web基础防护(“仅记录”模式、常规检测)
仅记录SQL注入、XSS跨站脚本、远程溢出攻击、文件包含、Bash漏洞攻击、远程命令执行、目录遍历、敏感文件访问、命令/代码注入等攻击行为。
网站反爬虫(“仅记录”模式、扫描器)
仅记录漏洞扫描、病毒扫描等Web扫描任务,如OpenVAS、Nmap的爬虫行为。
“仅记录”模式:发现攻击行为后WAF只记录攻击事件不阻断攻击。
- 配置“负载均衡算法”:
- 单击“确认”,添加域名完成。
可根据界面提示,完成放行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”为例。
- 单击“确认”,上传证书。
配置示例
不同场景的配置示例请参考配置示例:添加防护域名。