通过识别客户端IP来过滤用户请求,拦截特定IP的访问或者允许特定IP的访问,可以用来解决恶意IP盗刷、攻击等问题。本文介绍如何配置IP黑白名单。

注意事项

  • 该功能默认关闭,IP黑名单与IP白名单二选一,不可同时配置。
  • 最多可配置700个IPv6地址,2000个IPv4地址,如果您有更多的IP地址封禁需求,请提交工单购买CDN安全防护功能(支持海量IP封禁服务)。
  • 配置IP黑名单后,黑名单中IP的请求仍可访问到CDN节点,但会被CDN节点拒绝并返回403状态码,CDN日志中仍会记录黑名单中这些IP的请求记录。
  • 由于IP黑白名单功能采用的是七层HTTP协议的IP识别技术,因此在恶意请求被CDN节点拦截的同时,会产生少量的流量费用,如果客户端使用HTTPS协议访问,还会产生HTTPS请求数费用(因为拦截恶意IP的时候,也同时消耗了CDN节点的处理资源)。

IP地址校验模式

客户端与CDN节点建立连接时,是否经过代理服务器,会影响客户端真实IP、客户端与CDN节点建连IP。假设客户端真实IP为10.10.10.10,代理服务器IP为192.168.0.1:
  • 没有经过代理服务器:
    • 用户请求中x-forwarded-for请求头值:10.10.10.10。
    • 客户端真实IP(即x-forwarded-for请求头携带的第一个IP)=客户端与CDN节点建连IP=10.10.10.10。
  • 经过代理服务器:
    • 用户请求中x-forwarded-for请求头值:10.10.10.10,192.168.0.1。
    • 客户端真实IP(即x-forwarded-for请求头携带的第一个IP)=10.10.10.10。
    • 客户端与CDN节点建连IP=代理服务器IP=192.168.0.1。
    • 客户端真实IP(即x-forwarded-for请求头携带的第一个IP)≠客户端与CDN节点建连IP。

对于不同的IP地址校验对象,阿里云CDN的IP黑白名单功能支持三种IP地址校验模式,默认支持校验客户端真实IP。

IP地址校验模式 说明 配置方法
仅校验客户端真实IP 该模式校验的是用户请求中x-forwarded-for请求头携带的第一个IP,这个IP对应真实客户端IP。XFF IP获取方式,请参见获取客户端真实IP

如果用户请求经过代理服务器,客户端与CDN节点建连IP为代理服务器的IP,这种情况下使用“仅校验客户端真实IP”模式进行IP黑白名单访问控制可能会存在不准确的情况。

默认模式,无需配置。
仅校验客户端与CDN节点建连IP 该模式校验的是客户端与CDN节点之间建连使用的IP。 提交工单申请。
同时校验客户端真实IP、客户端与CDN节点建连IP 同时校验以下两个IP地址信息:
  • 用户请求中x-forwarded-for请求头携带的第一个IP。
  • 客户端与CDN节点之间建连使用的IP。
提交工单申请。

操作步骤

  1. 登录CDN控制台
  2. 在左侧导航栏,单击域名管理
  3. 域名管理页面,单击目标域名对应的管理
    域名管理
  4. 在指定域名的左侧导航栏,单击访问控制
  5. 单击IP黑/白名单页签。
  6. IP黑/白名单区域,单击修改配置
  7. 根据界面提示,配置IP黑名单白名单
    参数 说明
    名单类型 IP名单类型如下:
    • 黑名单

      黑名单内的IP无法访问加速域名下的所有资源。

    • 白名单

      只有白名单内的IP能访问加速域名下的资源,白名单以外的IP均无法访问。

    规则 输入IP段(不可重复,例如:192.168.0.0/24)或IP地址(例如192.168.0.1)。支持IPv6地址、IPv4地址,配置多个IP时使用回车符分隔。
    • IPv6:最多可配置700个IPv6地址,IP黑名单和白名单均支持IPv6地址(地址中的字母仅支持大写字母)。例如:FC00:AA3:0:23:3:300:300A:1234或FC00:0AA3:0000:0023:0003:0300:300A:1234。IPv6地址不支持缩写格式,例如:不支持FC00:0AA3::0023:0003:0300:300A:1234。支持输入IP段,例如:FC00:0AA3:0000:0000:0000:0000:0000:0000/48。
    • IPv4:最多可配置2000个IPv4地址。
    • IP地址字符串的总长度不能超过30 KB。
  8. 单击确定,完成配置。

配置示例

  • 白名单

    规则:192.168.2.0/24

    结果:只有客户端IP在192.168.2.1~192.168.2.254地址范围(包含192.168.2.1和192.168.2.254)时,才能访问该加速域名下的资源。

  • 黑名单

    规则:192.168.0.1

    结果:当客户端IP为192.168.0.1时,禁止访问该加速域名下的所有资源。

相关API

批量配置域名:调用BatchSetCdnDomainConfig进行批量域名配置,通过设置ip_black_list_set和ip_allow_list_set分别指定IP黑名单和IP白名单。