阿里云DDoS防护对接使用完全指南:从产品选型到自动化运维
1. DDoS防护产品体系概述
分布式拒绝服务攻击是当前互联网业务面临的最主要安全威胁之一。攻击者通过控制大量僵尸主机向目标服务器发起海量看似合法的访问请求,瞬间耗尽带宽、CPU或连接数资源,导致正常用户无法访问。阿里云提供了分层级的DDoS防护产品体系,涵盖从免费基础防护到企业级高防的完整方案。在开始对接之前,首先需要理解各产品的定位与差异。
1.1 DDoS基础防护
阿里云为每个公网IP默认提供免费的基础DDoS防护能力,防御上限为500Mbps至5Gbps。该服务无需购买和配置,开通云产品即自动生效。基础防护主要针对网络层和传输层的常见攻击类型进行清洗,如UDP反射攻击、SYN Flood、ACK Flood等。但其局限性也很明显:在当今动辄数十甚至上百Gbps的攻击流量面前,5Gbps的防护上限极易被突破,触发黑洞机制导致业务完全中断;同时基础防护无法抵御应用层攻击,对HTTP Flood等CC攻击无能为力。因此,对于有高安全需求的业务,必须升级至付费防护产品。
1.2 DDoS原生防护
DDoS原生防护是在基础防护之上的增值服务,其核心特点是透明接入——不改变源站IP地址,直接绑定阿里云ECS、SLB、EIP等云产品的公网IP即可生效。原生防护仅防护网络层和传输层的流量型攻击,不支持应用层CC攻击防御。防护能力方面,原生防护提供全力防护模式,标准型产品最高可达数百Gbps,增强型EIP可达Tbps级。该产品适合业务完全部署在阿里云上、无法接受IP变更、且主要面临偶发性大流量攻击的场景。原生防护支持与云监控联动,可针对资产IP的流量、黑洞事件、清洗事件设置告警通知。
1.3 DDoS高防
DDoS高防通过代理接入方式工作,需要将业务流量通过DNS解析或IP直连方式引流至高防IP,会变更对外服务IP。高防支持L3/L4网络层加L7应用层的全栈防护,可防御HTTP/HTTPS Flood等CC攻击。防护对象方面,高防可以保护任意公网IP,包括非阿里云服务器。防护能力基于全球清洗中心,提供Tbps级固定防护能力,且支持弹性带宽计费。高防适合遭受高频、高强度、含CC攻击的对抗性攻击,或需要防护非阿里云资产的场景。需注意,代理接入会引入约20ms的额外延迟。
1.4 产品选型决策矩阵
选择防护产品时需从以下五个维度系统评估:业务部署位置——全部在阿里云内选原生防护,混合云或线下IDC选高防;攻击类型——仅流量型攻击选原生防护,含CC攻击必须选高防;延迟敏感度——对延迟要求极高选原生防护,可接受20ms延迟选高防;成本预算——原生防护包年包月成本可控,高防采用保底带宽加弹性扩容计费;运维复杂度——原生防护部署简单绑定即生效,高防需配置DNS解析或IP切换并持续优化策略。
需要先登录阿里云控制台,点击:阿里云控制台
2. 接入前的准备工作
无论选择哪种防护产品,在正式接入前都需要完成以下准备工作,以确保接入过程平滑顺畅。
2.1 业务信息梳理
建议对接入DDoS高防进行防护的业务情况进行全面梳理。需要梳理的关键信息包括:网站或应用业务每天的流量峰值(Mbps和QPS),这直接决定了高防实例的业务带宽和QPS规格选择;业务的主要用户群体来源地区,方便后续配置区域封禁策略;业务是否为C/S架构,是否有App客户端、Windows客户端、Linux客户端等;源站服务器的操作系统及Web服务中间件类型;业务是否需要支持IPv6协议。充分的前期梳理能够为后续的防护配置提供精准的指导依据。
2.2 域名备案检查
如果网站业务要接入DDoS高防(中国内地)实例,网站域名必须已经完成ICP备案。DDoS高防(非中国内地)的网站则没有ICP备案的限制。此外,根据中国国家监管政策要求,DDoS高防不支持80、8080、443、8443端口接入配置,建议使用域名接入方式。
2.3 源站防火墙放行回源IP
接入DDoS高防后,业务流量会先经过高防清洗中心,再由高防回源到源站服务器。因此必须在源站的安全组或防火墙中,设置仅允许来自DDoS高防回源IP段的流量入站,拒绝其他所有公网IP的直接访问。这一操作是隐藏真实源站IP、防止攻击者绕过防护直接攻击源站的核心前提。具体回源IP段可在DDoS高防控制台的帮助文档中获取。
3. 网站业务域名接入配置
网站类业务(通过域名访问,如官网、电商平台)推荐使用DDoS高防的域名接入方式。这种方式通过修改DNS解析将流量引至高防清洗中心,能有效隐藏服务器真实IP。
3.1 添加网站配置
登录DDoS高防控制台的域名接入页面。在顶部菜单栏根据高防产品选择地域——DDoS高防(中国内地)选择中国内地地域,DDoS高防(非中国内地)选择非中国内地地域。单击添加网站,填写以下核心配置信息:
- 功能套餐:选择要关联的DDoS高防实例的功能套餐(标准功能或增强功能)
- 实例:选择已购买的DDoS高防实例。一个网站域名最多可关联8个DDoS高防实例,且只能关联同一种功能套餐下的实例
- 网站:填写要防护的域名,支持精确域名(如www.example.com)和泛域名(如*.example.com)。若同时存在泛域名和精确域名配置,高防优先使用精确域名所配置的转发规则和防护策略
- 协议类型:选择HTTP、HTTPS、Websocket或Websockets
- 服务器地址:设置高防回源时的后端服务器地址。源站在阿里云则填写ECS公网IP或SLB公网IP;源站在阿里云外则通过ping域名获取公网IP
3.2 修改DNS解析
添加网站配置完成后,DDoS高防会为网站生成一个CNAME地址。需要将网站域名的DNS解析指向该高防CNAME地址,高防才能转发业务流量为网站防御DDoS攻击。如果多个域名需要接入同一个高防实例,可以开通CNAME复用功能,只需在高防配置一个域名接入,其他域名直接将DNS解析到高防的CNAME地址即可。
3.3 批量导入配置
对于需要接入大量域名的场景,可以在域名接入页面单击批量导入,通过XML文件格式传入网站配置。这大大提高了大规模接入场景下的配置效率。
4. 非网站业务端口接入配置
非网站业务(如游戏服务器、数据库服务、API接口等通过IP地址和端口访问的业务)需要配置端口转发规则。
4.1 创建端口转发规则
在DDoS高防控制台的端口接入页面,添加端口转发规则。需要指定的核心参数包括:转发协议(TCP或UDP)、高防转发端口、源站端口及源站IP。配置完成后,业务流量会根据规则先经过高防清洗,再转发到源站服务器。需要注意的是,DDoS高防不支持53端口接入配置。
4.2 非网站业务DDoS防护策略
开启DDoS防护策略后,可以对接入高防的非网站业务的连接速度、包长度等参数进行限制,有效缓解小流量的连接型攻击。在非网站业务DDoS防护页签中可以进行精细化配置。
5. 防护策略配置
接入完成后,需要根据业务特性配置精细化的防护策略,以实现最优的防护效果。
5.1 流量清洗阈值设置
DDoS基础防护会默认设置清洗阈值,也支持手动调整。流量清洗阈值不能超过当前云产品实例公网带宽的1.5倍,不能低于60Mbps。阈值的设定需要基于业务流量基线——设置过低会误清洗正常流量,设置过高则可能在攻击流量超过阈值后才触发清洗。对于DDoS原生防护实例,可以在清洗阈值页签中批量调整流量和报文的清洗阈值。
5.2 DDoS全局防护策略
DDoS高防提供宽松、正常、严格三种全局防护模式。为域名设置完转发规则时,高防会默认开启全局防护策略,防护模式为正常,支持手动调整。每种模式包含不同的防护规则集,可根据业务对误杀率的容忍度进行选择。
5.3 AI智能防护
开启AI智能防护后,系统会根据海量攻击样本自动学习和调整防护策略。AI智能防护能够动态适应攻击模式的变化,特别适合面对快速演变的攻击手法。
5.4 黑白名单与区域封禁
DDoS高防支持对已接入防护的网站业务设置IP黑白名单。添加黑名单时可设置超时时间。区域封禁功能允许一键阻断指定地理区域来源IP对网站业务的所有访问请求。如果网站业务频繁受到来自某个区域的攻击,可以将该区域设置为封禁区域。对于非网站业务,建议通过基础设施DDoS防护策略下的流量封禁来实现类似效果。防护策略的执行优先级从高到低依次为:ICMP协议禁用、白名单、黑名单、区域封禁、端口封禁、指纹过滤。
5.5 CC攻击防护
DDoS高防提供自定义CC安全防护策略,专门用于防御应用层CC攻击。CC攻击模仿真实用户行为,消耗服务器CPU和内存资源。高防的CC防护策略支持精细化配置,通过限制单个IP的请求频率、验证码挑战等方式有效识别并拦截恶意请求。
6. 自动化对接:API与SDK
对于需要将DDoS防护能力集成到自有运维体系的企业,阿里云提供了完整的OpenAPI和SDK支持。
6.1 OpenAPI概览
DDoS防护产品提供了丰富的OpenAPI接口,涵盖实例管理、防护对象管理、策略配置、事件查询等维度。开发者可以在OpenAPI门户中在线调试各接口,查看请求和返回结果,OpenAPI门户会自动生成相应的SDK调用示例。
6.2 Python SDK调用示例
以下示例演示如何使用阿里云Python SDK查询DDoS原生防护实例详情:
from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.acs_exception.exceptions import ClientException, ServerException
from aliyunsdkddospro.request.v20170725 import DescribeInstanceListRequest
# 初始化客户端
client = AcsClient(
'<your-access-key-id>',
'<your-access-key-secret>',
'cn-hangzhou'
)
# 构建请求
request = DescribeInstanceListRequest.DescribeInstanceListRequest()
request.set_accept_format('json')
# 发送请求
try:
response = client.do_action_with_exception(request)
print(response)
# 解析响应获取实例列表
import json
instance_list = json.loads(response)
for instance in instance_list.get('InstanceList', []):
print(f"实例ID: {instance.get('InstanceId')}, 状态: {instance.get('Status')}")
except ClientException as e:
print(f'客户端错误: {e}')
except ServerException as e:
print(f'服务端错误: {e}')此示例展示了SDK初始化的标准流程:创建AcsClient客户端、构建请求对象、发送请求并处理响应。通过类似的模式可以调用所有DDoS防护相关的OpenAPI接口。
6.3 自动化攻击响应脚本
可以编写自动化脚本,在检测到攻击时自动调整防护策略或触发告警。以下示例展示如何通过API查询资产是否遭受攻击并触发告警:
from aliyunsdkcore.client import AcsClient
from aliyunsdkddosbasic.request.v20180720 import DescribeDdosEventListRequest
import time
def check_ddos_status(ip_address):
client = AcsClient('<access-key>', '<access-secret>', 'cn-hangzhou')
request = DescribeDdosEventListRequest.DescribeDdosEventListRequest()
request.set_accept_format('json')
request.set_PageNo(1)
request.set_PageSize(10)
request.set_InstanceId(ip_address)
response = client.do_action_with_exception(request)
import json
result = json.loads(response)
events = result.get('Events', [])
if events:
for event in events:
if event.get('Status') == 'attack':
print(f"[告警] IP {ip_address} 正在遭受DDoS攻击,类型: {event.get('AttackType')}")
# 此处可接入企业微信、钉钉或邮件告警
return events
# 定时巡检
if __name__ == '__main__':
while True:
check_ddos_status('<your-eip-address>')
time.sleep(60) # 每分钟检查一次6.4 Terraform基础设施即代码
Terraform支持阿里云DDoS防护资源的声明式管理,适合在CI/CD流程中自动化部署防护配置。以下Terraform配置示例演示如何购买DDoS高防(非中国内地)实例:
# main.tf - DDoS高防实例Terraform配置
provider "alicloud" {
region = "ap-southeast-1"
}
# 购买DDoS高防(非中国内地)实例
resource "alicloud_ddoscoo_instance" "example" {
instance_name = "my-ddos-instance"
bandwidth = "100" # 业务带宽,单位Mbps
base_bandwidth = "30" # 保底防护带宽,单位Gbps
elastic_bandwidth = "100" # 弹性防护带宽,单位Gbps
service_bands = "30" # 防护端口数
product_plan = "ddoscoo" # 产品规格
}
# 输出实例信息
output "instance_id" {
value = alicloud_ddoscoo_instance.example.id
}
output "instance_name" {
value = alicloud_ddoscoo_instance.example.instance_name
}通过Terraform还可以配置端口接入规则和域名接入规则。使用Terraform管理DDoS防护资源,可以实现配置的版本控制、审计追踪和自动化部署。
7. 监控与告警配置
及时发现和响应DDoS攻击是保障业务连续性的关键环节。
7.1 DDoS高防与云监控集成
DDoS高防(中国内地)和DDoS高防(非中国内地)均已集成云监控告警功能。可以在云监控中配置DDoS高防的实时监控大盘,直观、全面地了解业务防护情况。支持配置的事件报警包括黑洞事件、清洗事件等。
7.2 DDoS原生防护监控配置
DDoS原生防护同样支持与云监控联动。可以针对资产IP的流量、黑洞事件、清洗事件设置告警通知,快速发现异常并缩短响应时间。当发生DDoS攻击时,阿里云会通过短信、站内信、邮件等方式通知到用户。
7.3 告警自动化联动
高级运维场景下,可以配置云监控的报警功能与API接口联动。当监控到DDoS攻击时,通过API接口自动调用开启DDoS原生防护代播实例的牵引防护,攻击结束后自动停止牵引。这种全自动化的攻击响应机制能够最大限度地减少人工干预时间。
8. 安全最佳实践
8.1 隐藏真实源站IP
这是所有DDoS防护方案的核心前提。必须确保所有用户流量都只能通过高防IP或CDN节点访问业务,切断攻击者直接攻击源服务器的路径。具体操作为:在源站ECS的安全组规则中,设置仅允许来自DDoS高防回源IP段或CDN节点IP段的流量入站,拒绝其他所有公网IP的直接访问。
8.2 多层级纵深防御
对于网站业务,强烈建议联动WAF(Web应用防火墙)服务。WAF能够防御CC攻击、SQL注入等应用层威胁,与DDoS高防形成网络层加应用层的纵深防御体系。DDoS原生防护和WAF的组合使用方案适用于同时防御四层DDoS攻击和七层Web攻击、CC攻击的场景。
8.3 健康检查与会话保持
在高防中为多个源站IP配置健康检查,确保流量只分发给健康的服务器。对于需要保持登录状态的应用,开启会话保持功能。
8.4 收敛公网暴露面
使用公网IP和在公网暴露服务是遭受DDoS攻击的前提。如果业务仅供内部使用或对特定用户的网络提供服务,应避免公网暴露。可以通过内网或专线访问云上服务,或使用PrivateLink减少非必要的公网通信。
9. 计费与成本优化
DDoS防护产品的计费模式各有不同,合理规划可以有效控制成本。DDoS基础防护完全免费。DDoS原生防护采用包年包月模式,例如原生防护2.0中小企业普惠版年费约10402元,后付费企业版按天计费。DDoS高防采用保底带宽加弹性扩容的计费方式——基础配置如保底防护带宽30Gbps、业务带宽100Mbps,超出保底部分按弹性用量计费。高防还提供95弹性QPS模式,在业务QPS突发增长时保障服务不被限流。成本优化建议:根据业务流量峰值基线选择合适规格,避免过度采购;对于偶发性攻击风险,可优先考虑按量付费的原生防护后付费模式;定期评估实际使用量,适时调整保底与弹性配置。
10. 常见问题
问1:DDoS原生防护和高防的主要区别是什么?
原生防护透明接入不改变IP,仅限阿里云内资源,防护L3/L4流量型攻击。高防通过代理接入会变更IP,支持任意公网IP,提供L3-L7全栈防护包括CC攻击。根据业务是否在阿里云内、是否需要CC防护、能否接受IP变更来选择。
问2:网站域名接入高防后为什么访问不了?
首先检查DNS解析是否已正确指向高防CNAME地址。其次确认源站安全组是否已放行高防回源IP段。再检查域名是否已完成ICP备案(仅中国内地高防要求)。最后确认高防实例未到期且防护带宽未被耗尽。
问3:如何防止攻击者绕过DDoS高防直接攻击源站?
在源站ECS的安全组规则中设置仅允许来自DDoS高防回源IP段的流量入站,拒绝其他所有公网IP的直接访问。同时确保业务的所有对外入口都通过高防或CDN接入,不暴露任何可直接访问的公网IP。
问4:清洗阈值应该设置多少?
清洗阈值应基于业务流量基线设定,不能超过云产品实例公网带宽的1.5倍,不能低于60Mbps。建议先开启正常模式观察一段时间,根据实际攻击情况和业务访问模式逐步调整。
问5:Terraform可以管理哪些DDoS防护资源?
Terraform可以管理DDoS高防实例的购买与配置、端口接入规则、域名接入规则等多种资源,实现基础设施即代码的自动化管理。
问6:DDoS攻击发生时如何快速响应?
提前配置云监控告警,在攻击发生时第一时间接收通知。可编写自动化脚本通过API查询攻击状态并触发告警。高级场景可配置告警与API联动,自动开启牵引防护。同时建议提前梳理好应急响应流程和联系人清单。



