通过配置IP黑白名单过滤用户请求,拦截或允许特定IP的访问,可以有效限制访问来源,解决恶意IP盗刷、攻击等问题。
注意事项
该功能默认关闭,IP黑名单与IP白名单二选一,不可同时配置。
配置IP黑名单后,黑名单中的IP请求仍可访问到DCDN节点,但会被DCDN节点拒绝并返回403状态码,DCDN日志中仍会记录黑名单中这些IP的请求记录。
由于IP黑白名单功能采用的是七层HTTP协议的IP识别技术,因此在恶意请求被DCDN节点拦截的同时,会产生少量的流量费用,如果客户端使用HTTPS协议访问,还会产生HTTPS请求数费用(因为拦截恶意IP的时候,也同时消耗了DCDN节点的处理资源)。
少数ISP在特定区域可能会分配私有IP地址给用户端,导致DCDN节点接收到的是用户的私有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
IP地址校验模式
客户端与DCDN节点建立连接时,是否经过代理服务器,会影响客户端真实IP、客户端与DCDN节点建连IP。假设客户端真实IP为10.10.10.10
,代理服务器IP为192.168.0.1
。
没有经过代理服务器:
用户请求中x-forwarded-for请求头值:
10.10.10.10
。客户端真实IP(即x-forwarded-for请求头携带的第一个IP)=客户端与DCDN节点建连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
。客户端与DCDN节点建连IP=代理服务器IP=
192.168.0.1
。客户端真实IP(即x-forwarded-for请求头携带的第一个IP)≠客户端与DCDN节点建连IP。
对于不同的IP地址校验对象,阿里云DCDN的IP黑白名单功能支持三种IP地址校验模式。
IP地址校验模式 | 说明 |
使用用户的x-forwarded-for请求头作为判断依据 | 该模式为默认模式。该模式校验的是用户请求中x-forwarded-for请求头携带的左边第一个IP,这个IP对应客户端真实IP。 如果客户端与DCDN节点之间有经过代理服务器,那么客户端与DCDN节点建连使用的IP为代理服务器的IP,这种情况下使用“使用用户的x-forwarded-for请求头作为判断依据”模式进行IP黑白名单访问控制可能会存在不准确的情况。 |
使用真实建连IP作为判断依据 | 该模式校验的是客户端与DCDN节点之间建连使用的IP。 |
同时使用x-forwarded-for和真实建连IP作为判断依据 | 同时校验以下两个IP地址信息:
|
操作步骤
登录DCDN控制台。
在左侧导航栏,单击域名管理。
在域名管理页面,单击目标域名对应的配置。
在指定域名的左侧导航栏,单击访问控制。
单击右侧的IP黑/白名单页签。
在IP黑/白名单页签下,单击修改配置,然后在规则页面配置IP的黑名单或白名单。
参数
说明
名单类型
IP名单类型如下:
黑名单
黑名单内的IP无法访问加速域名下的所有资源。
白名单
只有白名单内的IP能访问加速域名下的资源,白名单以外的IP均无法访问。
规则
规则格式要求
支持输入IP地址或者IP地址段。
输入多个IP地址或者IP地址段时,使用换行符分隔。
支持IPv4类型的地址或者地址段:
IPv4地址示例:
192.168.0.1
。IPv4地址段示例:
192.168.0.0/24
。不支持输入通配网络地址
0.0.0.0/0
,如果需要表示全量IPv4地址,可以用以下两个子网来表示:0.0.0.0/1
128.0.0.0/1
支持IPv6类型的地址或者地址段:
IPv6地址示例:
FC00:AA3:0:23:3:300:300A:1234
。IPv6地址段示例:
FC00:0AA3:0000:0000:0000:0000:0000:0000/48
。地址中的英文字母不区分大小写,即支持全大写、全小写或者大小写混合,例如:
FC00:AA3:0:23:3:300:300A:1234
或fc00:0aa3:0000:0023:0003:0300:300a:1234
。不支持
: :
缩写格式,例如:不支持FC00:0AA3::0023:0003:0300:300A:1234
。不支持输入通配网络地址
0000:0000:0000:0000:0000:0000:0000:0000/0
,如果需要表示全量IPv6地址,可以用以下两个子网来表示:0000:0000:0000:0000:0000:0000:0000:0000/1
8000:0000:0000:0000:0000:0000:0000:0000/1
规则长度限制
规则输入框最大支持输入30 KB长度的字符,考虑到IP地址或者IP地址段的字符串长度有长有短,如果按平均长度来算,最多可配置大约700个IPv6地址/地址段或者2000个IPv4地址/地址段。如果您有更多的IP地址封禁需求,请开通DCDN安全防护功能(支持海量IP封禁服务),具体操作方法,请参见开通DCDN服务和配置区域封禁。
IP规则
支持选择以下三种规则:
使用用户的x-forwarded-for请求头作为判断依据
使用真实建连IP作为判断依据
同时使用x-forwarded-for和真实建连IP作为判断依据
如果x-forwarded-for请求头没有携带IP的话,将使用建联IP。
单击确定,完成配置。
配置示例
白名单
规则:
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
BatchSetDcdnDomainConfigs - 批量配置域名:调用BatchSetDcdnDomainConfigs进行批量域名配置,通过设置ip_black_list_set和ip_allow_list_set分别指定IP黑名单和IP白名单。