通过识别客户端IP来过滤用户请求,拦截特定IP的访问或者允许特定IP的访问,可以用来解决恶意IP盗刷、攻击等问题。本文介绍如何配置IP黑白名单。
注意事项
- 该功能默认关闭,IP黑名单与IP白名单二选一,不可同时配置。
- 最多可配置约700个IPv6地址,2000个IPv4地址。
- 配置IP黑名单后,黑名单中IP的请求仍可访问到DCDN节点,但会被DCDN节点拒绝并返回403状态码,DCDN日志中仍会记录黑名单中这些IP的请求记录。
- 由于IP黑白名单功能采用的是七层HTTP协议的IP识别技术,因此在恶意请求被DCDN节点拦截的同时,会产生少量的流量费用,如果客户端使用HTTPS协议访问,还会产生HTTPS请求数费用(因为拦截恶意IP的时候,也同时消耗了DCDN节点的处理资源)。
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请求头值:
- 经过代理服务器:
- 用户请求中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。
- 用户请求中x-forwarded-for请求头值:
对于不同的IP地址校验对象,阿里云DCDN的IP黑白名单功能支持三种IP地址校验模式,默认支持校验客户端真实IP。
IP地址校验模式 | 说明 | 配置方法 |
---|---|---|
仅校验客户端真实IP | 该模式校验的是用户请求中x-forwarded-for请求头携带的第一个IP,这个IP对应真实客户端IP。XFF IP获取方式,请参见获取客户端真实IP。 如果用户请求经过代理服务器,客户端与DCDN节点建连IP为代理服务器的IP,这种情况下使用“仅校验客户端真实IP”模式进行IP黑白名单访问控制可能会存在不准确的情况。 | 默认模式,无需配置。 |
仅校验客户端与DCDN节点建连IP | 该模式校验的是客户端与DCDN节点之间建连使用的IP。 | 需填写信息申请。 |
同时校验客户端真实IP、客户端与DCDN节点建连IP | 同时校验以下两个IP地址信息:
| 需填写信息申请。 |
操作步骤
- 登录DCDN控制台。
- 在左侧导航栏,单击域名管理。
- 在域名管理页面,单击目标域名对应的配置。
- 在指定域名的左侧导航栏,单击访问控制。
- 单击右侧的IP黑/白名单页签。
- 打开IP黑/白名单开关,根据界面提示,配置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。
- 黑名单
- 单击确定,完成配置。
配置示例
- 白名单
规则: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进行批量域名配置,通过设置ip_black_list_set和ip_allow_list_set分别指定IP黑名单和IP白名单。