本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。
CNAME接入模式下,网站的业务流量经过WAF防护后流回源站。若源站IP泄露则攻击者会绕过WAF直接攻击源站。您可以为源站服务器配置访问控制策略,只放行WAF回源IP段入方向的流量来保护源站。本文以部署了阿里云负载均衡SLB的ECS服务器为例,讲解如何配置访问控制策略。
- 网站接入WAF防护后,无论您是否设置源站保护,都不影响正常业务的转发。 
- 如果您使用透明接入方式,将源站阿里云服务器ECS和负载均衡SLB的业务流量接入WAF防护,引流端口的所有流量都会被牵引到WAF防护,攻击者无法绕过WAF直接攻击源站。因此,您无需设置源站保护。 
风险须知
配置源站服务器的访问控制策略存在一定风险。在设置源站保护前,请注意以下事项:
- 请确保同一源站ECS实例或SLB实例上的所有域名都已经接入WAF进行防护,避免攻击者通过未接入WAF的域名入侵源站,从而影响其他域名业务。 
- 在WAF集群出现故障时,WAF可能会将域名访问请求旁路回源至源站,确保网站正常访问。这种情况下,如果源站已设置ECS安全组或SLB白名单访问控制策略,可能会导致源站暂时无法通过公网访问。 
- 当WAF集群扩容增加新的回源IP段时,如果源站已设置ECS安全组或SLB白名单防护,可能会导致频繁出现5XX错误响应。建议您定期关注Web应用防火墙控制台发布的回源网段变更通知,及时更新涉及回源IP网段的访问控制策略。 
- 如果您不再使用WAF,在将业务流量切回源站服务器之前,请务必先删除已添加的访问控制策略,放行所有业务流量,避免业务流量切回后出现业务中断。 
前提条件
步骤一:检测源站是否存在IP暴露风险
您可以在非阿里云环境直接使用Telnet工具连接源站公网IP地址的业务端口,检测是否能够成功建立连接:
- 如果可以连通,表示源站存在IP泄露风险,一旦黑客获取到源站公网IP就可以绕过WAF直接访问源站。 
- 如果无法连通,表示源站当前不存在IP泄露风险。 
示例:测试已接入WAF进行防护的源站IP的80端口和8080端口是否能成功建立连接。以下截图中的测试结果显示端口可以连通,说明源站存在IP泄露风险。
步骤二:获取WAF回源IP段
WAF回源IP段会定期更新,请关注定期变更通知,及时将更新后的回源IP段添加至相应的安全组或白名单规则中,避免出现误拦截。
- 登录Web应用防火墙控制台,在顶部菜单栏,选择WAF实例的资源组和地域(中国内地、非中国内地)。 
- 在左侧导航栏,选择。 
- 在产品信息页面右下方的回源IP段区域,单击复制全部IP。回源IP段区域实时显示WAF回源IP段。
步骤三:设置ECS安全组规则
如果您的源站服务器为云服务器ECS,请在获取WAF回源IP段后,参照以下步骤设置源站ECS实例的安全组规则,只放行WAF回源IP段的入方向流量,拒绝所有其他IP段的入方向流量。
- 进入安全组页面。- 登录ECS管理控制台。 
- 在左侧导航栏,选择。 
- 在顶部菜单栏左上角处,选择地域。 
 
- 找到目标安全组,在操作列中,单击管理规则。
- 选择安全组规则所属的方向。- 如果安全组的网络类型为专有网络,请选择入方向或出方向。
- 如果安全组的网络类型为经典网络,请选择入方向、出方向、公网入方向或公网出方向。
 
- 添加一条优先级最高的安全组规则,放行WAF回源IP段的入方向流量。 - 在访问规则区域的入方向页签下,单击手动添加。 
- 完成以下规则配置,并单击保存。 - 配置项 - 说明 - 授权策略 - 选择允许。 - 优先级 - 输入1,表示优先级最高。 - 协议类型 - 选择自定义TCP。 - 端口范围 - 选择HTTP(80)和HTTPS(443)。 - 授权对象 - 将已复制的WAF回源IP段粘贴到源输入框。 - 描述 - 自定义描述信息。示例:放行WAF回源IP。 重要- 如果当前安全组防护的服务器与WAF回源IP以外的其他IP、HTTP或HTTPS以外的其他应用有交互,请将这些交互IP和端口通过安全组一并加白放行。 - 成功添加该安全组规则后,ECS实例安全组将以最高优先级放行WAF回源IP段的所有入方向流量。 警告- 请务必确保所有WAF回源IP段都已通过源站ECS实例的安全组规则设置了入方向的允许策略,否则可能导致网站访问异常。 
 
- 添加一条优先级最低的安全组规则,拒绝其余所有IP段的入方向流量。 - 在访问规则区域的入方向页签下,单击手动添加。 
- 完成以下规则配置,并单击保存。 - 配置项 - 说明 - 授权策略 - 选择拒绝。 - 优先级 - 输入100,表示优先级最低。 - 协议类型 - 选择自定义TCP。 - 端口范围 - 选择HTTP(80)和HTTPS(443)。 - 授权对象 - 在源输入框,输入0.0.0.0/0(表示所有IP段)并按回车键。 - 描述 - 自定义描述信息。示例:拒绝所有入方向流量。 - 成功添加该安全组规则后,ECS实例安全组除了放行WAF回源IP段的入方向流量外,还将拒绝所有其他IP段的入方向流量,保证所有业务流量都经WAF转发到源站ECS实例。 
 
步骤四:设置SLB访问控制
如果您的源站服务器部署了负载均衡SLB,您还需要设置SLB实例的访问控制(白名单)策略,只放行WAF回源IP段的入方向流量。
以下操作描述以传统型负载均衡CLB为例进行介绍。如果您使用应用型负载均衡ALB,请结合以下操作描述及ALB访问控制文档进行操作。
- 登录传统型负载均衡CLB控制台。
- 在顶部菜单栏,选择实例所属地域。 
- 在左侧导航栏,选择。 
- 创建_IPv4访问控制策略组。 - 在访问控制页面,单击创建访问控制策略组。 
- 在创建访问控制策略组面板,完成以下策略组配置,并单击创建。 - 以下配置表示为所有IPv4类型的WAF回源IP创建一个策略组。 - 配置项 - 说明 - 策略组名称 - 自定义策略组名称。示例:WAF回源IP段_IPv4。 - 所属资源组 - 选择策略组所属资源组。 - IP版本 - 选择IPv4。 - 批量添加IP地址/地址段和备注 - 粘贴所有IPv4类型的WAF回源IP。 - 每行只允许输入一个条目。多个条目间通过回车分隔。 说明- 由于复制获取的所有WAF回源IP段之间以半角逗号(,)分隔,建议您使用支持扩展替换的文本编辑器,将半角逗号(,)统一替换为换行符(\n)再进行粘贴。 
 
- 重复步骤4,为所有IPv6类型的WAF回源IP创建一个策略组。 - 与步骤4有差异的配置说明如下: - 策略组名称:您可以将该策略组命名为WAF回源IP段_IPv6。 
- IP版本:选择IPv6。 
- 批量添加IP地址/地址段和备注:粘贴所有IPv6类型的WAF回源IP。 
 
- 为监听设置访问控制策略。 - 在左侧导航栏,选择。 
- 在实例管理列表,定位到要操作的实例,单击实例ID。 
- 在监听列表,定位到要设置的监听,在操作列下单击  图标,然后单击设置访问控制。 图标,然后单击设置访问控制。- 请根据已接入WAF防护的业务类型,选择要设置的监听: - 如果您已将HTTP业务接入WAF防护,则需要设置HTTP监听。 
- 如果您已将HTTPS业务接入WAF防护,则需要设置HTTPS监听。 
- 如果您已将HTTP和HTTPS业务接入WAF防护,则需要分别设置HTTP监听和HTTPS监听。 
 
- 在访问控制设置面板,打开启动访问控制开关并完成以下配置。 - 配置项 - 说明 - 访问控制方式 - 选择白名单:允许特定IP访问负载均衡SLB。 - 选择访问控制策略组 - 根据CLB实例的IP版本,选择WAF回源IP对应的访问控制策略组: - IPv4类型CLB实例仅支持选择IPv4版本的策略组。 
- IPv6类型CLB实例仅支持选择IPv6版本的策略组。 
 
 - 完成以上配置后,CLB实例监听将会放行WAF回源IP段的入方向流量。 
后续操作
完成ECS安全组或SLB白名单设置后,您可以通过测试源站IP的80端口和8080端口是否能成功建立连接,验证设置是否已生效。
如果端口无法直接连通,但网站业务仍可正常访问,则表示源站保护已设置成功。