将网站接入Web应用防火墙(WAF)防护后,您可以设置源站服务器的访问控制策略,只放行WAF回源IP段的入方向流量,防止黑客获取您的源站IP并绕过WAF直接攻击源站。本文介绍了源站服务器部署在云服务器ECS、负载均衡SLB时,如何设置对应的安全组规则和白名单策略。

前提条件

风险须知

网站接入WAF进行防护后,无论您是否设置源站保护,都不影响正常业务的转发。设置源站保护可以帮助您预防攻击者在源站IP暴露的情况下,绕过WAF直接攻击您的源站。关于如何判断源站是否存在IP泄露风险,请参见如何检测源站是否存在IP泄露风险?

配置源站服务器的访问控制策略存在一定风险。在设置源站保护前,请注意以下事项:
  • 请确保源站ECS实例、SLB实例上的所有网站域名都已经接入WAF进行防护。
  • WAF在集群出现故障时,可能会将域名访问请求旁路回源至源站,确保网站正常访问。这种情况下,如果源站已设置ECS安全组、SLB白名单访问控制策略,可能会导致源站暂时无法通过公网访问。
  • 当WAF集群扩容增加新的回源IP段时,如果源站已设置ECS安全组、SLB白名单防护,可能会导致频繁出现5xx错误响应。

获取WAF回源IP段

注意 WAF回源IP段会定期更新,请关注定期变更通知,及时将更新后的回源IP段添加至相应的安全组、白名单规则中,避免出现误拦截。
  1. 登录Web应用防火墙控制台
  2. 在顶部菜单栏,选择Web应用防火墙实例的资源组和地域(中国内地海外地区)。
  3. 在左侧导航栏,选择系统管理 > 产品信息
  4. 产品信息页面底部,定位到回源IP段区域,单击复制全部IP
    回源IP段区域实时显示最新的WAF回源IP段。回源IP段,waf

设置ECS安全组规则

如果您的源站服务器直接部署在云服务器ECS实例,请在获取WAF回源IP段后,参照以下步骤设置源站ECS实例的安全组规则。通过设置安全组规则,只放行WAF回源IP段的入方向流量。

  1. 登录云服务器ECS控制台
  2. 在左侧导航栏,选择实例与镜像 > 实例
  3. 在顶部菜单栏,选择ECS实例的资源组和地域。
  4. 实例列表,定位到要操作的实例,在操作列下选择更多 > 网络和安全组 > 安全组配置
  5. 定位到要设置的安全组,单击操作列下的配置规则
  6. 添加一条优先级最高的安全组规则,放行WAF回源IP段的入方向流量。
    1. 访问规则区域的入方向页签下,单击手动添加
    2. 完成以下规则配置,并单击保存安全组规则-allow
      配置项 说明
      授权策略 选择允许
      优先级 输入1,表示优先级最高。
      协议类型 选择自定义TCP
      端口范围 选择HTTP(80)HTTPS(443)
      授权对象 将已复制的WAF回源IP段粘贴到输入框。

      您可以按Ctrl+V键进行粘贴。

      描述 自定义描述信息。示例:放行WAF回源IP。
      注意 如果当前安全组防护的服务器与WAF回源IP以外的其他IP、HTTP/HTTPS以外的其他应用有交互,请将这些交互IP和端口通过安全组一并加白放行。
      成功添加该安全组规则后,ECS实例安全组将以最高优先级放行WAF回源IP段的所有入方向流量。
      警告 请务必确保所有WAF回源IP段都已通过源站ECS实例的安全组规则设置了入方向的允许策略,否则可能导致网站访问异常。
  7. 添加一条优先级最低的安全组规则,拒绝所有IP段的入方向流量。
    1. 访问规则区域的入方向页签下,单击手动添加
    2. 完成以下规则配置,并单击保存安全组规则-deny
      配置项 说明
      授权策略 选择拒绝
      优先级 输入100,表示优先级最低。
      协议类型 选择自定义TCP
      端口范围 选择HTTP(80)HTTPS(443)
      授权对象 在源输入框,输入0.0.0.0/0(表示所有IP段)并按回车键。
      描述 自定义描述信息。示例:拒绝所有入方向流量。
      成功添加该安全组规则后,ECS实例安全组除了放行WAF回源IP段的入方向流量(步骤6定义的规则)外,还将拒绝所有其他IP段的入方向流量,保证所有业务流量都经WAF转发到源站ECS实例。

开启SLB访问控制

如果您的源站服务器部署了负载均衡SLB,请在获取WAF回源IP段后,参照以下步骤设置SLB实例的访问控制(白名单)策略。通过开启访问控制(白名单),只放行WAF回源IP段的入方向流量。

以下操作描述以传统型负载均衡CLB为例进行介绍。如果您使用应用型负载均衡ALB,请结合以下操作描述及ALB访问控制文档进行操作。

  1. 登录负载均衡SLB控制台
  2. 在左侧导航栏,选择传统型负载均衡CLB(原SLB) > 访问控制
  3. 在顶部菜单栏,选择SLB实例的资源组和地域。
  4. 创建访问控制策略组。
    1. 访问控制页面,单击创建访问控制策略组
    2. 创建访问控制策略组面板,完成以下策略组配置,并单击创建访问控制策略组
      以下配置表示为所有IPv4类型的WAF回源IP创建一个策略组。
      配置项 说明
      策略组名称 自定义策略组名称。示例:WAF回源IP段_IPv4
      所属资源组 选择策略组所属资源组。
      IP版本 选择IPv4
      批量添加IP地址/地址段和备注 粘贴所有IPv4类型的WAF回源IP。

      每行只允许输入一个条目。多个条目间通过回车分隔。

      说明 由于复制获取的所有WAF回源IP段之间以半角逗号(,)分隔,建议您使用支持扩展替换的文本编辑器,将半角逗号(,)统一替换为换行符(\n)再进行粘贴。
      替换
    3. 再次执行步骤b~c,为所有IPv6类型的WAF回源IP创建一个策略组。
      与步骤c有差异的配置说明如下:
      • 策略组名称:您可以将该策略组命名为“WAF回源IP段_IPv6”。
      • IP版本:选择IPv6
      • 批量添加IP地址/地址段和备注:粘贴所有IPv6类型的WAF回源IP。
  5. 为监听设置访问控制策略。
    1. 在左侧导航栏,选择传统型负载均衡CLB(原SLB) > 实例管理
    2. 实例管理列表,定位到要操作的实例,单击实例ID。
    3. 监听列表,定位到要设置的监听,在操作列下单击更多图标,然后单击设置访问控制
      请根据已接入WAF防护的业务类型,选择要设置的监听:
      • 如果您已将HTTP业务接入WAF防护,则需要设置HTTP监听。
      • 如果您已将HTTPS业务接入WAF防护,则需要设置HTTPS监听。
      • 如果您已将HTTP和HTTPS业务接入WAF防护,则需要分别设置HTTP监听和HTTPS监听。
    4. 访问控制设置页面,打开启动访问控制开关并完成以下配置。访问控制设置
      配置项 说明
      访问控制方式 选择白名单:允许特定IP访问负载均衡SLB
      选择访问控制策略组
      根据CLB实例的IP版本,选择WAF回源IP对应的访问控制策略组:
      • IPv4类型CLB实例仅支持选择IPv4版本的策略组。
      • IPv6类型CLB实例仅支持选择IPv6版本的策略组。
    完成以上配置后,CLB实例监听将会放行WAF回源IP段的入方向流量。

后续操作

完成ECS安全组、SLB白名单设置后,您可以通过测试源站IP的80端口和8080端口是否能成功建立连接,验证设置是否已生效。

如果端口无法直接连通,但网站业务仍可正常访问,则表示源站保护已设置成功。

如何检测源站是否存在IP泄露风险?

您可以在非阿里云环境直接使用Telnet工具连接源站公网IP地址的业务端口,检测是否能够成功建立连接:
  • 如果可以连通,表示源站存在IP泄露风险,一旦黑客获取到源站公网IP就可以绕过WAF直接访问源站。
  • 如果无法连通,表示源站当前不存在IP泄露风险。
示例:测试已接入WAF进行防护的源站IP的80端口和8080端口是否能成功建立连接。以下截图中的测试结果显示端口可以连通,说明源站存在IP泄露风险。端口可连通,waf