注意:以下文档只适用于TOP接口,请谨慎使用!

文档中心 > 聚石塔

WEB应用防火墙配置

更新时间:2024/04/25 访问次数:13424

 购买或开通Web应用防火墙(WAF)服务后,您需要根据快速入门中的操作步骤将您的网站域名接入WAF进行防护。

一、适用范围


通过快速入门,您可以解决以下问题:

1)通过WAF为您的网站业务实现安全防护

2)将网站业务接入您已购买或开通的WAF实例

3)掌握WAF中网站配置的添加、修改、删除及验证

4)通过CNAME或A记录将您的网站域名解析至WAF实例

如果您在使用Web应用防火墙服务过程中遇到其它常见问题,请查看WAF常见问题

二、开始之前

在将网站域名接入WAF之前,您需要完成以下准备工作:

1)需要进行防护的网站域名(不支持直接使用网站的IP)
说明:对于中国大陆地区的WAF实例,所添加的网站域名必须已经通过工信部备案(无需通过阿里云备案);对于海外地区的WAF实例,则没有备案要求。

2)该网站的源站服务器IP
说明:对于一个网站,WAF支持配置多达20个源站IP。

3)对于支持HTTPS业务的网站,还需要准备该域名绑定的证书和私钥信息

4)该域名DNS解析记录的编辑权限,即您在该域名所在的域名解析服务商(如万网、新网、DNSPod)提供的管理控制台可以修改该域名的DNS解析记录。

三、操作步骤

步骤1:添加网站配置

开通WAF后,您需要在 云盾WAF控制台 > 网站配置 中添加您想要防护的网站信息,为其启用防护。

i)如果您要防护的网站域名使用阿里云云解析DNS进行解析,我们支持一键完成添加和解析配置;否则,您需要手动添加网站,然后修改域名的CNAME解析记录,将网站域名解析到WAF实例。

ii)如果您要防护的网站使用HTTPS协议,我们也支持相应配置,但您必须在添加网站后上传证书和私钥,才能使设置生效。

下图显示了添加网站配置的整体过程,具体操作参见下文说明。


1)将网站添加至Web应用防火墙实例

参考以下步骤,将网站添加至您已购买或开通的Web应用防火墙(WAF)实例:

① 登录 云盾Web应用防火墙管理控制台

② 定位到 管理 > 网站配置 页面,根据您的WAF实例所在的地区,选择 中国大陆 海外地区

③ 单击 添加网站

a. WAF将自动列出当前阿里云账号在 云解析DNS 中添加过解析A记录的域名,勾选需要防护的域名及协议类型,单击 立即防护 即可将该网站域名添加至WAF实例。同时,WAF将自动为您修改该域名的DNS解析记录,以接入该WAF实例进行防护。

说明:

i)如果您未在云解析DNS中添加过解析A记录,则域名选择列表不会出现,您需要手动添加网站域名。

ii)如果您使用中国大陆WAF,则支持一键添加及解析的网站域名必须已经通过工信部备案。

iii)一键添加及解析的过程一般需要10-15分钟,您可以在 网站配置 页面查看该网站域名的DNS解析状态,确认切换是否生效。

b. 如果想要防护的网站域名不在域名选择列表中,您可以单击 防护其它网站,手动添加该网站域名。操作步骤如下:

i)填写网站域名的配置信息,单击下一步。参数说明见下表:


参数

描述

说明

域名

您想要防护的网站域名

支持填写泛域名(如*.abcd.cn),WAF将自动匹配该泛域名的二级域名。
如果您同时配置泛域名和精确域名(如*.abcd

.cn和abc.abcd.cn),WAF将优先使用精确域名所配置的转发规则和防护策略。

协议类型

该网站支持的协议类型。如果您的网站支持HTTPS加密认证,请勾选HTTPS协议,并在添加网站后 上传证书和私钥

如果勾选HTTPS协议类型,可使用高级设置实现HTTP强制跳转和HTTP回源等功能,保证访问平滑。
关于HTTPS协议的详细配置说明,请查看 HTTPS高级设置

服务器地址

该网站域名的源站服务器地址。

网站接入WAF实例进行防护后,WAF会将过滤后的访问请求转发至该服务器地址。

勾选 IP,填写源站服务器的IP(如云服务器ECS实例的IP、负载均衡SLB实例的IP等),配置成功后WAF将请求转发至该源站IP。

最多支持配置20个源站IP。如果配置多个回源IP,WAF将自动进行健康检查和负载均衡。关于WAF的负载均衡功能说明,请查看 源站负载均衡

勾选 其它地址,填写服务器回源域名(如对象存储OSS的CNAME等),配置成功后WAF将请求转发至该域名

服务器回源域名不是您想要接入WAF实例进行防护的该网站域名。

服务器端口

该网站域名的源站端口。网站接入WAF实例进行防护后,WAF会将过滤后的访问请求转发至该端口。

HTTP协议默认为80端口;HTTPS协议默认为443端口。如果您想要使用其它端口,可单击

自定义进行添加。关于WAF支持的非标准端口说明,请查看 非标准端口说明

WAF前是否有七层代理(高防/CDN等)

根据该网站业务的实际情况勾选。

如果该网站在WAF前需要配置其它七层代理进行转发,请务必勾选 ,否则WAF将无法获取访问该网站的客户端真实IP信息。

负载均衡算法

如果配置多个源站IP,勾选IP hash或 轮询,WAF将根据所选择的方式分发访问请求,实现负载均衡。

-


ii)选择修改该域名DNS解析的方式(手动修改CDN修改),并按照页面提示完成修改。


如果您需要手动修改该域名的DNS解析,查看 手动修改DNS解析 了解详细操作步骤。
说明:在修改域名的DNS解析前,建议您先 在网站的源站服务器上配置放行WAF回源IP段在本地环境中验证域名转发配置是否生效,确保该网站的访问请求可以正常转发回源站服务器。

2)查看Web应用防火墙为该网站分配的CNAME

网站配置添加成功后,WAF将自动为该域名分配一个CNAME。通过将该网站域名的访问解析到该CNAME,所有访问请求即可先经过该WAF实例后被转发至源站服务器,实现安全防护。

说明:如果想要获取该域名所分配到的WAF IP,您通过Ping该域名所分配到CNAME所解析到的IP即是所分配的WAF IP。一般情况下,所分配的WAF IP不会频繁变更。

云盾Web应用防火墙管理控制台 > 管理 > 网站配置 页面,选择已添加的网站,将鼠标移至 复制CName 按钮即可查看WAF为该网站分配的CNAME。

说明:单击 复制CName 可将该CNAME复制到剪贴板中。

3)上传HTTPS证书和私钥(仅适用于HTTPS站点)

如果您添加的网站支持HTTPS加密认证,且已勾选HTTPS协议类型,在添加网站配置后,您还需要在 云盾Web应用防火墙管理控制台 上传相应的证书和私钥,否则将无法通过HTTPS协议访问该网站。

网站配置添加成功后,在 管理 > 网站配置 页面中,该网站域名的HTTPS协议状态将显示为异常,提示您当前证书配置有误。

参考以下步骤,为该网站域名上传证书和私钥:

① 在 云盾Web应用防火墙管理控制台 > 管理 > 网站配置 页面,选择该网站域名。

② 单击HTTPS协议状态右侧的上传证书按钮。

③ 在 更新证书 对话框中,选择 上传方式

a. 勾选 手动上传,填写 证书名称,将该网站域名所绑定的证书文件和私钥文件中的文本内容分别复制粘贴到 证书文件钥文件 文本框中。

说明:对于一般格式的证书(如.pem、.cer、.crt等格式的证书),您可用文本编辑器直接打开证书文件复制其中的文本内容;对于其他格式的证书(如.pfx、.p7b等格式的证书)的证书,则需要将证书文件转换成.pem格式后再用文本编辑器打开来复制其中的文本内容。关于证书格式的转换方式,请查看 HTTPS证书转换成PEM格式

注意:如果该HTTPS证书有多个证书文件(如证书链),需要将证书文件中的文本内容拼接合并后粘贴至 证书文件文本框中。证书文件文本内容样例

-----BEGIN CERTIFICATE-----
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx8ixZJ4krc+1M+j2kcubVpsE2
cgHdj4v8H6jUz9Ji4mr7vMNS6dXv8PUkl/qoDeNGCNdyTS5NIL5ir+g92cL8IGOkjgvhlqt9vc
65Cgb4mL+n5+DV9uOyTZTW/MojmlgfUekC2xiXa54nxJf17Y1TADGSbyJbsC0Q9nIrHsPl8YKk
vRWvIAqYxXZ7wRwWWmv4TMxFhWRiNY7yZIo2ZUhl02SIDNggIEeg==
-----END CERTIFICATE-----

b. 私钥文件文本内容样例

-----BEGIN RSA PRIVATE KEY-----
DADTPZoOHd9WtZ3UKHJTRgNQmioPQn2bqdKHop+B/dn/4VZL7Jt8zSDGM9sTMThLyvsmLQKBgQ
Cr+ujntC1kN6pGBj2Fw2l/EA/W3rYEce2tyhjgmG7rZ+A/jVE9fld5sQra6ZdwBcQJaiygoIYo
aMF2EjRwc0qwHaluq0C15f6ujSoHh2e+D5zdmkTg/3NKNjqNv6xA2gYpinVDzFdZ9Zujxvuh9o
4Vqf0YF8bv5UK5G04RtKadOw==
-----END RSA PRIVATE KEY-----

c. 如果该网站域名所绑定的HTTPS证书已添加至该云账号的云盾证书服务进行管理,勾选 选择已有证书,直接选择该证书即可。

④ 单击 保存,该域名所绑定的证书和私钥即上传成功,HTTPS协议状态更新为 正常

4)查看网站域名DNS解析状态

网站域名配置刚添加完成后,该域名的DNS解析状态可能显示为 异常

一般来说,这种情况是正常的。当您将该网站域名的DNS解析记录切换至WAF所分配的CNAME,且该网站域名的正常访问流量已经经过WAF后,该域名的DNS解析状态才会显示为 正常。关于更多DNS解析状态的判断标准说明,请查看 DNS解析状态说明

步骤2:放行WAF回源IP段

您的网站成功接入WAF防护后,访问您网站的所有请求将先流转到WAF实例,经WAF实例过滤后再返回到源站服务器。流量经WAF实例返回源站的操作称为回源。

由于WAF实例的IP数量有限,源站服务器收到的所有请求都来自这些IP,在源站服务器上的安全软件(如安全狗、云锁)看来,这种情况是很可疑的,可能会屏蔽回源IP。因此,在接入WAF防护后,您需要在源站服务器的安全软件上设置放行所有WAF回源IP。

说明:强烈推荐您在接入WAF防护后,卸载源站服务器上的其他安全软件。

1)操作步骤

WAF控制台提供了最新的回源IP段列表,您可以参照以下步骤进行操作:

① 在 云盾WAF控制台 > 网站配置 页面,单击页面上方的 Web应用防火墙回源IP网段列表,直接查看和复制所有WAF回源IP段。


您看到的结果如下:

② 在源站服务器的安全软件上,将步骤1中的IP段添加到白名单。

2)常见问题

① 什么是回源IP

回源IP是WAF用来代理客户端请求服务器时用的源IP,在服务器看来,接入WAF后所有源IP都会变成WAF的回源IP,而真实的客户端地址会被加在 HTTP头部的XFF字段 中。

在接入WAF后,您应确保源站已将WAF的全部回源IP放行(加入白名单),不然可能会出现网站打不开或打开极其缓慢等情况。

② 为何要放行回源IP段

接入WAF后,WAF作为一个反向代理存在于客户端和服务器之间,服务器的真实IP被隐藏起来,客户端只能看到WAF,而看不到源站。如下图所示:

在源站(真实服务器)看来,所有的请求源IP都会变成WAF的回源IP段。

由于来源的IP变得更加集中,频率会变得更快,服务器上的防火墙或安全软件很容易认为这些IP在发起攻击,从而将其拉黑。一旦拉黑,WAF的请求将无法得到源站的正常响应,故务必要确保回源IP在源站上没有被拦截。

步骤三:本地验证

 

在把业务流量切到WAF上之前,建议先通过本地验证的方式确保一切配置正常,WAF转发正常。

首先需要修改本地hosts文件(什么是hosts文件),使本地对于被防护站点的请求先经过WAF。以Windows为例,hosts文件的位置一般位于“C:\Windows\System32\drivers\etc\hosts”,用记事本或notepad++等文本编辑器打开,在最后一行添加如下内容:

WAF的IP 被防护域名

以步骤一中添加的域名为例,如下图,

hosts文件应该添加如下内容:

其中前面的IP地址为对应的WAFIP地址,WAF的IP可以通过ping提供的CNAME来获得,

修改hosts文件后保存。然后本地ping一下被防护的域名,预期此时解析到的IP地址应该是刚才绑定的WAF IP地址。如果依然是源站地址,可尝试刷新本地的DNS缓存(Windows的cmd下可以使用ipconfig/flushdns命令)。

确认hosts绑定已经生效(域名已经本地解析为WAF的IP)后,打开浏览器,输入该域名进行访问,如果WAF的配置正确,网站预期能够正常打开。

同时也可以尝试一下手动模拟一些简单的web攻击命令,如 在URL后面加一个/?alert(xss),这是一个测试的web攻击请求,如下图所示,/?alert(xss) 预期WAF能够弹出阻拦页面:

一切OK后,接下来可以把业务流量切到WAF上来了。

步骤四:修改DNS解析


通过修改DNS将网站域名解析到WAF,完成业务正式接入。


1)开始之前

找到在步骤一:控制台配置中记录下的WAF分配的CNAME,如xxxxxxxx7wmqvixt8vedyneaepztpuqu.alicloudwaf.com



2)CNAME接入说明

WAF通常采用CNAME解析的方式将网站接入进行防护,也支持A记录解析的方式接入。

说明: 强烈建议您采用CNAME解析的方式。因为在某些极端情况下(如节点故障、机房故障等),通过CNAME解析方式接入WAF,可以实现自动切换节点IP甚至将直接解析切回源站,从而最大程度保证业务的稳定运行,提供高可用性和灾备能力。

如果必须使用A记录解析的方式接入(例如,@记录与MX记录冲突等情况),您可以通过Ping CNAME获取所分配的WAF IP(该IP地址一般不会频繁变更)后,将网站域名通过A记录解析的方式接入WAF进行防护。


3)DNS记录切换配置

关于域名的主机记录,以域名abc.com为例:

① www: 用于精确匹配www开头的域名,如www.abc.com,但无法匹配abc.com

② @: 用于匹配直接访问abc.com的情况。

③ *: 用于匹配泛域名,即匹配任意域名,如blog.abc.comwww.abc.comabc.com等。


DNS解析记录修改注意事项

i)对于同一个主机记录,CNAME解析记录值只能填写一个,您可以将该记录值修改为WAF的CNAME值将网站域名接入WAF进行防护。

ii)由于不同DNS解析记录类型存在冲突情况,对于同一个主机记录,CNAME记录与A记录、MX记录、TXT记录等其他记录互相冲突。您需要删除原其它记录后添加CNAME记录解析记录或者将原记录类型修改为CNAME类型。
关于DNS解析记录互斥的详细说明,请查看解析记录冲突的规则说明文档

说明: 删除其它解析记录并新增CNAME解析记录的过程应尽可能在短时间内完成。如果删除A记录后长时间没有添加CNAME解析记录,可能导致域名无法正常解析。


iii)如果必须保留MX记录(邮件服务器记录),您可以使用A记录解析的方式将域名解析到WAF的IP。通过Ping CNAME获取所分配的WAF IP(该IP地址一般不会频繁变更)后,将网站域名A解析记录类型的记录值修改为该WAF IP。
说明: 使用A记录解析的方式进行接入,WAF将无法支持自动故障集群调度和故障bypass操作。


4)DNS配置操作步骤

本文以万网和花生壳为例,介绍DNS配置方式,其它DNS提供商可以参考本文档进行类似配置。

① 阿里云云解析配置示例

i)登录万网控制台,定位到对应域名的域名解析>解析设置页面。正常情况下,您的网站域名已经存在一些解析记录。


ii)选择所需解析的主机记录,单击修改,将记录类型修改为CNAME,记录值修改为WAF所分配的CNAME。


说明: TTL值一般建议设置为600秒(即10分钟)。TTL值越大,则DNS记录的同步和更新越慢。


② 花生壳配置示例

部分域名提供商(如花生壳)可能不支持直接修改已有解析记录的记录类型和主机记录,您需要删除原有的A记录解析记录后,再添加CNAME解析记录。

说明: 删除原解析记录后,请尽快完成添加CNAME解析记录,否则可能导致网站域名解析失败。



5)DNS配置检查

将网站域名的DNS解析切换至WAF后,您的网站域名即接入WAF进行防护。解析记录配置完成后,您可以通过Ping网站域名的方式或17ce等其他工具观察DNS解析生效情况。

说明: 由于DNS解析记录生效需要一定时间,如果本地测试域名无法访问,您可以等待10分钟后重新检查。



配置完成后,您网站的所有访问流量都将先经过WAF实例,WAF实例根据所配置的安全防护规则过滤恶意请求,并最终将正常的业务流量转发至源站服务器,保护您的网站业务。


6)常见问题

接入WAF后获取真实IP

WAF和高防IP一起使用

WAF和CDN一起使用

如何防护CC攻击

网站访问提示405错误


FAQ

关于此文档暂时还没有FAQ
返回
顶部