该章节指导您将网站域名以CNAME接入的方式添加到Web应用防火墙,并完成域名接入,使网站流量切入WAF。域名接入WAF后,WAF作为一个反向代理存在于客户端和服务器之间,服务器的真实IP被隐藏起来,Web访问者只能看到WAF的IP地址。
使用该模式前,请先参照网站接入概述章节了解网站接入流程及约束限制。
如果您已开通企业项目,您可以在“企业项目”下拉列表中选择您所在的企业项目,在该企业项目下添加防护域名。
添加步骤如下:
方案概述
网站在接入WAF前使用代理或未使用代理的接入配置说明如下:
收集防护网站的配置信息
在添加防护域名前,请获取如表1所示相关信息。
表1 准备防护域名相关信息
获取信息 |
参数 |
说明 |
示例 |
域名是否使用代理 |
是否已使用代理 |
- 七层代理:使用了DDoS高防(七层代理)、CDN、云加速等Web代理产品。
- 四层代理:使用了DDoS高防(四层转发)等Web代理产品。
- 无代理:未使用任何代理产品。
|
无代理 |
配置参数 |
防护域名 |
由一串用点分隔的英文字母组成(以字符串的形式来表示服务器IP),用户通过域名来访问网站。 |
www.example.com |
防护域名端口 |
需要防护的域名对应的业务端口。
- 标准端口
- 80:HTTP对外协议默认使用端口
- 443:HTTPS对外协议默认使用端口
- 非标准端口
80/443以外的端口
须知:
如果防护域名使用非标准端口,请查看WAF支持的端口范围,确保购买的WAF版本支持防护该非标准端口。
|
80 |
对外协议 |
客户端(例如浏览器)请求访问网站的协议类型。WAF支持“HTTP”、“HTTPS”两种协议类型。 |
HTTP |
源站协议 |
WAF转发客户端(例如浏览器)请求的协议类型。包括“HTTP”、“HTTPS”两种协议类型。 |
HTTP |
源站地址 |
客户端(例如浏览器)访问网站所在源站服务器的公网IP地址(一般对应该域名在DNS服务商处配置的A记录)或者域名(一般对应该域名在DNS服务商处配置的CNAME)。 |
XXX.XXX.1.1 |
(可选)证书 |
证书名称 |
对外协议选择“HTTPS”时,需要在WAF上配置证书,将证书绑定到防护域名。
|
- |
步骤一:添加防护域名
- 登录管理控制台。
- 单击管理控制台左上角的,选择区域或项目。
- 单击页面左上方的,选择。
- 在左侧导航树中,选择“网站设置”,进入“网站设置”页面。
- 在网站列表左上角,单击“添加防护网站”。
- 选择“云模式-CNAME接入”并单击“确定”。
- 配置“域名信息”,如图3所示。
图3 配置域名信息
- 源站配置,如图4所示,参数说明如表2所示。
图4 源站配置
表2 基本信息参数说明
参数 |
参数说明 |
取值样例 |
防护域名端口 |
在下拉框中选择面要防护的端口。 配置80/443端口,在下拉框中选择“标准端口”。 Web应用防火墙支持的端口请参见WAF支持的端口范围。
说明:
如果配置了除80/443以外的其他端口,访问网站时,需要在网址后面增加非标准端口进行访问,否则访问网站时会出现404错误。
|
81 |
服务器配置 |
网站服务器地址的配置。包括对外协议、源站协议、源站地址、源站端口和权重。
|
对外协议:HTTP 源站协议:HTTP 源站地址:IPv4 XXX .XXX.1.1 源站端口:80 |
证书名称 |
“对外协议”设置为“HTTPS”时,需要选择证书。您可以选择已创建的证书或选择导入新证书,相关参数说明请参见上传证书。 成功导入的新证书,将添加到“证书管理”页面的证书列表中。 您也可以在CCM管理控制台购买证书并推送到WAF。有关CCM证书推送到WAF的详细操作,请参见推送证书到云产品。
|
-- |
- 高级配置,如图5所示。
图5 高级配置
- 单击“确认”,添加域名完成。
步骤二:WAF回源IP加白
建议您在源站服务器上配置只放行WAF回源IP的访问控制策略,防止黑客获取源站IP后绕过WAF直接攻击源站,以确保源站安全、稳定、可用。
回源IP是WAF用来代理客户端请求服务器时用的源IP,在服务器看来,接入WAF后所有源IP都会变成WAF的回源IP,而真实的客户端地址会被加在HTTP头部的XFF字段中。
- WAF的回源IP会因为扩容/新建集群而增加,对于一个客户的存量域名,一般回源IP会固定在2~4个集群的几个C类IP地址(192.0.0.0~223.255.255.255)上。
- 一般情况下,在没有灾备切换或其他调度切换集群的场景下,回源IP不会变。且WAF后台做集群切换时,会探测源站安全组配置,确保不会因为安全组配置导致业务整体故障。
图7 回源IP
- 获取WAF的回源IP。
- 方式一:完成10后单击“立即进行WAF回源IP加白”,或者在“网站设置”页面,在目标网站所在行的“域名接入进度”栏中,单击“回源IP加白”。选择“正在使用”,单击,复制所有回源IP。
- 方式二:在网站列表上方,单击“Web应用防火墙回源IP网段”,也可以获取WAF的回源IP。
- 打开源站服务器上的安全软件,将复制的IP段添加到白名单。
- 源站服务器部署在华为云ECS上,请参考源站服务器部署在ECS上,放行WAF回源IP进行操作。
- 源站服务器部署在华为云ELB上,请参考源站服务器部署在华为云ELB上,放行WAF回源IP进行操作。
- 如果您同时使用了华为云云防火墙(CFW),请参考添加防护规则放行WAF的回源IP。
- 如果后端资源在其他云厂商,请在对应安全组、访问控制等中添加信任WAF的回源IP。
- 如果源站服务器只安装了个人版杀毒软件,通常这些软件没有配置加白IP的界面。如果是对外提供Web业务的服务器,建议您安装服务器版本的企业安全软件,或华为云主机安全服务产品,这些产品会识别一些请求量较大的IP的socket,并偶发断开连接,一般情况下不会拦截WAF的回源IP。
- 完成以上操作后,单击“已完成WAF回源IP加白”。
步骤三:本地验证
进行此操作前,确保添加的域名(例如:www.example5.com)的源站服务器协议、地址、端口配置正确,如果“对外协议”选择了“HTTPS”,也必须确保上传的证书和私钥正确。同时已完成步骤二:WAF回源IP加白。
通过修改本地计算机的hosts文件,可以设置本地计算机的域名寻址映射,即仅对本地计算机生效的DNS解析记录。本地验证需要您在本地计算机上将网站域名的解析指向WAF的IP地址。这样就可以通过本地计算机访问被防护的域名,验证WAF中添加的域名接入设置是否正确有效,避免域名接入配置异常导致网站访问异常。
- 获取CNAME值。
- 方式一:完成3后单击“立即进行本地验证”或者在“网站设置”页面中“域名接入进度”列单击“本地验证”,在弹出的页面中复制CNAME值。
- 方式二:在网站设置页面,在目标域名所在行中,单击目标域名名称,进入域名基本信息页面,在“CNAME”信息行,单击,复制“CNAME”值。
- ping“CNAME”值并记录“CNAME”对应的IP地址。
以域名www.example5.com为例,该域名已添加到WAF的网站配置中,且WAF为其分配了以下CNAME值:xxxxxxxdc1b71f718f233caf77.waf.huaweicloud.com。
在Windows中打开cmd命令行工具或者Linux中的bash工具,运行ping xxxxxxxdc1b71f718f233caf77.waf.huaweicloud.com获取WAF的接入IP。如
图8所示,在响应结果中可以看到用来防护您的域名的WAF接入IP。
图8 ping cname
如果ping cname没有获取到WAF的接入IP,可能是由于您的网络不稳定,请确保您的网络运行正常,再执行以上操作。
- 在本地修改hosts文件,将域名及“CNAME”对应的WAF接入IP添加到“hosts”文件。
- 用文本编辑器打开hosts文件,hosts文件路径如下:
- Windows:“C:\Windows\System32\drivers\etc\”
- Linux:“/etc/hosts”
- 在hosts文件添加如图10 追加记录内容,前面的IP地址即在步骤2中获取的WAF接入IP地址,后面的域名即被防护的域名。
图9 追加记录
- 修改hosts文件后保存,然后在命令行工具运行ping一下被防护的域名。
图10 ping域名
预期此时解析到的IP地址应该是2中绑定的WAF的接入IP地址。如果依然是源站地址,可尝试刷新本地的DNS缓存(Windows的cmd下可以使用ipconfig/flushdns命令,Linux的bash下可以使用systemd-resolved命令)。
- 访问验证。
- 清理浏览器缓存,在浏览器中输入防护域名,测试网站域名是否能正常访问。
如果hosts绑定已经生效(域名已经本地解析为WAF回源IP)且WAF的配置正确,访问该域名,预期网站能够正常打开。
- 手动模拟简单的Web攻击命令,测试Web攻击请求。
- 将Web基础防护的状态设置为“拦截”模式,具体方法请参见配置Web基础防护规则。
- 清理浏览器缓存,在浏览器中输入模拟SQL注入攻击的测试域名,测试WAF是否拦截了此条攻击,如图11所示。
图11 访问被拦截
- 在左侧导航树中,选择,进入“防护事件”页面,查看防护域名测试的各项数据。
- 完成上述步骤后,单击“已完成本地验证”。
步骤四:修改域名DNS解析设置
域名接入WAF后,WAF作为一个反向代理存在于客户端和服务器之间,服务器的真实IP被隐藏起来,Web访问者只能看到WAF的IP地址,所以您必须将域名的DNS解析指向WAF提供的CNAME地址,才可以使域名的Web请求解析到WAF进行安全防护。
- 获取WAF的CNAME。
- 修改域名DNS解析。
- 未使用代理
到该域名的DNS服务商处,配置防护域名的别名解析,具体操作请咨询您的域名服务提供商。
以下为华为云DNS的CNAME绑定方法,仅供参考。如与实际配置不符,请以各自域名服务商的信息为准。
- 单击页面左上方的,选择。
- 在左侧导航栏中,选择“公网域名”,进入“公网域名”页面。
- 在目标域名所在行的“操作”列,单击“管理解析”,进入“解析记录”页面。
- 在目标记录集的所在行“操作”列,单击“修改”。
- 在弹出的“修改记录集”对话框中修改记录值。
- “主机记录”:在WAF中配置的域名。
- “类型”:选择“CNAME-将域名指向另外一个域名”。
- “线路类型”:全网默认。
- “TTL(秒)”:一般建议设置为5分钟,TTL值越大,则DNS记录的同步和更新越慢。
- “值”:修改为已复制的WAF CNAME地址。
- 其他的设置保持不变。
关于修改解析记录:
- 对于同一个主机记录,CNAME解析记录不能重复,您需要将已存在的解析记录的CNAME修改为WAF CNAME地址。
- 同一解析记录下,不同DNS解析记录类型间可能存在冲突。例如,对于同一个主机记录,CNAME记录与A记录、MX记录、TXT记录等其他记录互相冲突。在无法直接修改记录类型的情况下,您可以先删除存在冲突的其他记录,再添加一条新的CNAME记录。删除其他解析记录并新增CNAME解析记录的过程应尽可能在短时间内完成。如果删除A记录后没有添加CNAME解析记录,可能导致域名无法正常解析。
域名解析类型的限制规则请参见添加记录集时,为什么会提示“与已有解析记录冲突”?。
- 单击“确定”,完成DNS配置,等待DNS解析记录生效。
- 使用了代理
将使用的代理类服务(高防、CDN服务等)的回源地址修改为复制的目标域名的CNAME,具体的方法请参见网站业务接入。
为了防止其他用户提前将您的域名配置到Web应用防火墙上,从而对您的域名防护造成干扰,建议您的DNS服务商处添加“子域名”和“TXT记录”。
- 获取“子域名”和“TXT记录”:在域名基本信息页面顶部,单击“未接入”旁边的,在弹出的对话框中,复制“子域名”和“TXT记录”。
- 到DNS服务商处添加“子域名”,并为它配置“TXT记录”。具体的配置方法请参见未配置子域名和TXT记录的影响。
WAF会根据配置“子域名”和“TXT记录”判断域名的所有权属于哪个用户。
- 验证域名的CNAME是否配置成功。
- 在Windows操作系统中,选择,在弹出框中输入“cmd”,按“Enter”。
- 执行nslookup命令,查询CNAME。
如果回显的域名是配置的CNAME,则表示配置成功,示例如图12所示。
以域名www.example.com为例。
nslookup www.example.com
图12 查询CNAME
- 完成以上步骤,单击“已完成修改”。
后续操作
一般情况下,如果您确认已完成域名接入,“域名接入进度”为“已接入”,表示域名接入成功。
如果防护域名已接入WAF,“域名接入进度”仍然为“未接入”,可单击,刷新状态,如果仍然为“未接入”,可参照步骤四:修改域名DNS解析设置重新完成域名接入。
域名接入成功后建议您完成以下操作: