当业务面临恶意IP盗刷或特定攻击时,可通过配置IP黑白名单,在CDN边缘节点根据访问来源对请求进行过滤。此功能允许您仅放行可信IP(白名单)或精准拦截已知恶意IP(黑名单),从而保护源站资源,降低安全风险。
使用场景
配置项 | 使用场景 |
IP白名单 |
|
IP黑名单 |
|
计费说明
配置IP黑/白名单功能本身不收费,但被拦截的请求仍会产生少量费用。
计费原理:拦截发生在HTTP请求处理阶段(七层),此时CDN节点已经处理了请求,消耗了资源。
计费项:
流量费用:被拦截的请求会产生一次请求(包含HTTP头)和一次响应(403页面)的流量。这部分流量按标准CDN流量计费。
HTTPS请求数费用:如果域名使用HTTPS协议,由于TLS握手在IP拦截前已经完成,因此每次被拦截的HTTPS请求仍会计算一次HTTPS请求数费用。
注意事项
一个域名只能配置一条IP黑名单或IP白名单规则,且两者互斥,无法同时配置。
配置IP黑名单后,黑名单中的IP请求仍然可以到达CDN节点,但会被节点拒绝并返回403状态码。此时,CDN日志中会记录这些IP的请求信息,但这并不意味着IP黑名单未生效。
少数互联网服务提供商(ISP)在特定区域可能会分配私有IP地址给用户端,导致CDN节点接收到的是用户的私有IP地址。
说明私有IP地址范围有以下三个:
A类私有IP地址:10.0.0.0~10.255.255.255,子网掩码:10.0.0.0/8
B类私有IP地址:172.16.0.0~172.31.255.255,子网掩码:172.16.0.0/12
C类私有IP地址:192.168.0.0~192.168.255.255,子网掩码:192.168.0.0/16
操作步骤
登录CDN控制台。
在域名管理页面,找到目标域名,单击操作列的管理。
在指定域名的左侧导航栏,单击访问控制。
在IP黑/白名单区域,单击修改配置。
您可以根据下方示例,快速进行配置。您也可以参考参数说明,添加适用于自身业务的配置。
场景一:保护管理后台(白名单+规则引擎)
目标:仅允许公司办公室出口 IP
203.x.x.10
和203.x.x.11
访问/admin/
路径。配置:
类型:选择 白名单。
规则:填入
203.x.x.10
和203.x.x.11
(换行分隔)。高级配置-IP规则:选择使用真实建连IP作为判断依据。
高级配置-规则条件:在规则引擎页面配置一个规则,规则内容为URI包含
/admin/*
其中任意一个,忽略大小写。然后在规则条件选择此规则。
结果:只有来自这两个 IP 的请求才能访问
/admin/
目录,其他所有 IP 对该目录的访问都将被拒绝并返回 403 状态码。
场景二:允许合作伙伴的 IPv6 网段访问(白名单)
目标:仅允许合作伙伴的 IPv6 网段
FC00:0AA3:0000:0000:0000:0000:0000:0000/48
访问。配置:
类型:选择 白名单。
规则:填入
FC00:0AA3:0000:0000:0000:0000:0000:0000/48
。高级配置-IP规则:选择使用真实建连IP作为判断依据。
结果:只有来自该 IPv6 地址范围的请求可以访问您的域名资源。
场景三:紧急封禁攻击源(黑名单)
目标:发现一个来自
198.x.x.0/24
网段的 CC 攻击,需紧急封禁。配置:
类型:选择 黑名单。
规则:填入
198.x.x.0/24
。高级配置-IP规则:选择 使用真实建连IP作为判断依据。
结果:所有来自
198.x.x.0/24
网段的 IP 请求都将被 CDN 节点拒绝。
参数说明
参数 | 说明 |
类型 | 选择黑名单或白名单。
|
规则 | 规则格式要求
规则长度限制 规则输入框最大支持输入30 KB长度的字符,考虑到IP地址或者IP地址段的字符串长度有长有短,如果按平均长度来算,最多可配置大约700个IPv6地址/地址段或者2000个IPv4地址/地址段。如果您有更多的IP地址封禁需求,请开通ESA安全防护功能(支持海量IP封禁和按区域封禁服务),具体操作方法,请参见如何从CDN、DCDN升级到ESA和IP访问规则配置。 |
IP规则 | 支持选择以下三种规则:
|
规则条件 | 规则条件能够对用户请求中携带的各种参数信息进行识别,以此来决定某个配置是否对该请求生效。
|
拓展阅读:阿里云CDN如何识别客户端IP
CDN节点通过以下两种方式识别客户端IP,这两种方式各有优劣:
真实建连IP (TCP Connection IP)
定义:客户端与CDN边缘节点建立TCP连接时所使用的IP地址。
优点:无法被伪造,安全性最高。
缺点:当用户通过代理(如公司网络出口、NAT设备)访问时,此IP为代理服务器的IP,无法反映真实的客户端来源。
X-Forwarded-For
(XFF) 请求头定义:一个HTTP请求头字段,用于记录请求经过的每一个代理服务器的IP地址。CDN通常取其最左侧的IP作为客户端IP。
优点:能够穿透代理,获取到真实的客户端IP。
缺点:此请求头可由客户端任意伪造,存在严重安全风险。恶意用户可通过伪造XFF头来绕过基于此IP的访问控制。
当客户端直接访问 CDN 时,这两个 IP 通常是相同的。但如果客户端通过代理服务器访问 CDN,这两个 IP 将会不同。例如,客户端真实 IP 为 10.10.10.10
,代理服务器 IP 为 192.168.0.1
,则:
X-Forwarded-For
请求头的值可能为10.10.10.10, 192.168.0.1
。客户端真实 IP 为
10.10.10.10
。真实建连 IP 为
192.168.0.1
。
针对上述IP获取方式,CDN提供三种校验模式,以平衡安全性与业务灵活性。
IP地址校验模式 | 使用场景 | 工作原理 | 安全性评估 |
使用用户的x-forwarded-for请求头作为判断依据(默认) | 客户端均通过可信代理访问,且代理会正确设置XFF头。 | 仅提取并匹配 |
|
使用真实建连IP作为判断依据 | 客户端直接连接CDN,无中间代理服务器;或希望基于代理服务器IP进行访问控制。 | 仅使用客户端与CDN节点建立TCP连接的IP地址进行匹配。 | 建连IP无法伪造,提供最可靠的防护。 |
同时使用x-forwarded-for和真实建连IP作为判断依据 | 混合网络环境,部分用户直连,部分用户通过代理访问。 | 黑名单: 白名单: | 兼顾了识别真实客户端IP的灵活性与建连IP的安全性,是大多数场景下的最佳选择。 |
常见问题
相关API
添加IP黑/白名单配置
调用 BatchSetCdnDomainConfig
接口配置IP黑/白名单,相关参数参考配置IP白名单和配置IP黑名单。
更新IP黑/白名单配置
调用 BatchSetCdnDomainConfig
接口更新IP黑/白名单,相关参数参考配置IP白名单和配置IP黑名单。
接口的更新逻辑为:仅更新传入的参数。例如,若在请求中传入了ip_list
参数而未传入ip_acl_xfwd
,则ip_acl_xfwd
不会被更新。
该接口仅支持对IP列表、IP规则和规则条件进行更新,不允许更改配置类型。例如,无法通过该接口将IP黑名单配置更改为IP白名单配置。
如果您需要更改配置类型(例如,将IP黑名单配置更改为IP白名单配置),需按照以下步骤操作:
调用删除配置接口,移除现有的IP黑名单配置。
调用添加配置接口,重新添加IP白名单配置。
删除IP黑/白名单配置
步骤一:查询ConfigId
调用查询域名配置接口,查询配置的ConfigId
。如果您知道对应配置的ConfigId
,请忽略此步骤,参考步骤二进行删除配置。
步骤二:删除配置
调用DeleteSpecificConfig
接口,使用ConfigId
删除配置。