01-DDoS攻击检测与防范配置
本章节下载: 01-DDoS攻击检测与防范配置 (519.39 KB)
DDoS(Distributed Denial of Service,分布式拒绝服务)攻击是一类利用分布在互联网中的主机或服务器发起的攻击行为,旨在暂时性或永久性地瘫痪攻击目标的网络服务能力。
DDoS攻击通常表现为来源不同的报文泛洪,这些恶意报文会挤占目标的网络资源,造成其网络拥塞,加重其处理器的负担,从而使正常用户的请求得不到有效响应。
DDoS攻击的分布式特性使其拥有比传统DoS(Denial of Service,拒绝服务)攻击更大的攻击流量以及更强的隐蔽性,因此检测与防范DDoS攻击将更加困难。
DDoS攻击检测与防范功能支持对各类DDoS攻击进行有效防范。
攻击者利用诸如DNS、HTTP和SIP等应用层协议、TCP与UDP等传输层协议甚至网络层协议实现DDoS攻击。
应用层DDoS攻击是攻击者利用应用层协议的交互特性发起的针对特定服务端口的DDoS攻击,表现为大量伪造的应用层服务请求(或响应),迫使目标系统忙于应对虚假请求(或响应)而不能处理正常业务。
DNS服务器收到DNS query报文时会试图进行域名解析,这将消耗DNS服务器的系统资源。攻击者利用这一特点,向DNS服务器发送大量伪造的DNS query报文,占用DNS服务器的网络带宽,消耗其计算资源,使得正常的DNS query报文得不到处理。
DNS客户端收到任何DNS reply报文时都会进行处理,无论之前是否发送过DNS query报文。攻击者利用这一特点,向DNS客户端发送大量伪造的DNS reply报文,占用DNS客户端的网络带宽,消耗其计算资源,使得正常的DNS reply报文得不到处理。
HTTP服务器收到HTTP GET/POST请求时会进行一系列复杂的操作(比如字符串搜索、数据库遍历、数据组装、格式化转换等等),这些操作会消耗大量系统资源。攻击者利用这一特点,向HTTP服务器发送大量伪造的HTTP GET/POST请求,造成HTTP服务器崩溃,使其无法响应HTTP请求。
SIP服务器收到SIP INVITE报文后需要分配一定的资源用于跟踪和建立会话。攻击者利用这一特点,向SIP服务器发送大量伪造的SIP INVITE请求,消耗SIP服务器的系统资源,使得正常用户的请求得不到处理。关于SIP协议的详细介绍,请参见“语音配置指导”中的“SIP”。
连接型DDoS攻击是攻击者利用通信双方在建立和断开TCP连接时所交互的SYN、ACK、SYN-ACK、RST等报文发起的DDoS攻击,意在耗尽攻击目标的网络连接资源或增加攻击目标的处理负担。
通信双方在建立TCP连接的过程中,需要各自维护半连接信息,这将消耗通信双方的内存资源。攻击者利用这一特点,向服务器(连接接收方)发送大量伪造源IP地址的SYN报文。服务器为维护半连接信息将耗尽内存,导致正常用户无法与服务器建立TCP连接。
客户端(连接发起方)收到SYN ACK报文时,需要根据报文四元组(源IP地址、源端口号、目的IP地址和目的端口号)查找对应的TCP连接,这将消耗客户端的计算资源。攻击者利用这一特点,向客户端发送大量伪造的SYN ACK报文,降低客户端的处理性能,影响正常报文的处理。
ACK报文出现在TCP连接的整个生命周期中(包括连接建立、数据传输和连接断开阶段)。服务器收到ACK报文时,需要根据报文四元组查找对应的TCP连接,这将消耗服务器的计算资源。攻击者向服务器发送大量伪造的ACK报文,加重服务器的处理负荷,影响正常报文的处理。
RST报文是TCP连接的复位报文,用于在异常情况下关闭TCP连接。如果攻击者向服务器发送大量伪造的RST报文,可能导致服务器关闭正常的TCP连接。另外,服务器收到RST报文时,需要查找对应的TCP连接,大量的无效查询操作将降低其服务性能。
攻击者向服务器发送大量伪造的TCP分片报文,严重消耗服务器的处理资源和网络带宽,降低其服务性能。
流量型DDoS攻击是攻击者利用面向无连接的协议报文发起的DDoS攻击,意在拥塞攻击目标的网络链路,使正常访问得不到及时响应。
攻击者向服务器发送大量UDP报文,占用服务器的网络带宽,使正常访问遭受延迟甚至阻塞。UDP泛洪攻击报文一般由攻击者利用攻击软件自动生成,因此攻击报文的源IP地址、源端口和报文负载往往体现出一定的统计特征。
攻击者向服务器发送大量UDP分片报文,占用服务器的网络带宽和处理性能,使正常访问遭受延迟甚至阻塞。
攻击者向服务器发送大量ICMP报文(例如ping报文),使服务器忙于应对这些请求(或响应)而不能处理正常的业务;另一方面,ICMP泛洪攻击报文往往体积巨大,攻击有可能造成服务器网络拥塞。
攻击者向服务器发送大量ICMP分片报文,使服务器忙于处理分片重组;另一方面,大量分片会侵占服务器的网络带宽,造成服务器网络拥塞。
攻击者向服务器发送大量IP报文,拥塞服务器的网络链路,致使正常访问得不到有效响应。
DDoS攻击检测与防范框架包括DDoS攻击检测设备、DDoS攻击清洗设备和管理中心三大组件:
· DDoS攻击检测设备负责从网络流量中检测DDoS攻击,将DDoS攻击的目标IP地址和目标端口号以及攻击类型等信息以攻击告警日志的形式上报管理中心。
· DDoS攻击清洗设备既支持DDoS攻击检测功能,又提供多重清洗手段,对DDoS攻击流量执行丢弃、限速等操作。
· 管理中心是DDoS攻击检测与防范框架的中枢,提供基于Web的管理界面,具有如下功能:
¡ 对DDoS攻击检测设备与DDoS攻击清洗设备进行集中配置和管理。
¡ 对DDoS攻击检测设备与DDoS攻击清洗设备上报的日志进行分析。
¡ 向旁路模式部署的DDoS攻击清洗设备下发引流策略(详情请参见1.3.2 部署模式)。
¡ 提供DDoS攻击检测与防范统计信息的可视化展示。
关于管理中心的配置方法请参考相关Web联机帮助,本文对此不进行详细介绍。
为了方便描述,下文用检测设备指代DDoS攻击检测设备,清洗设备指代DDoS攻击清洗设备。
如图1-1所示,清洗设备直路部署于内部网络出口,由管理中心对其进行配置、管理和监控。
该部署模式具有如下特点:
· 无需部署检测设备,框架组网简单,所需投资小。
· 设备可直接对检测到的DDoS攻击流量执行清洗操作,无需进行流量牵引,以免部分DDoS攻击流量被设备转发。
· 清洗设备对所有进出网络的流量进行处理,可能造成性能瓶颈。
因此该模式适合在小流量场景下(如中小企业网络出口)部署。
该部署模式下的DDoS攻击检测与防范流程如下:
(1) 清洗设备负责对流经设备的双向流量进行DDoS攻击检测,发现DDoS攻击时向管理中心上报攻击告警日志。
(2) 管理中心对攻击告警日志进行分析,随即向清洗设备下发(或经由用户手工确认下发)启动防御指令,启动清洗设备上配置的相应DDoS攻击清洗流程。
(3) 清洗设备对DDoS攻击流量执行丢弃、限速等操作。
(4) 清洗设备对清洗后的正常流量进行转发。
如图1-2所示,旁路部署模式下检测设备与清洗设备均旁路部署于网络核心设备处,管理中心负责对检测设备与清洗设备进行配置、管理和监测。
该部署模式具有如下特点:
· 检测设备与清洗设备分别进行DDoS攻击检测与防范,任务执行高效,可应对大流量DDoS攻击。
· 检测设备与清洗设备均旁路部署的网络出口,对其它业务性能影响小,单台设备损坏不会造成网络瘫痪。
· 动态引流模式下,清洗设备仅对DDoS攻击相关流量进行DDoS攻击清洗,防护精准。动态引流模式的详细介绍,请参见1.3.4 DDoS攻击引流模式。
因此该模式适合在大流量场景下(如数据中心防护)部署。
该部署模式下的DDoS攻击检测与防范流程如下:
(1) 网络核心设备将外部网络访问内部网络的流量利用端口镜像方式复制或利用流量统计技术采集至检测设备(详情请参见1.3.3 DDoS攻击检测模式),由检测设备对流量进行DDoS攻击检测。
(2) 检测设备监测到DDoS攻击时向管理中心上报攻击告警日志。
(3) 管理中心对攻击告警日志进行分析,随即向清洗设备下发(或经由用户手工确认下发)启动防御指令和引流策略。引流策略包含一条目的地址为攻击目标IP地址的主机路由(即回注路由),其下一跳为网络核心设备上与清洗设备直连的接口的IP地址。
(4) 清洗设备收到引流策略后,将该主机路由利用BGP发布至网络核心设备(关于BGP的详细介绍请参见“三层技术-IP路由配置指导”中的“BGP”)。
(5) 网络核心设备收到一条目的地址为攻击目标IP地址的主机路由(即引流路由),其下一跳为清洗设备上与网络核心设备直连的接口的IP地址。网络核心设备通过该路由,将目的地址为攻击目标IP地址的流量(DDoS攻击相关流量)转发至清洗设备进行DDoS攻击清洗。
(6) 清洗设备对DDoS攻击流量执行丢弃、限速等操作。
(7) 清洗设备将清洗过后的正常流量通过回注路由转发至网络核心设备。
(8) 网络核心设备对正常流量进行转发。
为避免回注至网络核心设备的流量通过匹配引流路由重新被转发至清洗设备形成路由环路,用户需要在网络核心设备上手工配置策略路由,将来自与清洗设备直连接口的流量从特定接口转发至内部网络中。关于策略路由的详细介绍请参见“三层技术-IP路由配置指导”中的“策略路由”。
检测设备支持如下两种DDoS攻击检测模式:
· 深度报文检测(DPI,Deep Packet Inspection)
利用端口镜像对流经路由器、交换机等网络设备的流量进行1:1复制,之后由检测设备对镜像流量实施DDoS攻击检测。由于真实网络流量被完整地复制到检测设备上,因而该检测模式适用于需要精细化DDoS攻击检测的小流量场景或需要执行报文应用层检测的场景(如企业网)。
· 深度流检测(DFI,Deep Flow Inspection)
利用诸如Netflow、Netstream和sFlow等流量统计技术对流经路由器、交换机等网络设备的流量进行1:N采样,将采样结果使用流量统计报文封装,发送至检测设备实施DDoS攻击检测。流量统计报文作为真实网络流量的概要,包含报文目的IP地址、源IP地址、目的端口号、源端口号、协议号、ToS(Type of Service,服务类型)、报文长度等信息,但不包含报文的应用层信息,因此该检测模式适用于仅需粗粒度DDoS攻击检测的大流量场景(如城域网)。
直路部署模式下,清洗设备使用深度报文检测模式进行DDoS攻击检测。
清洗设备支持如下两种DDoS攻击引流模式:
· 静态引流
用户通过管理中心向清洗设备下发引流策略,该引流策略可将目的为指定IP地址的报文牵引至清洗设备处进行DDoS攻击检测和清洗。该引流模式下,无论检测设备是否检测到DDoS攻击,匹配引流策略的报文都将被牵引至清洗设备。该模式适用于对重点防护目标进行实时的DDoS攻击检测与防范。
· 动态引流
检测设备检测出DDoS攻击时,将攻击日志上报管理中心。管理中心继而生成引流策略,将其自动下发或经由用户手工确认下发至清洗设备。然后DDoS攻击流量将被牵引至清洗设备处进行DDoS攻击清洗。该引流模式下,对于匹配引流策略的报文,其目的IP地址必然是遭受DDoS攻击的IP地址。该模式能避免对无关流量进行DDoS攻击检测与防范,提高设备的处理效率。
清洗设备上往往同时存在静态引流与动态引流配置,以满足差异化的DDoS攻击检测与防范需求。
DDoS攻击检测与防范功能利用层次化方法逐步检测和清洗DDoS攻击流量:
(1) DDoS攻击检测
检测设备对镜像报文或流量统计报文进行分析,检测出DDoS攻击后将攻击日志上报管理中心。
(2) DDoS攻击清洗
清洗设备将按照以下顺序对攻击报文进行处理:
a. 黑名单
丢弃来自指定网段的报文。
b. 白名单
放行来自指定网段的报文。
c. 指纹防护
清洗设备对引流流量进行指纹匹配,对匹配指纹的报文执行丢弃、限速等操作。
d. DDoS攻击检测
通过静态引流方式牵引来的流量往往包含DDoS攻击无关流量,因此需要在清洗设备上对流量进行第二次DDoS攻击检测,以标记出真正的DDoS攻击相关流量。
e. DDoS攻击源验证
清洗设备代理服务器向客户端主动发起访问,以验证客户端的真实性。
f. 丢弃攻击报文
g. 报文限速
通过在清洗设备上配置阈值,限制IP报文流速。
DDoS攻击防护对象是一种层次化的策略管理方式,其包含一组受保护IP地址段。DDoS攻击检测与防范策略基于DDoS攻击防护对象配置,用户可将需要执行相同DDoS攻击检测与防范策略的受保护IP地址配置于同一DDoS攻击防护对象内,以降低策略配置和管理的负担。
DDoS攻击防护对象可分为如下两类:
· 缺省DDoS攻击防护对象:缺省存在,保护所有IP地址,无需用户手工配置受保护IP地址段。
· 非缺省DDoS攻击防护对象:需要用户手工创建并配置受保护IP地址段。
对于进入设备DDoS攻击检测与防范处理流程的报文,设备首先根据其目的IP地址匹配对应的非缺省DDoS攻击防护对象:
· 若报文匹配上某个非缺省DDoS攻击防护对象,那么设备将按照该DDoS攻击防护对象下配置的DDoS攻击检测与防范策略对报文进行处理。
· 若报文未匹配任何非缺省DDoS攻击防护对象
¡ 若已开启缺省DDoS攻击防护对象功能,设备将按照缺省DDoS攻击防护对象下配置的DDoS攻击检测与防范策略对报文进行处理。
¡ 若未开启缺省DDoS攻击防护对象功能,设备不对报文进行DDoS攻击检测与防范处理,直接将报文交给后续流程处理。
为了方便描述,下文用防护对象指代DDoS攻击防护对象。
DDoS攻击检测基于防范阈值判断报文流量是否为指定协议的DDoS攻击。在防护对象下配置针对特定协议的DDoS攻击防范阈值,将同时开启针对该协议报文的DDoS攻击检测功能。之后设备将统计每秒访问该防护对象内每个受保护IP地址的该协议报文的数目,若某统计数目持续超过该协议报文的DDoS攻击防范阈值时,系统判定此受保护IP地址遭到该协议报文的DDoS攻击。
在一些特殊网络环境下(比如流经设备的网络流量类型和大小经常发生变化的场景),用户基于经验手工配置的DDoS攻击防范阈值往往无法反映真实网络流量的情况:
· 若用户配置的DDoS攻击防范阈值过大,可能导致设备将DDoS攻击流量当做正常流量予以放行,造成严重的安全风险。
· 若用户配置的DDoS攻击防范阈值过小,可能导致设备将正常流量误判为DDoS攻击流量予以阻断,严重影响用户的正常访问。
为了反应网络流量的真实情况,可在防护对象下开启DDoS攻击防范阈值学习功能。在防护对象下开启DDoS攻击防范阈值学习功能后,设备将定期对访问受保护IP地址的不同协议的报文进行统计,并将统计值定期上报给管理中心,由管理中心进行数据分析、DDoS攻击防范阈值计算和策略下发,由此得出的DDoS攻击防范阈值将更加符合真实网络流量的情况。
数据报文的网络层和传输层头部中有很多字段,包括报文长度、TTL、源和目的端口等。在不同网络中,这些字段以及报文载荷中的一些信息都具有一定的统计特征,这些特征就是指纹。指纹防护功能可对匹配指纹特征的报文进行过滤、限速等操作,能有效防范诸如UDP泛洪攻击等流量型DDoS攻击。清洗设备提供以下两种指纹特征建立方式:
· 手工指定指纹
手工指定指纹的所有特征,包括指纹的内容、指纹在IP报文头中的偏移量以及指纹长度。
· 指纹自学习
仅手工指定指纹在IP报文头中的偏移量及指纹长度,不指定具体的指纹内容,由清洗设备通过对攻击报文特征的统计来自动学习指纹特征。
DDoS攻击源验证功能用来防范应用层泛洪攻击和SYN泛洪攻击。在清洗设备上开启相应DDoS攻击源验证功能后,设备能对客户端与服务器之间的应用层连接或TCP连接进行代理。当清洗设备检测到有服务器受到应用层泛洪攻击或SYN泛洪攻击时,设备将该服务器IP地址添加为源验证受保护IP地址,主动对访问源验证受保护IP地址的报文源发起验证,过滤来自验证失败方的报文流量,以保护服务器免受应用层泛洪攻击或SYN泛洪攻击的影响。
源验证受保护IP地址与防护对象下的受保护IP地址是不同的概念:所有源验证受保护IP地址均为防护对象下的受保护IP地址,而防护对象下的受保护IP地址不一定是源验证受保护IP地址。
该功能目前支持Safe Reset验证模式,该模式下设备仅对外部网络发往内部网络的SYN报文进行处理,因此该模式也称为单向代理模式。
如图1-3所示,TCP proxy收到某客户端向受保护服务器(其地址为受保护IP地址)发来的SYN报文后,先代替服务器向客户端回应序号错误的SYN ACK报文。如果TCP proxy收到客户端回应的正确RST报文,则认为该TCP连接请求通过TCP代理的验证。此后一定时间内,TCP proxy收到来自该客户端的TCP报文后,直接将其向转发给服务器,允许客户端和服务器之间直接建立TCP连接。
由于TCP proxy对客户端发起的TCP连接进行了干预,因此Safe Reset模式要求客户端的实现严格遵守TCP协议栈的规定,如果客户端的TCP协议栈实现不完善,即便是合法用户,也可能由于其未通过TCP proxy的严格检查而无法访问服务器。而且,该方式依赖于客户端向服务器发送RST报文后再次发起请求的功能,因此启用SYN泛洪攻击源验证后,客户端发起的每个TCP连接的建立时间会有相应增加。
图1-3 Safe Reset模式的TCP源验证处理流程
如图1-4所示,DNS客户端验证设备收到向受保护服务器发送的UDP类型的DNS query报文(其目的地址为受保护IP地址)后,代替服务器向客户端回应DNS Truncate(TC)报文,要求客户端以TCP方式进行域名请求。如果是合法客户端,则它收到DNS Truncate报文之后会向DNS客户端验证设备发送目的端口为53的TCP SYN报文。DNS客户端验证设备收到此报文后,先代替服务器向客户端回应序号错误的SYN ACK报文,之后,如果能够收到客户端回应的RST报文,则认为该客户端通过了DNS客户端验证。对于通过了DNS验证的客户端,设备直接转发其后续报文,不对报文进行处理。
由于DNS query泛洪攻击源验证对客户端发起的DNS请求进行了干预,因此要求客户端的实现严格遵守TCP/IP协议栈以及DNS协议的规定,如果客户端的协议栈实现不完善,即便是合法用户,也可能由于未通过DNS query泛洪攻击源验证的严格检查而无法访问服务器。而且,该方式依赖于客户端向服务器发送RST报文后再次发起请求的功能,因此启用DNS query泛洪攻击源验证后,正常客户端发起的首个DNS请求的响应时间会有所增加。
图1-4 DNS query源验证处理流程
如图1-5所示,DNS reply验证设备收到某服务器发送的UDP类型的DNS reply报文(其目的地址为受保护IP地址)后,代替DNS客户端向服务器发送DNS query报文,该报文的Query ID和源端口号由验证设备生成。如果是合法的服务器,则它收到含有新的Query ID和源端口号的DNS query报文后,会向验证设备发送含有新的Query ID和目的端口号的DNS reply报文。DNS reply验证设备收到此报文后,提取Query ID和目的端口号,如果与验证设备发送的DNS query报文的Query ID和源端口号一致,则认为服务器通过了DNS reply验证。对于通过了DNS reply验证的服务器,设备直接转发其后续报文,不对报文进行处理。
图1-5 DNS reply源验证处理流程
如图1-6所示,HTTP客户端验证设备收到某客户端发送的SYN报文(其目的地址为受保护IP地址)后,首先以SYN Cookie方式进行TCP源验证,客户端的TCP连接通过验证之后,设备将对客户端发送的HTTP GET请求报文进行两次重定向验证,具体流程如下所述。
(1) 第一次重定向验证:设备收到客户端的HTTP GET请求之后向其发送HTTP Redirect报文,并在重定向报文中设置标记位要求客户端结束本次TCP连接。该过程中,设备会记录该客户端的信息。当前的TCP连接结束之后,客户端与设备进行一轮新的TCP三次握手。
(2) 第二次重定向验证:设备收到客户端向重定向地址发起的HTTP GET请求之后,向其发送HTTP Redirect报文,并在重定向报文中设置标记位要求客户端结束本次TCP连接。该过程中,设备会检查客户端是否经过了第一次重定向,以及本次HTTP访问的URI是否是设备重定向的地址。如果检查通过,设备会将该客户端加入到信任IP表项中,该客户端的后续HTTP GET请求报文将被直接进行透传。
图1-6 HTTP GET源验证处理流程
如图1-7所示,HTTP客户端验证设备收到某客户端发送的SYN报文(其目的地址为受保护IP地址)后,首先以SYN Cookie方式进行TCP源验证。
客户端的TCP连接通过验证之后,设备将对客户端发送的HTTP POST请求报文依次进行重定向验证和超时验证,具体流程如下所述。
(1) 重定向验证:设备收到客户端的HTTP POST请求之后向其发送带有Set-Cookie验证字段的HTTP Redirect报文,并在重定向报文中设置标记位要求客户端结束本次TCP连接。该过程中,设备会记录该客户端的信息。当前的TCP连接结束之后,客户端与设备进行一轮新的TCP三次握手。
(2) 超时验证:设备收到客户端发起的带有Cookie字段的HTTP POST请求之后,向其发送HTTP 超时报文,并在报文中设置标记位要求客户端结束本次TCP连接。该过程中,设备会检查客户端是否经过了第一次重定向,以及本次HTTP报文中是否带有有效的Cookie值。如果检查通过,设备会将该客户端加入到信任IP表项中,该客户端的后续HTTP POST请求报文将被直接进行透传。
图1-7 HTTP POST源验证处理流程
如图1-8所示,SIP客户端验证设备收到某客户端发送的UDP类型的INVITE报文(其目的地址为受保护IP地址)后,代替服务器向客户端回应OPTIONS报文,该报文中携带branch值信息。如果是合法客户端,则它收到OPTIONS报文之后会向SIP客户端验证设备发送OPTIONS ACK报文。SIP客户端验证设备收到此报文后,检查OPTIONS ACK报文中的branch值和发送的OPTIONS报文中的branch值是否相同,若相同,则认为该客户端通过了SIP客户端验证。对于通过了SIP验证的客户端,设备直接转发其后续报文,不对报文进行处理。若branch值不相同,则认为该客户端未通过SIP客户端验证,设备直接丢弃报文。
清洗设备支持如下几类黑名单:
· 全局静态黑名单
全局静态黑名单表项由用户手工配置,该表项永远生效,除非用户手工将其删除。设备将丢弃源地址匹配全局静态黑名单表项的报文。
· 动态黑名单
DDoS攻击源验证失败方的IP地址将被自动添加进动态黑名单中,在动态黑名单表项的老化时间内,来自该IP地址的报文都将被设备丢弃。
清洗设备支持如下几类白名单:
· 全局静态白名单
全局静态白名单表项由用户手工配置,该表项永远生效,除非用户手工将其删除。设备将放行源地址匹配全局静态白名单表项的报文,不对其进行除IP报文限速外的DDoS攻击检测与防范处理。
· 信任IP地址列表
DDoS攻击源验证成功方的IP地址将被自动添加进信任IP地址列表中,在信任IP地址列表表项的老化时间内,来自该IP地址的报文都将被设备放行,设备不会对其进行除IP报文限速外的DDoS攻击检测与防范处理。
清洗设备支持对访问受保护IP地址的报文进行限速,用户可在防护对象内配置针对指定类型报文限速的阈值,清洗设备会丢弃报文流量中超出该阈值的部分。
设备在执行DDoS攻击检测与防范任务时,需要周期性地生成各类DDoS攻击检测与防范日志,并将其上报给管理中心。管理中心通过DDoS攻击检测与防范日志对当前网络的流量类型和大小进行统计,并跟踪DDoS攻击的相关信息。
流量分析日志用于封装访问受保护IP地址报文的速率和协议类型信息,不同设备向管理中心上报流量分析日志的方式有所不同:
· 对于检测设备和以直路模式部署的清洗设备,设备运行期间会一直周期性上报流量分析日志。
· 对于以旁路模式部署的清洗设备,在其收到管理中心下发的启动防御指令时,开始周期性上报流量分析日志,并在收到管理中心下发的停止防御指令时停止上报。
攻击告警日志包含攻击目标的IP地址、端口号和攻击流量等信息,分为攻击开始日志与攻击停止日志:
· 当检测设备或以直路模式部署的清洗设备监测到发生DDoS攻击(特定报文速率持续达到或超过该类型报文的DDoS攻击防范阈值)时,设备向管理中心发送攻击开始日志。
· 当检测设备或以直路模式部署的清洗设备监测到DDoS攻击停止(特定报文速率持续低于该类型报文的DDoS攻击防范阈值的3/4)时,设备向管理中心发送攻击停止日志。
指纹防护功能也会触发生成攻击告警日志,攻击开始日志与攻击停止日志的触发条件与本节所述类似。
当发生DDoS攻击后,检测设备开始周期性地向管理中心上报攻击信息日志。攻击信息日志包含DDoS攻击的目的IP地址、目的端口号、源IP地址和源端口号,以及当前攻击流量等信息。当检测设备监测到DDoS攻击停止后,其不再上报攻击信息日志。
清洗设备不支持上报攻击信息日志。
Top5指纹日志用于记录每组指纹策略的Top 5匹配数统计信息。清洗设备以一分钟为周期上报Top5指纹日志。
· AFC2020-D-G设备为DDoS攻击检测设备,仅支持检测设备相关功能。
· AFC2120-G设备为DDoS攻击清洗设备,仅支持清洗设备相关功能。
检测设备上的DDoS攻击检测与防范配置任务如下:
(1) 配置DDoS攻击检测模式
(2) (可选)配置流量统计报文输出器
(3) (可选)配置流量统计报文转发功能
(4) 配置DDoS攻击检测与防范策略
a. 创建非缺省防护对象
b. (可选)开启缺省防护对象功能
c. (可选)配置自定义DDoS攻击类型
d. 配置DDoS攻击防范阈值
e. (可选)开启DDoS攻击防范阈值学习功能
(5) 配置管理流量放行功能
清洗设备上的DDoS攻击检测与防范配置任务如下:
(7) 配置清洗设备部署模式
(8) 配置DDoS攻击检测与防范策略
a. 创建非缺省防护对象
b. (可选)开启缺省防护对象功能
c. (可选)配置静态黑名单功能
d. (可选)配置静态白名单功能
e. (可选)配置指纹防护功能
f. (可选)配置自定义DDoS攻击类型
g. 配置DDoS攻击防范阈值
用于对静态引流来的报文进行第二次DDoS攻击检测以标记出DDoS攻击流量。
h. (可选)开启DDoS攻击防范阈值学习功能
i. (可选)开启DDoS攻击源验证功能
j. (可选)配置动态黑名单表项的老化时间
k. (可选)配置报文限速功能
(9) 配置管理流量放行功能
(10) 配置DDoS攻击检测与防范日志输出功能
检测设备支持深度报文检测和深度流检测两种DDoS攻击检测模式,用于满足不同流量场景下对DDoS攻击检测与防范的不同需求。
深度流检测模式下,设备支持对NetFlow V5、NetFlow V9、NetStream V5、NetStream V9和sFlow V5格式的流量统计报文进行分析。
仅支持在检测设备上配置DDoS攻击检测模式。
切换DDoS攻击检测模式时会导致DDoS攻击检测流程短暂中断,建议连续两次切换DDoS攻击检测模式间至少相隔5分钟。
(1) 进入系统视图。
system-view
(2) 配置DDoS攻击检测模式。
anti-ddos detection-mode { flow | mirror }
缺省情况下,DDoS攻击检测模式为flow检测,即采用深度流检测模式。
深度流检测是对流量统计报文输出器(通常是路由器或交换机)发送到检测设备的流量统计报文进行分析,进而判断是否存在DDoS攻击的功能。
在检测设备上配置流量统计报文输出器即是配置发送流量统计报文的网络设备的IP地址、流量统计报文的目的端口号、流量统计报文的协议类型以及报文采样率。
仅支持在检测设备上配置流量统计报文输出器。
(1) 进入系统视图。
system-view
(2) 配置流量统计报文输出器。
anti-ddos flow-agent ip ip-address port destination-port flow-type { netflow | netstream | sflow } [ sampling-rate sampling-rate-value ]
缺省情况下,检测设备上不存在流量统计报文输出器配置。
该功能可将检测设备接收到的流量统计报文转发至其他设备。当检测设备接收到匹配的流量统计报文(即设备上存在相应的流量统计报文输出器配置)时,存在两种处理方式:
· 设备上配置了流量统计报文转发:
¡ 若收到的是IPv4流量统计报文,设备先将流量统计报文依次转发至全部IPv4流量统计报文转发配置所示IP地址和端口处,再对流量统计报文进行解析处理。
¡ 若收到的是IPv6流量统计报文,设备先将流量统计报文依次转发至全部IPv6流量统计报文转发配置所示IP地址和端口处,再对流量统计报文进行解析处理。
· 设备上未配置流量统计报文转发,则设备直接对流量统计报文进行解析处理。
该功能目前支持对NetFlow V5、NetFlow V9、NetStream V5、NetStream V9以及sFlow V5报文进行转发。
仅支持在检测设备上配置流量统计报文转发。
(1) 进入系统视图。
system-view
(2) 配置IPv4流量统计报文转发。
anti-ddos flow-forward ip ip-address port port-number
缺省情况下,检测设备上不存在IPv4流量统计报文转发配置。
(3) 配置IPv6流量统计报文转发。
anti-ddos flow-forward ipv6 ipv6-address port port-number
缺省情况下,检测设备上不存在IPv6流量统计报文转发配置。
配置清洗设备的部署模式即是配置DDoS攻击检测与防范框架的设备部署模式,DDoS攻击检测与防范框架支持两种设备部署模式:直路部署与旁路部署。
仅支持在清洗设备上配置部署模式。检测设备仅支持旁路部署模式。
(1) 进入系统视图。
system-view
(2) 配置清洗设备的部署模式。
anti-ddos cleaner deploy-mode { inline | out-of-path }
缺省情况下,清洗设备的部署模式为直路部署。
DDoS攻击检测与防范功能基于防护对象进行策略配置,以实现层次化的策略管理。用户可在非缺省防护对象下配置受保护IP地址,设备会对同一防护对象下的所有受保护IP地址执行相同的DDoS攻击检测与防范策略。
(1) 进入系统视图。
system-view
(2) 创建一个非缺省防护对象,并进入防护对象视图。
anti-ddos zone id zone-id
缺省情况下,不存在非缺省防护对象。
(3) (可选)配置非缺省防护对象的名称。
name zone-name
缺省情况下,非缺省防护对象未配置名称。
(4) 添加受保护IPv4地址范围。
ip-range start-ip end-ip
缺省情况下,非缺省防护对象内未配置受保护IPv4地址范围。
(5) 添加受保护IPv6地址范围。
ipv6-range start-ip end-ip
缺省情况下,非缺省防护对象内未配置受保护IPv6地址范围。
缺省防护对象用于配置和管理缺省DDoS攻击检测与防范策略。开启缺省防护对象功能后,若流经设备的报文未匹配任何非缺省防护对象,那么设备将采用缺省防护对象下配置的DDoS攻击检测与防范策略对其进行处理。
(1) 进入系统视图。
system-view
(2) 开启缺省防护对象功能。
anti-ddos default-zone enable
缺省情况下,缺省防护对象功能处于关闭状态。
(3) 进入缺省防护对象视图。
anti-ddos zone default
全局静态黑名单基于IP地址与子网掩码进行配置,可对来自指定网络的报文进行丢弃。
(1) 进入系统视图。
system-view
(2) 配置全局静态黑名单。
anti-ddos blacklist { ip source-ip-address ip-mask-length | ipv6 source-ipv6-address ipv6-mask-length }
缺省情况下,不存在全局静态黑名单表项。
全局静态白名单基于IP地址与子网掩码进行配置,可对来自指定网络的报文进行放行。
(1) 进入系统视图。
system-view
(2) 配置全局静态白名单。
anti-ddos whitelist { ip source-ip-address ip-mask-length | ipv6 source-ipv6-address ipv6-mask-length }
缺省情况下,不存在全局静态白名单表项。
指纹防护功能用于对匹配指纹的报文进行丢弃、放行或限速。指纹防护功能基于指纹防护策略进行配置,可在指纹防护策略中手工指定指纹或配置指纹自学习参数:
· 手工指定指纹
在指纹防护策略中配置具体的指纹、指纹在IP报文头中的偏移量、指纹长度、指纹防护阈值以及对匹配指纹的报文所执行的操作。在之后的指纹防护流程中,清洗设备根据偏移量和指纹长度提取IP报文头中的报文特征,将其与指纹进行匹配。如果二者匹配,则表示命中指纹特征,然后进行报文计数。当匹配该指纹特征的报文数超过指纹防护阈值时,则对之后匹配的报文执行相应操作。
· 指纹自学习
在指纹防护策略中配置指纹在IP报文头中的偏移量、指纹长度、指纹防护阈值以及对匹配指纹的报文所执行的操作。清洗设备根据所配置的偏移量和指纹长度对报文相应位置的内容(即报文特征)进行统计,借此学习报文指纹。统计报文特征时,若发现具有某个报文特征的报文数很高,便可将该特征作为DDoS攻击的指纹,当匹配指纹的报文数超过所配置的指纹防护阈值后,对之后拥有此特征的报文执行相应操作。
配置完指纹策略后,需要将其纳入某个指纹防护策略组中,并在防护对象下应用该指纹防护策略组,这样所配置的指纹策略才能生效。
仅支持在清洗设备上配置指纹防护功能。
(1) 进入系统视图。
system-view
(2) 进入指纹防护策略组视图。
fingerprint-group { ip | ipv6 } group-id
(3) 配置指纹防护策略。
fingerprint id protocol { icmp | other | tcp | udp } { offset offset-value length length-value [ content content ] } &<1-3> threshold threshold-value action { bandwidth-limit | drop | watch }
缺省情况下,指纹防护策略组中未配置指纹防护策略。
(4) 进入防护对象视图。
anti-ddos zone { id zone-id | default }
(5) 应用指纹防护策略组。
fingerprint-group apply { ip | ipv6 } group-id
缺省情况下,防护对象没有应用指纹防护策略组。
DDoS攻击防范阈值对于DDoS攻击检测与防范功能至关重要。当设备监测到向某受保护IP地址发送特定协议报文的速率持续达到或超过该协议报文的DDoS攻击防范阈值时,即认为该受保护IP地址受到该协议报文的DDoS攻击。此后,当设备监测到向该受保护IP地址发送该协议报文的速率在持续5秒内均低于恢复阈值(DDoS攻击防范阈值的3/4)时,即认为DDoS攻击结束。
若设备上配置了多类不同DDoS攻击的检测功能,设备将按如下优先级进行检测:
(1) 首先检测应用层DDoS攻击,包括DNS query、DNS reply、HTTP和SIP攻击。
(2) 之后检测连接型和流量型DDoS攻击,包括SYN、SYN-ACK、ACK、RST、UDP和ICMP攻击。
需要注意的是,一旦检测到受保护IP地址遭到某类DDoS攻击,设备将跳过其他优先级更低的DDoS攻击检测,转而执行后续流程:
· 对于检测设备,其将攻击日志发送至管理中心,继续对后续报文执行DDoS攻击检测。
· 对于清洗设备,其将对检测出的DDoS攻击流量执行相应DDoS攻击清洗操作(DDoS攻击源验证与丢包)。
(1) 进入系统视图。
system-view
(2) 进入防护对象视图。
anti-ddos zone { id zone-id | default }
(3) 配置DNS query泛洪攻击防范阈值并开启DNS query泛洪攻击检测。
dns-query-flood detection threshold { bit-based value | packet-based value }
缺省情况下,未配置DNS query泛洪攻击防范阈值,DNS query泛洪攻击检测功能处于关闭状态。
(1) 进入系统视图。
system-view
(2) 进入防护对象视图。
anti-ddos zone { id zone-id | default }
(3) 配置DNS reply泛洪攻击防范阈值并开启DNS reply泛洪攻击检测。
dns-reply-flood detection threshold { bit-based value | packet-based value }
缺省情况下,未配置DNS reply泛洪攻击防范阈值,DNS reply泛洪攻击检测功能处于关闭状态。
(1) 进入系统视图。
system-view
(2) 进入防护对象视图。
anti-ddos zone { id zone-id | default }
(3) 配置HTTP泛洪攻击防范阈值并开启HTTP泛洪攻击检测。
http-flood detection threshold { bit-based value | packet-based value }
缺省情况下,未配置HTTP泛洪攻击防范阈值,HTTP泛洪攻击检测功能处于关闭状态。
(1) 进入系统视图。
system-view
(2) 进入防护对象视图。
anti-ddos zone { id zone-id | default }
(3) 配置SIP泛洪攻击防范阈值并开启SIP泛洪攻击检测。
sip-flood detection threshold { bit-based value | packet-based value }
缺省情况下,未配置SIP泛洪攻击防范阈值,SIP泛洪攻击检测功能处于关闭状态。
(1) 进入系统视图。
system-view
(2) 进入防护对象视图。
anti-ddos zone { id zone-id | default }
(3) 配置SYN泛洪攻击防范阈值并开启SYN泛洪攻击检测。
syn-flood detection threshold { bit-based value | packet-based value }
缺省情况下,未配置SYN泛洪攻击防范阈值,SYN泛洪攻击检测功能处于关闭状态。
(1) 进入系统视图。
system-view
(2) 进入防护对象视图。
anti-ddos zone { id zone-id | default }
(3) 配置SYN-ACK泛洪攻击防范阈值并开启SYN-ACK泛洪攻击检测。
syn-ack-flood detection threshold { bit-based value | packet-based value }
缺省情况下,未配置SYN-ACK泛洪攻击防范阈值,SYN-ACK泛洪攻击检测功能处于关闭状态。
(1) 进入系统视图。
system-view
(2) 进入防护对象视图。
anti-ddos zone { id zone-id | default }
(3) 配置ACK泛洪攻击防范阈值并开启ACK泛洪攻击检测。
ack-flood detection threshold { bit-based value | packet-based value }
缺省情况下,未配置ACK泛洪攻击防范阈值,ACK泛洪攻击检测功能处于关闭状态。
(1) 进入系统视图。
system-view
(2) 进入防护对象视图。
anti-ddos zone { id zone-id | default }
(3) 配置RST泛洪攻击防范阈值并开启RST泛洪攻击检测。
rst-flood detection threshold { bit-based value | packet-based value }
缺省情况下,未配置RST泛洪攻击防范阈值,RST泛洪攻击检测功能处于关闭状态。
(1) 进入系统视图。
system-view
(2) 进入防护对象视图。
anti-ddos zone { id zone-id | default }
(3) 配置UDP泛洪攻击防范阈值并开启UDP泛洪攻击检测。
udp-flood detection threshold { bit-based value | packet-based value }
缺省情况下,未配置UDP泛洪攻击防范阈值,UDP泛洪攻击检测功能处于关闭状态。
(1) 进入系统视图。
system-view
(2) 进入防护对象视图。
anti-ddos zone { id zone-id | default }
(3) 配置ICMP泛洪攻击防范阈值并开启ICMP泛洪攻击检测。
icmp-flood detection threshold { bit-based value | packet-based value }
缺省情况下,未配置ICMP泛洪攻击防范阈值,ICMP泛洪攻击检测功能处于关闭状态。
(1) 进入系统视图。
system-view
(2) 进入防护对象视图。
anti-ddos zone { id zone-id | default }
(3) 配置HTTPS泛洪攻击防范阈值并开启HTTPS泛洪攻击检测。
https-flood detection threshold { bit-based value | packet-based value }
缺省情况下,未配置HTTPS泛洪攻击防范阈值,HTTPS泛洪攻击检测功能处于关闭状态。
(1) 进入系统视图。
system-view
(2) 进入防护对象视图。
anti-ddos zone { id zone-id | default }
(3) 配置ICMP分片泛洪攻击防范阈值并开启ICMP分片泛洪攻击检测。
icmp-frag-flood detection threshold { bit-based value | packet-based value }
缺省情况下,未配置ICMP分片泛洪攻击防范阈值,ICMP分片泛洪攻击检测功能处于关闭状态。
(1) 进入系统视图。
system-view
(2) 进入防护对象视图。
anti-ddos zone { id zone-id | default }
(3) 配置TCP分片泛洪攻击防范阈值并开启TCP分片泛洪攻击检测。
tcp-frag-flood detection threshold { bit-based value | packet-based value }
缺省情况下,未配置TCP分片泛洪攻击防范阈值,TCP分片泛洪攻击检测功能处于关闭状态。
(1) 进入系统视图。
system-view
(2) 进入防护对象视图。
anti-ddos zone { id zone-id | default }
(3) 配置UDP分片泛洪攻击防范阈值并开启UDP分片泛洪攻击检测。
udp-frag-flood detection threshold { bit-based value | packet-based value }
缺省情况下,未配置UDP分片泛洪攻击防范阈值,UDP分片泛洪攻击检测功能处于关闭状态。
(1) 进入系统视图。
system-view
(2) 进入防护对象视图。
anti-ddos zone { id zone-id | default }
(3) 配置IP流量攻击防范阈值并开启IP流量攻击检测。
bandwidth-detection destination-ip threshold threshold-value
缺省情况下,未配置IP流量攻击防范阈值,IP流量攻击检测功能处于关闭状态。
(1) 进入系统视图。
system-view
(2) 进入防护对象视图。
anti-ddos zone { id zone-id | default }
(3) 配置自定义DDoS攻击防范阈值并开启自定义DDoS攻击检测。
user-defined attack-type id id detection threshold { bit-based value | packet-based value }
缺省情况下,未配置自定义DDoS攻击防范阈值,自定义DDoS攻击检测功能处于关闭状态。
除了预定义DDoS攻击类型之外,设备还支持配置自定义DDoS攻击类型。用户可基于不同协议类型,配置针对该协议的攻击报文识别特征,实现对更广泛的DDoS攻击的检测与防范。
(1) 进入系统视图。
system-view
(2) 配置基于指定协议的自定义DDoS攻击类型。
anti-ddos user-defined attack-type id id protocol protocol-number [ packet-length { equal | greater-than | less-than } packet-length ]
缺省情况下,不存在基于指定协议的自定义DDoS攻击类型。
(1) 进入系统视图。
system-view
(2) 配置基于ICMP协议的自定义DDoS攻击类型。
anti-ddos user-defined attack-type id id protocol icmp [ packet-length { equal | greater-than | less-than } packet-length ] [ icmp-type icmp-type icmp-code icmp-code ]
缺省情况下,不存在基于ICMP协议的自定义DDoS攻击类型。
(1) 进入系统视图。
system-view
(2) 配置基于ICMPv6协议的自定义DDoS攻击类型。
anti-ddos user-defined attack-type id id protocol icmpv6 [ packet-length { equal | greater-than | less-than } packet-length ] [ icmpv6-type icmpv6-type icmpv6-code icmpv6-code ]
缺省情况下,不存在基于ICMPv6协议的自定义DDoS攻击类型。
(1) 进入系统视图。
system-view
(2) 配置基于TCP协议的自定义DDoS攻击类型。
anti-ddos user-defined attack-type id id protocol tcp [ packet-length { equal | greater-than | less-than } packet-length ] [ port port-num port-type { source | destination } ] [ tcp-flag flag-value ]
缺省情况下,不存在基于TCP协议的自定义DDoS攻击类型。
(1) 进入系统视图。
system-view
(2) 配置基于UDP协议的自定义DDoS攻击类型。
anti-ddos user-defined attack-type id id protocol udp [ packet-length { equal | greater-than | less-than } packet-length ] [ port port-num port-type { source | destination } ]
缺省情况下,不存在基于UDP协议的自定义DDoS攻击类型。
用户凭经验配置的DDoS攻击防范阈值有可能不符合当前网络环境,无论所配置的DDoS攻击防范阈值过大或是过小,都将对设备服务质量造成很大影响。DDoS攻击防范阈值学习功能用于自动分析并计算符合当前网络环境的DDoS攻击防范阈值。
在非缺省防护对象下开启该功能后,设备以五分钟为周期统计访问防护对象内IP地址的流量基线值,并将统计值上报给管理中心,由管理中心自动进行数据分析、DDoS防范阈值计算和策略下发。自动计算的DDoS攻击防范阈值参考了当前网络的实际流量大小,因而比用户凭经验配置的防范阈值更符合当前网络环境。建议用户在不了解实际网络流量大小的情况下开启本功能。
目前仅支持在非缺省防护对象下开启DDoS攻击防范阈值学习功能。
(1) 进入系统视图。
system-view
(2) 进入防护对象视图。
anti-ddos zone id zone-id
(3) 开启DDoS攻击防范阈值学习功能。
threshold-learning enable
缺省情况下,防护对象的DDoS攻击防范阈值学习功能处于关闭状态。
DDoS攻击源验证是DDoS攻击检测所对应的清洗操作,该功能可令受保护IP地址免受应用层泛洪攻击或SYN泛洪攻击的影响。当检测到某受保护IP地址遭到特定协议报文的DDoS攻击时,清洗设备可能有两种不同的操作:
· 若清洗设备上开启了该协议报文的DDoS攻击源验证功能,则清洗设备会将该受保护IP地址添加到源验证受保护IP列表中,并对报文源进行合法性检查:
¡ 通过合法性检查的报文源IP地址将被加入信任IP地址列表中,之后清洗设备将放行来自该IP地址的报文。信任IP地址表项的老化时间固定为1小时。
¡ 未通过合法性检查的报文源IP地址将被加入动态黑名单中,之后清洗设备将丢弃来自该IP地址的报文。动态黑名单表项的老化时间可配置,详情请参见“1.12.10 配置动态黑名单表项的老化时间”。
· 若清洗设备不支持或未开启该协议报文的DDoS攻击源验证功能,则清洗设备会将所有被标记为攻击的流量丢弃,即将访问某受保护IP地址的特定协议报文的流速限制在恢复阈值以下。
仅支持在清洗设备上开启DDoS攻击源验证功能。
system-view
(2) 进入防护对象视图。
anti-ddos zone { id zone-id | default }
(3) 开启DNS query泛洪攻击源验证功能。
dns-query-flood defense source-verify
缺省情况下,DNS query泛洪攻击源验证功能处于关闭状态。
system-view
(2) 进入防护对象视图。
anti-ddos zone { id zone-id | default }
(3) 开启DNS reply泛洪攻击源验证功能。
dns-reply-flood defense source-verify
缺省情况下,DNS reply泛洪攻击源验证功能处于关闭状态。
由于DNS reply泛洪攻击源验证功能对服务器发送的DNS应答进行了干预,因此要求服务器的实现严格遵守TCP/IP协议栈以及DNS协议的规定,如果服务器的协议栈实现不完善,即便是合法DNS reply报文,也可能导致源验证不通过。
system-view
(2) 进入防护对象视图。
anti-ddos zone { id zone-id | default }
(3) 开启HTTP泛洪攻击源验证功能。
http-flood defense source-verify
缺省情况下,HTTP泛洪攻击源验证功能处于关闭状态。
system-view
(2) 进入防护对象视图。
anti-ddos zone { id zone-id | default }
(3) 开启SIP泛洪攻击源验证功能。
sip-flood defense source-verify
缺省情况下,SIP泛洪攻击源验证功能处于关闭状态。
如果客户端发送的报文首部信息不完整,即便是合法用户,也可能由于报文解析失败而导致其无法通过源验证。
system-view
(2) 进入防护对象视图。
anti-ddos zone { id zone-id | default }
(3) 开启SYN泛洪攻击源验证功能。
syn-flood defense source-verify
缺省情况下,SYN泛洪攻击源验证功能处于关闭状态。
动态黑名单用于屏蔽来自DDoS攻击源验证失败方IP地址的报文流量,动态黑名单表项在其老化时间内生效。动态黑名单表项的老化时间采用全局唯一化配置,更改后的老化时间对其后新增加的动态黑名单表项生效。
仅支持在清洗设备上配置动态黑名单表项的老化时间。
(1) 进入系统视图。
system-view
(2) 配置动态黑名单表项的老化时间。
anti-ddos blacklist timeout aging-time
缺省情况下,动态黑名单表项的老化时间为1分钟。
报文限速用于防范IP流量攻击,该功能可限制目的为防护对象内IP地址的报文流速。在防护对象下开启IP报文限速功能并配置限速阈值后,清洗设备将丢弃访问该防护对象的流量中超出速率阈值部分的报文。
仅支持在清洗设备上配置报文限速功能。
执行本配置后,设备会对发往DDoS攻击防护对象内IP地址的指定类型的报文进行限速,将向每个IP地址发送该类型报文的最大速率限制为所配置的value参数的值,超出速率上限的报文将被设备丢弃。对于未上送到CPU的流量,限速功能不生效,例如M9K走逻辑转发的流量。
在DDoS攻击防护对象下可以开启针对多种类型报文的限速功能:
· 首先进行TCP、UDP、ICMP和其他报文类型的速率限制,再进行TCP分片报文、UDP分片报文和ICMP分片报文的速率限制,最后进行IP报文的总速率限制。
若同时配置某类型报文与其分片报文的限速阈值,建议将分片报文限速阈值配置为更小的值。
(1) 进入系统视图。
system-view
(2) 进入防护对象视图。
anti-ddos zone { id zone-id | default }
(3) 开启指定类型报文的限速功能,并配置流速阈值。
bandwidth-limit destination-ip type { icmp | icmp-fragment | other | tcp | tcp-fragment | total | udp | udp-fragment } max-rate value
缺省情况下,未配置各类型流速阈值,报文限速功能处于关闭状态。
设备在执行DDoS攻击检测任务时会将处理完成的流量直接丢弃。这样一来,发往设备的管理报文也可能被丢弃,导致设备的Telnet、SSH和HTTP等管理手段不可用。
配置管理流量放行功能,将相应接口划为DDoS攻击检测与防范业务的带外接口,设备不会对进入带外接口的流量执行DDoS攻击检测与防范操作。
(1) 进入系统视图。
system-view
(2) 配置相应的三层接口为DDoS攻击检测与防范业务的带外接口。
anti-ddos out-of-band interface { interface-type interface-number } &<1-10>
管理中心通过设备定期发来的DDoS攻击检测与防范日志分析网络流量,掌握DDoS攻击检测与防范流程的执行状态。配置日志源IP地址和日志目的IP地址后,设备会自动将相关日志上送管理中心。
设备仅支持配置一个日志源IP地址和一个日志目的IP地址,若多次配置日志源IP地址或日志目的IP地址,最后一次配置生效。
(1) 进入系统视图。
system-view
(2) 配置日志源IP地址。
anti-ddos log-local-ip { ip ipv4-address | ipv6 ipv6-address }
缺省情况下,未配置日志源IP地址。
(3) 配置日志目的IP地址和端口号。
anti-ddos log-server-ip { ip ipv4-address | ipv6 ipv6-address } [ port port-number ]
缺省情况下,未配置日志目的IP地址和端口号。
完成上述配置后,在任意视图下执行display命令可以显示DDoS攻击检测与防范配置的执行情况,通过查看显示信息验证配置的效果。
在用户视图下,执行reset命令可以清除DDoS攻击检测与防范的统计信息。
表1-1 DDoS攻击检测与防范配置的显示和维护
操作 |
命令 |
显示全局静态黑名单表项 |
display anti-ddos blacklist [ ip source-ip-address | ipv6 source-ipv6-address ] |
显示指定流量统计报文输出器的统计信息 |
display anti-ddos flow-agent statistics ip ip-address port destination-port [ slot slot-number ] |
显示NetFlow/NetStream V9模板信息 |
display anti-ddos flow-agent-template ip ip-address [ slot slot-number ] |
显示流量统计报文的转发统计信息 |
display anti-ddos flow-forward statistics [ slot slot-number ] |
显示DDoS攻击源验证受保护IPv4表项 |
display anti-ddos source-verify { dns-query | dns-reply | http | sip | syn } protected ip [ ip-address ] [ count ] [ slot slot-number ] |
显示DDoS攻击源验证受保护IPv6表项 |
display anti-ddos source-verify { dns-query | dns-reply | http | sip | syn } protected ipv6 [ ipv6-address ] [ slot slot-number ] [ count ] |
显示DDoS攻击源验证信任IPv4表项 |
display anti-ddos source-verify { dns-query | dns-reply | http | sip | syn } trusted ip [ ip-address ] [ slot slot-number ] [ count ] |
显示DDoS攻击源验证信任IPv6表项 |
display anti-ddos source-verify { dns-query | dns-reply | http | sip | syn } trusted ipv6 [ ipv6-address ] [ slot slot-number ] [ count ] |
显示指定目的IP地址的限速统计信息 |
display anti-ddos statistics bandwidth-limit destination-ip { ipv4 ipv4-address | ipv6 ipv6-address } [ slot slot-number ] |
显示DDoS攻击防护统计信息 |
display anti-ddos statistics { destination-ip { ipv4 [ ip-address ] | ipv6 [ ipv6-address ] } | destination-port | source-ip { ipv4 | ipv6 } | source-port } [ slot slot-number ] |
显示指定被攻击者的DDoS攻击防护统计信息 |
display anti-ddos statistics destination-ip { ipv4 ip-address | ipv6 ipv6-address } { destination-port | source-ip | source-port } [ slot slot-number ] |
显示全局静态白名单表项 |
display anti-ddos whitelist [ ip source-ip-address | ipv6 source-ipv6-address ] |
显示防护对象的配置信息 |
display anti-ddos zone configuration [ default | id zone-id ] |
清空所有流量统计报文输出器的统计信息 |
reset anti-ddos flow-agent statistics |
清空flow转发的的统计信息 |
reset anti-ddos flow-forward statistics [ slot slot-number ] |
Device作为流量清洗设备采用直路模式部署在内部网络的出口位置,需要对外部网络访问内部网络地址192.168.1.1到192.168.1.12的流量进行DDoS攻击检测与防范,具体要求如下:
· 检测与防范UDP泛洪攻击。
· 攻击防范阈值自学习。
· 通过指纹防护功能丢弃源端口为240的UDP报文。
· 阻断来自IP地址1.1.1.1的流量。
· 放行来自IP地址1.1.1.2的流量。
图1-9 直路部署清洗设备组网图
(1) 配置接口IP地址保证网络可达,具体配置步骤略。
(2) 配置Device的部署模式。
# 进入系统视图。
<Device> system-view
# 配置Device的部署模式为直路部署。
[Device] anti-ddos cleaner deploy-mode inline
(3) 配置防护对象。
# 创建ID为2的防护对象。
[Device] anti-ddos zone id 2
# 配置防护对象内的受保护IP地址范围。
[Device-anti-ddos-zone-id-2] ip-range 192.168.1.1 192.168.1.12
(4) 配置全局静态黑白名单。
# 配置全局静态黑名单,阻断来自IP地址1.1.1.1的流量。
[Device] anti-ddos blacklist ip 1.1.1.1 32
# 配置全局静态白名单,放行来自IP地址1.1.1.2的流量。
[Device] anti-ddos whitelist ip 1.1.1.2 32
(5) 配置DDoS泛洪攻击检测功能。
# 开启UDP泛洪攻击检测并配置防范阈值为2000,单位为pps。
[Device-anti-ddos-zone-id-2] udp-flood detection threshold packet-based 2000
# 开启DDoS攻击防范阈值学习功能。
[Device-anti-ddos-zone-id-2] threshold-learning enable
[Device-anti-ddos-zone-id-2] quit
(6) 配置指纹防护功能。
# 创建ID为1的IPv4类型的指纹防护策略组。
[Device] fingerprint-group ip 1
# 创建ID为1的指纹防护策略,配置协议类型为UDP,指纹偏移量为20,指纹长度为1,指纹内容为f0,指纹防护触发阈值为2000,指纹防护的处理动作为丢包。
[Device-fingerprint-group-ip-1] fingerprint 1 protocol udp offset 20 length 1 content f0 threshold 2000 action drop
[Device-fingerprint-group-ip-1] quit
(7) 在防护对象下应用指纹防护策略组。
# 进入ID为2的防护对象视图。
[Device] anti-ddos zone id 2
# 应用ID为1的IPv4类型的指纹防护策略组。
[Device-anti-ddos-zone-id-2] fingerprint-group apply ip 1
[Device-anti-ddos-zone-id-2] quit
(8) 配置DDoS攻击检测与防范日志输出功能
# 配置日志源IP地址为10.0.0.2。
[Device] anti-ddos log-local-ip ip 10.0.0.2
# 配置日志目的IP地址为10.0.0.1。
[Device] anti-ddos log-server-ip ip 10.0.0.1
# 以上配置完成之后,可以通过display anti-ddos zone configuration命令查看防护对象的配置信息。
[Device] display anti-ddos zone configuration id 2
Anti-DDoS zone configuration information
Zone ID : 2
Zone name : --
IP range configuration:
Start IP End IP
192.168.1.1 192.168.1.12
Flood detection configuration:
Flood type Thres(pps/Mbps)
DNS query --
DNS reply --
HTTP --
SYN --
ACK --
SYN-ACK --
RST --
UDP 2000 pps
ICMP --
SIP --
Source verification configuration:
Type Status
TCP Disabled
HTTP Disabled
DNS query Disabled
DNS reply Disabled
SIP Disabled
Fingerprint configuration:
Type GroupID
IPv4 1
Threshold Learning: Enabled
# 之后如果Device检测到针对受保护IP地址的UDP泛洪攻击,可以通过display anti-ddos statistics destination-ip ipv4命令查看到对应的DDoS攻击防护统计信息。
[Device]display anti-ddos statistics destination-ip ipv4 192.168.1.11
Slot 1:
IP address packet-type Input(Bps) Output(Bps) Input(pps) Output(pps)
192.168.1.11 UDP 17507820 29940 291797 499
# 在Probe视图下通过display system internal fingerprint-all-statistics命令可以显示特定指纹的防护信息。
[Device] probe
[Device-probe] display system internal fingerprint-all-statistics anti-ddos-zone 2 fingerprint-group 1 fingerprint 1
Type: IPv4
Procotol: UDP
PPS: 2000
Drops: 291298
Status: Attacked
Fingerprint:
Offset Length Content
20 1 f0
Device A与Device B分别作为流量检测设备和清洗设备采用旁路模式部署在内部网络的出口位置,需要对外部网络访问内部网络地址192.168.1.1到192.168.1.12的流量进行DDoS攻击检测与防范,具体要求如下:
· 检测与防范各类DDoS泛洪攻击。
· Device A采用深度流检测模式。
· Device B开启DDoS攻击源验证功能,并配置动态黑名单表项的老化时间为2分钟。
· Device B开启报文限速功能,将TCP带宽限制为5Mbps,UDP带宽限制为5Mbps,IP总带宽限制为10Mbps。
图1-10 DDoS攻击源验证配置组网图
(1) 配置接口IP地址保证网络可达,具体配置步骤略。
(2) 配置Device A的DDoS攻击检测模式。
# 进入系统视图。
<DeviceA> system-view
# 配置DDoS攻击检测模式为深度流检测。
[DeviceA] anti-ddos detection-mode flow
(3) 配置流量统计报文输出器。
# 创建发送IP地址为10.0.1.1,接收端口号为1200,统计报文格式为NetFlow,采样率为1024的流量统计报文输出器配置。
[DeviceA] anti-ddos flow-agent ip 10.0.1.1 port 1200 flow-type netflow sampling-rate 1024
(4) 配置防护对象。
# 创建ID为2的防护对象。
[DeviceA] anti-ddos zone id 2
# 配置防护对象内的受保护IP地址范围。
[DeviceA-anti-ddos-zone-id-2] ip-range 192.168.1.1 192.168.1.12
(5) 配置DDoS泛洪攻击检测功能。
# 开启DNS query泛洪攻击检测与防范并配置防范阈值为2000,单位为pps。
[DeviceA-anti-ddos-zone-id-2] dns-query-flood detection threshold packet-based 2000
# 开启DNS reply泛洪攻击检测与防范并配置防范阈值为2000,单位为pps。
[DeviceA-anti-ddos-zone-id-2] dns-reply-flood detection threshold packet-based 2000
# 开启HTTP泛洪攻击检测与防范并配置防范阈值为2000,单位为pps。
[DeviceA-anti-ddos-zone-id-2] http-flood detection threshold packet-based 2000
# 开启SIP泛洪攻击检测与防范并配置防范阈值为2000,单位为pps。
[DeviceA-anti-ddos-zone-id-2] sip-flood detection threshold packet-based 2000
# 开启SYN泛洪攻击检测与防范并配置防范阈值为2000,单位为pps。
[DeviceA-anti-ddos-zone-id-2] syn-flood detection threshold packet-based 2000
# 开启IP流量攻击检测与防范并配置防范阈值为20,单位为Mbps。
[DeviceA-anti-ddos-zone-id-2] bandwidth-detection destination-ip threshold 20
[DeviceA-anti-ddos-zone-id-2] quit
(6) 配置DDoS攻击检测与防范日志输出功能。
# 配置日志源IP地址为10.0.0.2。
[DeviceA] anti-ddos log-local-ip ip 10.0.0.2
# 配置日志目的IP地址为10.0.0.1,目的端口为10084。
[DeviceA] anti-ddos log-server-ip ip 10.0.0.1 port 10084
(1) 配置接口IP地址、路由保证网络可达,具体配置步骤略。
(2) 配置Device B的部署模式。
# 进入系统视图。
<DeviceB> system-view
# 配置部署模式为旁路部署。
[DeviceB] anti-ddos cleaner deploy-mode out-of-path
(3) 配置防护对象。
# 创建ID为2的防护对象。
[DeviceB] anti-ddos zone id 2
# 配置防护对象内的受保护IP地址范围。
[DeviceB-anti-ddos-zone-id-2] ip-range 192.168.1.1 192.168.1.12
(4) 配置DDoS泛洪攻击检测功能。
# 开启DNS query泛洪攻击检测并配置防范阈值为2000,单位为pps。
[DeviceB-anti-ddos-zone-id-2] dns-query-flood detection threshold packet-based 2000
# 开启DNS reply泛洪攻击检测并配置防范阈值为2000,单位为pps。
[DeviceB-anti-ddos-zone-id-2] dns-reply-flood detection threshold packet-based 2000
# 开启HTTP泛洪攻击检测并配置防范阈值为2000,单位为pps。
[DeviceB-anti-ddos-zone-id-2] http-flood detection threshold packet-based 2000
# 开启SIP泛洪攻击检测并配置防范阈值为2000,单位为pps。
[DeviceB-anti-ddos-zone-id-2] sip-flood detection threshold packet-based 2000
# 开启SYN泛洪攻击检测并配置防范阈值为2000,单位为pps。
[DeviceB-anti-ddos-zone-id-2] syn-flood detection threshold packet-based 2000
# 开启IP流量攻击检测并配置防范阈值为20。
[DeviceB-anti-ddos-zone-id-2] bandwidth-detection destination-ip threshold 20
(5) 开启DDoS攻击源验证。
# 开启DNS query泛洪攻击源验证。
[DeviceB-anti-ddos-zone-id-2] dns-query-flood defense source-verify
# 开启DNS reply泛洪攻击源验证。
[DeviceB-anti-ddos-zone-id-2] dns-reply-flood defense source-verify
# 开启HTTP泛洪攻击源验证。
[DeviceB-anti-ddos-zone-id-2] http-flood defense source-verify
# 开启SIP泛洪攻击源验证。
[DeviceB-anti-ddos-zone-id-2] sip-flood defense source-verify
# 开启SYN泛洪攻击源验证。
[DeviceB-anti-ddos-zone-id-2] syn-flood defense source-verify
(6) 开启报文限速功能,并配置TCP报文流速阈值为5,UDP报文流速阈值为5,IP报文总流速阈值为10。
[DeviceB-anti-ddos-zone-id-2] bandwidth-limit destination-ip type tcp max-rate 5
[DeviceB-anti-ddos-zone-id-2] bandwidth-limit destination-ip type udp max-rate 5
[DeviceB-anti-ddos-zone-id-2] bandwidth-limit destination-ip type total max-rate 10
[DeviceB-anti-ddos-zone-id-2] quit
(7) 配置DDoS攻击检测与防范日志输出功能
# 配置日志源IP地址为10.0.0.3。
[DeviceB] anti-ddos log-local-ip ip 10.0.0.3
# 配置日志目的IP地址为10.0.0.1,目的端口为10085。
[DeviceB] anti-ddos log-server-ip ip 10.0.0.1 port 10085
配置策略路由,将接口GigabitEthernet1/0/4接收到的流量经接口GigabitEthernet1/0/3转发至内部网络,具体配置步骤略。
# 以上配置完成之后,可以在Device A上通过display anti-ddos flow-agent statistics命令查看指定输出器的报文统计信息。
[DeviceA] display anti-ddos flow-agent statistics ip 10.0.1.1 port 1200 slot 1
Slot 1:
NetFlow V5 statistics information:
Pkts:206
Records:412
DropRecords:0
NetFlow V9 statistics information:
Pkts:38
Records:428
TemplateRecords:12
DataRecords:192
DropRecords:224
# 在Device B上通过display anti-ddos zone configuration命令查看防护对象的配置信息。
[DeviceB] display anti-ddos zone configuration id 2
Anti-DDoS zone configuration information
Zone ID : 2
Zone name : --
IP range configuration:
Start IP End IP
192.168.1.1 192.168.1.12
Flood detection configuration:
Flood type Thres(pps/Mbps)
DNS query 2000 pps
DNS reply 2000 pps
HTTP 2000 pps
SYN 2000 pps
ACK --
SYN-ACK --
RST --
UDP --
ICMP --
SIP 2000 pps
Source verification configuration:
Type Status
TCP Enabled
HTTP Enabled
DNS query Enabled
DNS reply Enabled
SIP Enabled
Bandwidth configuration:
bandwidth-detection destination-ip threshold: 20
bandwidth-limit destination-ip max-rate: 10
# 如果检测到DDoS泛洪攻击,可以在Device B上通过display anti-ddos source-verify protected ip命令查看源验证受保护IP信息。
[DeviceB] display anti-ddos source-verify dns-query protected ip
IP address Port Type Requested Trusted
192.168.1.10 53 Dynamic 20 12
[DeviceB] display anti-ddos source-verify dns-reply protected ip
IP address Port Type Requested Trusted
192.168.1.9 53 Dynamic 18 7
[DeviceB] display anti-ddos source-verify http protected ip
IP address Port Type Requested Trusted
192.168.1.8 80 Dynamic 6 3
[DeviceB] display anti-ddos source-verify sip protected ip
IP address Port Type Requested Trusted
192.168.1.7 5060 Dynamic 15 9
[DeviceB] display anti-ddos source-verify syn protected ip
IP address Port Type Requested Trusted
192.168.1.6 any Dynamic 25 20
# 如果检测到针对指定受保护IP地址的IP流量攻击,可以在Device B上通过display anti-ddos statistics destination-ip ipv4命令查看该IP地址对应的DDoS攻击防护统计信息。
[DeviceB] display anti-ddos statistics destination-ip ipv4 192.168.1.11
Slot 1:
IP address packet-type Input(Bps) Output(Bps) Input(pps) Output(pps)
192.168.1.11 IP 17507880 1250000 291798 156200
#可以在Device B上通过display anti-ddos statistics bandwidth-limit destination-ip ipv4命令查看指定受保护IP地址在DDoS攻击防护中的限速统计信息。
[DeviceB]display anti-ddos statistics bandwidth-limit destination-ip ipv4 192.168.1.11
Slot 1:
Type Input(Bps) Output(Bps) Input(pps) Output(pps) Threshold(Mbps)
TCP 435681 435681 108920 108920 5
UDP 865355 655360 43622 43622 5
IP 1250000 1250000 156200 156200 10
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!