15-攻击检测与防范配置
本章节下载: 15-攻击检测与防范配置 (419.21 KB)
目 录
1.4.1 TCP客户端验证功能(TCP Client verify)
1.4.2 DNS客户端验证(DNS Client verify)
1.4.3 HTTP客户端验证(HTTP Client verify)
本特性能够检测单包攻击、扫描攻击和泛洪攻击等多种类型的网络攻击,并能对各类型攻击采取合理的防范措施。
· 攻击者通过向目标系统发送带有攻击目的的IP报文,如分片重叠的IP报文、TCP标志位非法的报文,使得目标系统在处理这样的IP报文时出错、崩溃;
· 攻击者可以通过发送正常的报文,如ICMP报文、特殊类型的IP option报文,来干扰正常网络连接或探测网络结构,给目标系统带来损失;
· 攻击者还可通过发送大量无用报文占用网络带宽,造成拒绝服务攻击。
攻击者向用户发送ICMP重定向报文,更改用户主机的路由表,干扰用户主机正常的IP报文转发。 |
|
某些系统在收到不可达的ICMP报文后,对于后续发往此目的地的报文判断为不可达并切断对应的网络连接。攻击者通过发送ICMP不可达报文,达到切断目标主机网络连接的目的。 |
|
ICMP报文中,type值的表示不同含义的报文,接收者需要根据不同的类型进行响应,攻击者通过构造特定type类型的ICMP报文来达到影响系统正常处理报文等目的。 |
|
ICMPv6报文中,type值的表示不同含义的报文,接收者需要根据不同的类型进行响应,攻击者通过构造特定type类型的ICMPv6报文来达到影响系统正常处理报文等目的。 |
|
攻击者向目标主机发送大量源IP地址和目的IP地址都是目标主机自身的TCP SYN报文,使得目标主机的半连接资源耗尽,最终不能正常工作。 |
|
某些主机或设备收到超大的报文,会引起内存分配错误而导致协议栈崩溃。攻击者通过发送超大ICMP报文,让目标主机崩溃,达到攻击目的。 |
|
某些主机或设备收到超大的报文,会引起内存分配错误而导致协议栈崩溃。攻击者通过发送超大ICMPv6报文,让目标主机崩溃,达到攻击目的。 |
|
攻击者利用IP报文中的异常选项的设置,达到探测网络结构的目的,也可由于系统缺乏对错误报文的处理而造成系统崩溃。 |
|
攻击者通过向目标主机发送分片偏移小于5的分片报文,导致主机对分片报文进行重组时发生错误而造成系统崩溃。 |
|
攻击者通过向目标主机发送源IP地址和目的IP地址相同的报文,造成主机系统处理异常。 |
|
攻击者构造一种特殊的IP分片来进行微小分片的攻击,这种报文首片很小,未能包含完整的传输层信息,因此能够绕过某些包过滤防火墙的过滤规则,达到攻击目标网络的目的。 |
|
攻击者向目标网络发送ICMP应答请求,该请求包的目的地址设置为目标网络的广播地址,这样该网络中的所有主机都会对此ICMP应答请求作出答复,导致网络阻塞,从而达到令目标网络中主机拒绝服务的攻击目的。 |
|
不同操作系统对于非常规的TCP标志位有不同的处理。攻击者通过发送带有非常规TCP标志的报文探测目标主机的操作系统类型,若操作系统对这类报文处理不当,攻击者便可达到使目标主机系统崩溃的目的。 |
|
攻击者连续发送TTL从1开始递增的目的端口号较大的UDP报文,报文每经过一个路由器,其TTL都会减1,当报文的TTL为0时,路由器会给报文的源IP设备发送一个TTL超时的ICMP报文,攻击者借此来探测网络的拓扑结构。 |
|
攻击者向安装(或使用)Windows系统的特定目标的NetBIOS端口(139)发送OOB(Out-Of-Band,带外)数据包,这些攻击报文的指针字段与实际的位置不符,从而引起一个NetBIOS片断重叠,致使已与其他主机建立连接的目标主机在处理这些数据的时候系统崩溃。 |
|
攻击者发送畸形的UDP报文,其IP首部中的报文总长度大于IP首部长度与UDP首部中标识的UDP报文长度之和,可能造成收到此报文的系统处理数据时越界访问非法内存,导致系统异常。 |
|
攻击者向Windows系统发送目的端口为135(Windows定位服务)源端口为135、7或19(UDP Chargen服务)的报文,使被攻击系统不断应答报文,最终耗尽CPU资源。 |
|
攻击者通过向目标网络发送源UDP端口为7且目的UDP端口为19的Chargen报文,令网络产生大量无用的应答报文,占满网络带宽,达到攻击目的。 |
|
攻击者构造标志位为最后一片且长度大于65535的ICMP报文发送给目标主机,可能导致系统处理数据时越界访问非法内存,造成系统错误甚至系统崩溃。 |
扫描攻击是指,攻击者运用扫描工具对网络进行主机地址或端口的扫描,通过准确定位潜在目标的位置,探测目标系统的网络拓扑结构和开放的服务端口,为进一步侵入目标系统做准备。
攻击者发送大量目的IP地址变化的探测报文,通过收到的回应报文来确定活跃的目标主机,以便针对这些主机进行下一步的攻击。
攻击者获取了活动目标主机的IP地址后,向目标主机发送大量目的端口变化的探测报文,通过收到的回应报文来确定目标主机开放的服务端口,然后针对活动目标主机开放的服务端口选择合适的攻击方式或攻击工具进行进一步的攻击。
· 分布式Port scan攻击
攻击者控制多台主机,分别向特定目标主机发送探测报文,通过收集所有被控制的主机的回应报文,确定目标主机开启的服务端口,以便进一步实施攻击。
泛洪攻击是指攻击者在短时间内向目标系统发送大量的虚假请求,导致目标系统疲于应付无用信息,从而无法为合法用户提供正常服务,即发生拒绝服务。
· SYN flood攻击
根据TCP协议,服务器收到SYN报文后需要建立半连接并回应SYN ACK报文,然后等待客户端的ACK报文来建立正式连接。由于资源的限制,操作系统的TCP/IP协议栈只能允许有限个TCP连接。攻击者向服务器发送大量伪造源地址的SYN报文后,由于攻击报文是伪造的,服务器不会收到客户端的ACK报文,从而导致服务器上遗留了大量无效的半连接,耗尽其系统资源,使正常的用户无法访问,直到半连接超时。
ACK报文为只有ACK标志位置位的TCP报文,服务器收到ACK报文时,需要查找对应的连接。若攻击者发送大量这样的报文,服务器需要进行大量的查询工作,消耗正常处理的系统资源,影响正常的报文处理。
由于SYN ACK报文为SYN报文的后续报文,服务器收到SYN ACK报文时,需要查找对应的SYN报文。若攻击者发送大量这样的报文,服务器需要进行大量的查询工作,消耗正常处理的系统资源,影响正常的报文处理。
FIN报文用于关闭TCP连接。若攻击者向服务器发送大量的伪造的FIN报文,可能会使服务器关闭掉正常的连接。同时,服务器收到FIN报文时,需要查找对应的连接,大量的无效查询操作会消耗系统资源,影响正常的报文处理。
RST报文为TCP连接的复位报文,用于在异常情况下关闭TCP连接。如果攻击者向服务器发送大量伪造的RST报文,可能会使服务器关闭正常的TCP连接。另外,服务器收到RST报文时,需要查找对应的连接,大量的无效查询操作会消耗系统资源,影响正常的报文处理。
DNS服务器收到任何DNS Query报文时都会试图进行域名解析并且回复该DNS报文。攻击者通过构造并向DNS服务器发送大量虚假DNS Query报文,占用DNS服务器的带宽或计算资源,使得正常的DNS Query得不到处理。
HTTP服务器收到HTTP GET命令时可能进行一系列复杂的操作,包括字符串搜索、数据库遍历、数据组装、格式化转换等等,这些操作会消耗大量系统资源,因此当HTTP请求的速率超过了服务器的处理能力时,服务器就无法正常提供服务。攻击者通过构造并发送大量虚假HTTP GET请求,使服务器崩溃,无法响应正常的用户请求。
ICMP flood攻击是指,攻击者在短时间内向特定目标发送大量的ICMP请求报文(例如ping报文),使其忙于回复这些请求,致使目标系统负担过重而不能处理正常的业务。
· ICMPv6 flood攻击
ICMPv6 flood攻击是指,攻击者在短时间内向特定目标发送大量的ICMPv6请求报文(例如ping报文),使其忙于回复这些请求,致使目标系统负担过重而不能处理正常的业务。
UDP flood攻击是指,攻击者在短时间内向特定目标发送大量的UDP报文,占用目标主机的带宽,致使目标主机不能处理正常的业务。
设备的包过滤功能一般是通过判断TCP首个分片中的五元组(源IP地址、源端口号、目的IP地址、目的端口号、传输层协议号)信息来决定后续TCP分片是否允许通过。RFC 1858对TCP分片报文进行了规定,认为TCP分片报文中,首片报文中TCP报文长度小于20字节,或后续分片报文中分片偏移量等于8字节的报文为TCP分片攻击报文。这类报文可以成功绕过上述包过滤功能,对设备造成攻击。
为防止这类攻击,可以在设备上配置TCP分片攻击防范功能,对TCP分片攻击报文进行丢弃。
黑名单功能是根据报文的源IP地址进行报文过滤的一种攻击防范特性。同基于ACL(Access Control List,访问控制列表)的包过滤功能相比,黑名单进行报文匹配的方式更为简单,可以实现报文的高速过滤和有效屏蔽。
黑名单可以由设备动态或由用户手工进行添加、删除,具体机制如下:
· 动态添加黑名单是与扫描攻击防范功能配合实现的,动态生成的黑名单表项会在一定的时间之后老化。当设备根据报文的行为特征检测到某特定IP地址的扫描攻击企图之后,便将攻击者的IP地址自动加入黑名单,之后该IP地址发送的报文会被设备过滤掉。
· 手动配置的黑名单表项分为永久黑名单表项和非永久黑名单表项。永久黑名单表项建立后,一直存在,除非用户手工删除该表项。非永久黑名单表项的老化时间由用户指定,超出老化时间后,设备会自动将该黑名单表项删除。
TCP客户端验证功能用来防御服务器受到的SYN flood,ACK flood,SYN-ACK flood,FIN flood,RST flood等攻击。启用了TCP客户端验证功能的设备称为TCP proxy,它位于客户端和服务器之间,能够对客户端与服务器之间的TCP连接进行代理。当设备检测到有服务器受到相关泛洪攻击时,TCP proxy即将该服务器IP地址添加为动态受保护的IP地址,并对所有向该受保护服务器发起的TCP连接的协商报文进行处理,通过对客户端发起的TCP连接进行验证,达到保护服务器免受各种TCP 泛洪攻击的目的。
TCP客户端验证支持两种验证模式:
· Safe Reset:是指仅对TCP连接的正向握手报文进行处理,也称为单向代理模式。
· SYN Cookie:是指对TCP连接的正向和反向所有报文都进行处理,也称为双向代理模式。
用户可以根据实际的组网情况选择不同的代理模式。例如:在如图1-1所示的组网中,从客户端发出的报文经过TCP proxy,而从服务器端发出的报文不经过TCP proxy,此时只能使用Safe Reset方式;在如图1-2所示的组网中,从客户端发出的报文经和从服务器端发出的报文都经过TCP proxy,此时两种验证模式都可以使用。
TCP Client verify处理流程:
Safe Reset代理模式下,TCP Client verify的处理流程如图1-3所示。
图1-3 Safe Reset模式的TCP Client verify处理流程
TCP proxy收到某客户端发来的与受保护服务器(匹配某个受保护IP地址表项)建立TCP连接的请求(SYN报文)后,先代替服务器向客户端回应序号错误的SYN ACK报文。如果TCP proxy收到客户端回应的正确RST报文,则认为该TCP连接请求通过TCP代理的验证。此后一定时间内,TCP proxy收到来自该客户端的TCP报文后,直接将其向转发给服务器,允许客户端和服务器之间直接建立TCP连接。
一般而言,应用服务器不会主动对客户端发起恶意连接,因此服务器响应客户端的报文可以不需要经过TCP proxy的检查。TCP Client verify仅需要对客户端发往应用服务器的报文进行实时监控,服务器响应客户端的报文可以根据实际需要选择是否经过TCP proxy,因此Safe Reset模式能够支持更灵活的组网方式。
由于TCP proxy对客户端发起的TCP连接进行了干预,因此Safe Reset模式的实现要求客户端的实现严格遵守TCP协议栈的规定,如果客户端的TCP协议栈实现不完善,即便是合法用户,也可能由于未通过TCP proxy的严格检查而无法访问服务器。而且,该方式依赖于客户端向服务器发送RST报文后再次发起请求的功能,因此启用TCP Client verify后,客户端发起的每个TCP连接的建立时间会有相应增加。
SYN Cookie模式下,TCP Client verify的处理流程如图1-4所示。
图1-4 SYN Cookie模式的TCP Client verify处理流程
TCP proxy收到某客户端发来的与受保护服务器建立TCP连接的请求(SYN报文)后,先代替服务器向客户端回应正常的SYN ACK报文(窗口值为0)。如果收到客户端回应的ACK报文,则认为该TCP连接请求通过TCP代理的验证。之后,TCP Client verify再代替客户端向服务器发送SYN报文,并通过三次握手与服务器建立TCP连接。因此,在客户端和TCP proxy、TCP proxy和服务器之间会建立两个TCP连接,而且两个TCP连接使用的序号不同。
SYN Cookie模式下,TCP proxy作为虚拟的服务器与客户端交互,同时也作为虚拟的客户端与服务器交互,在为服务器过滤掉恶意连接报文的同时保证了常规业务的正常运行。但该方式要求TCP proxy必须部署在所保护的服务器入口和出口的关键路径上,且要保证所有客户端向服务器发送的报文以及服务器向客户端回应的报文都需要经过该设备。
DNS客户端验证功能用来防御服务器受到的DNS flood攻击。启用了DNS客户端验证功能的设备位于客户端和服务器之间,能够对客户端与服务器之间的DNS连接进行代理。当设备检测到有服务器受到DNS flood攻击时,即将该服务器IP地址添加为动态受保护的IP地址,并对所有向该受保护服务器发起的DNS Query进行处理,通过对客户端发起的DNS连接进行验证,达到保护服务器免受DNS flood攻击的目的。
DNS Client verify的处理流程如图1-5所示。
DNS客户端验证设备收到某客户端发送的UDP类型的DNS Query报文(目的地址匹配受保护IP表项)后,先代替服务器向客户端回应DNS Truncate(TC)报文,要求客户端以TCP方式进行域名请求。如果是合法客户端,则它收到DNS Truncate报文之后会向DNS客户端验证设备发送目的端口为53的TCP SYN报文。DNS客户端验证设备收到此报文后,先代替服务器向客户端回应序号错误的SYN ACK报文,之后,如果能够收到客户端回应的RST报文,则认为该客户端通过了DNS客户端验证。对于通过了DNS验证的客户端,设备直接转发其后续报文,不对报文进行处理。
由于DNS Client verify对客户端发起的DNS请求进行了干预,因此要求客户端的实现严格遵守TCP/IP协议栈以及DNS协议的规定,如果客户端的协议栈实现不完善,即便是合法用户,也可能由于未通过DNS Client verify的严格检查而无法访问服务器。而且,该方式依赖于客户端向服务器发送RST报文后再次发起请求的功能,因此启用DNS Client verify后,正常客户端发起的首个DNS请求的响应时间会有相应增加。
HTTP客户端验证功能用来防御服务器受到HTTP flood攻击。启用了HTTP客户端验证功能的设备位于客户端和服务器之间,能够对客户端与服务器之间的HTTP GET请求进行代理。当设备检测到有服务器受到HTTP flood攻击时,即将该服务器IP地址添加为动态受保护的IP地址,并对所有向该受保护服务器发起的HTTP GET请求报文进行处理,通过对客户端发起的HTTP GET请求进行两次重定向方式的验证,达到保护服务器免受HTTP flood攻击的目的。
HTTP Client verify的处理流程如图1-6所示:
HTTP客户端验证设备收到某客户端发送的TCP连接请求报文(目的地址匹配受保护IP表项)后,首先以TCP Proxy的Syn cookie方式进行验证(详见“1.4.1 TCP客户端验证功能(TCP Client verify)”)。客户端的TCP连接通过验证之后,设备将对客户端发送的HTTP GET请求报文进行两次重定向验证,具体流程如下所述。
(1) 第一次重定向验证:设备收到客户端的HTTP Get请求之后向其发送HTTP Redirect报文,并在重定向报文中设置标记位要求客户端结束本次TCP连接。该过程中,设备会记录该客户端的信息。当前的TCP连接结束之后,客户端与设备进行一轮新的TCP三次握手。
(2) 第二次重定向验证:设备收到客户端向重定向地址发起的HTTP Get请求之后,向其发送HTTP Redirect报文,并在重定向报文中设置标记位要求客户端结束本次TCP连接。该过程中,设备会检查客户端是否经过了第一次重定向,以及本次HTTP访问的URI是否是设备重定向的地址。如果检查通过,设备会将该客户端加入到信任IP表项中,该客户端的后续HTTP Get请求报文将被直接进行透传
配置单包攻击防范日志的非聚合输出功能 |
||||
配置TCP分片攻击防范 |
|
|||
可单独使用,也可与SYN flood、SYN-ACK flood、RST flood、FIN flood、ACK flood攻击防范策略配合使用 |
||||
可单独使用,也可与DNS flood攻击防范策略配合使用 |
||||
可单独使用,也可与HTTP flood攻击防范策略配合使用 |
||||
在配置攻击防范之前,必须首先创建一个攻击防范策略,并进入该攻击防范策略视图。在该视图下,可以定义一个或多个用于检测攻击的特征项,以及对检测到的攻击报文所采取的防范措施。
在一个攻击防范策略中,可以根据实际的网络安全需求来配置策略中的具体内容,主要包括针对攻击类型指定检测条件及采取的防范措施。
不同类型的攻击防范策略在配置内容上有所不同,下面将按照攻击类型(单包攻击、扫描攻击、泛洪攻击)分别进行介绍。
signature detect { fraggle | fragment | impossible | ip-option-abnormal | land | large-icmp | large-icmpv6 | ping-of-death | smurf | snork | tcp-all-flags | tcp-fin-only | tcp-invalid-flags | tcp-null-flag | tcp-syn-fin | teardrop | tiny-fragment | traceroute | udp-bomb | winnuke } [ action { { drop | logging } * | none } ] signature detect icmp-type { icmp-type-value | address-mask-reply | address-mask-request | destination-unreachable | echo-reply | echo-request | information-reply | information-request | parameter-problem | redirect | source-quench | time-exceeded | timestamp-reply | timestamp-request } [ action { { drop | logging } * | none } ] signature detect ip-option { option-code | internet-timestamp | loose-source-routing | record-route | route-alert | security | stream-id | strict-source-routing } [ action { { drop | logging } * | none } ] |
||
(可选)配置启动Large ICMP攻击防范的ICMP报文长度的最大值 |
缺省情况下,ICMP报文和ICMPv6报文长度的最大值均为4000字节 |
|
signature level { high | info | low | medium } action { { drop | logging } * | none } |
缺省情况下,对info和low级别的单包攻击的处理行为是发送日志;对medium和high级别的单包攻击的处理行为是发送日志并丢包 |
|
(可选)开启指定级别单包攻击报文的特征检测 |
缺省情况下,未开启任何级别的单包攻击报文的特征检测 |
扫描攻击防范主要通过监测网络使用者向目标系统发起连接的速率来检测其探测行为,一般应用在设备连接外部网络的接口上,且仅对应用了攻击防范策略的接口上的入方向报文有效。若设备监测到某IP地址主动发起的连接速率达到或超过了一定阈值,则可以根据配置输出告警日志、丢弃来自该IP地址的后续报文,或者将检测到的攻击者的源IP地址加入黑名单。
若指定的扫描攻击的处理行为为加入黑名单,则需要开启全局或接口上的黑名单过滤功能来配合。
泛洪攻击防范主要用于保护服务器,通过监测向服务器发起连接请求的速率来检测各类泛洪攻击,一般应用在设备连接外部网络的接口上,且仅对应用了攻击防范策略的接口上的入方向报文有效。在接口上应用了泛洪攻击防范策略后,接口处于攻击检测状态,当它监测到向某服务器发送报文的速率持续达到或超过了指定的触发阈值时,即认为该服务器受到了攻击,则进入攻击防范状态,并根据配置启动相应的防范措施(输出告警日志、对后续新建连接的报文进行丢弃处理或者进行客户端验证)。此后,当设备检测到向该服务器发送报文的速率低于恢复阈值(触发阈值的3/4)时,即认为攻击结束,则由攻击防范状态恢复为攻击检测状态,并停止执行防范措施。
需要注意的是,当设备上安装了多块业务板时,每种泛洪攻击防范策略中配置的全局触发阈值为每块业务板上的全局触发阈值,因而整机的该类泛洪攻击的全局触发阈值即为每块业务板上的全局触发阈值与业务板数目的乘积。
为保护指定IP地址,攻击防范策略中支持基于IP地址的攻击防范配置。对于所有非受保护IP地址,可以统一开启攻击防范检测,并采用全局的参数设置来进行保护。
(1) 配置SYN flood攻击防范策略
表1-6 配置SYN flood攻击防范策略
对所有非受保护IP地址开启SYN flood攻击防范检测 |
缺省情况下,未对所有非受保护IP地址开启SYN flood攻击防范检测 |
|
配置SYN flood攻击防范的全局触发阈值 |
缺省情况下,SYN flood攻击防范的全局触发阈值为1000 |
|
配置SYN flood攻击防范的全局处理行为 |
缺省情况下,不对检测到的SYN flood攻击采取任何措施 |
|
开启对指定IP地址的SYN flood攻击防范检测,并配置触发阈值和处理行为 |
缺省情况下,未对任何指定IP地址配置SYN flood攻击防范检测 |
(2) 配置ACK flood攻击防范策略
表1-7 配置ACK flood攻击防范策略
对所有非受保护IP地址开启ACK flood攻击防范检测 |
缺省情况下,未对所有非受保护IP地址开启ACK flood攻击防范检测 |
|
配置ACK flood攻击防范全局触发阈值 |
缺省情况下,ACK flood攻击防范的全局触发阈值为1000 |
|
配置ACK flood攻击防范的全局处理行为 |
缺省情况下,不对检测到的ACK flood攻击采取任何措施 |
|
开启对指定IP地址的ACK flood攻击防范检测,并配置触发阈值和处理行为 |
缺省情况下,未对任何指定IP地址配置ACK flood攻击防范检测 |
(3) 配置SYN-ACK flood攻击防范策略
表1-8 配置SYN-ACK flood攻击防范策略
对所有非受保护IP地址开启SYN-ACK flood攻击防范检测 |
缺省情况下,未对所有非受保护IP地址开启SYN-ACK flood攻击防范检测 |
|
配置SYN-ACK flood攻击防范的全局触发阈值 |
缺省情况下,SYN-ACK flood攻击防范的全局触发阈值为1000 |
|
配置SYN-ACK flood攻击防范的全局处理行为 |
缺省情况下,不对检测到的SYN-ACK flood攻击采取任何措施 |
|
开启对指定IP地址的SYN-ACK flood攻击防范检测,并配置触发阈值和处理行为 |
缺省情况下,未对任何指定IP地址配置SYN-ACK flood攻击防范检测 |
(4) 配置FIN flood攻击防范策略
表1-9 配置FIN flood攻击防范策略
对所有非受保护IP地址开启FIN flood攻击防范检测 |
缺省情况下,未对所有非受保护IP地址开启FIN flood攻击防范检测 |
|
配置FIN flood攻击防范的全局触发阈值 |
缺省情况下,FIN flood攻击防范的全局触发阈值为1000 |
|
配置FIN flood攻击防范的全局处理行为 |
缺省情况下,不对检测到的FIN flood攻击采取任何措施 |
|
开启对指定IP地址的FIN flood攻击防范检测,并配置触发阈值和处理行为 |
缺省情况下,未对任何指定IP地址配置FIN flood攻击防范检测 |
(5) 配置RST flood攻击防范策略
表1-10 配置RST flood攻击防范策略
对所有非受保护IP地址开启RST flood攻击防范检测 |
缺省情况下,未对所有非受保护IP地址开启RST flood攻击防范检测 |
|
配置RST flood攻击防范的全局触发阈值 |
缺省情况下,RST flood攻击防范的全局触发阈值为1000 |
|
配置全局的RST flood攻击防范的全局处理行为 |
缺省情况下,不对检测到的RST flood攻击采取任何措施 |
|
开启对指定IP地址的RST flood攻击防范检测,并配置触发阈值和处理行为 |
缺省情况下,未对任何指定IP地址配置RST flood攻击防范检测 |
(6) 配置ICMP flood攻击防范策略
表1-11 配置ICMP flood攻击防范策略
对所有非受保护IPv4地址开启ICMP flood攻击防范检测 |
缺省情况下,未对任何非受保护IPv4地址开启ICMP flood攻击防范检测 |
|
配置ICMP flood攻击防范的全局触发阈值 |
缺省情况下,ICMP flood攻击防范的全局触发阈值为1000 |
|
配置ICMP flood攻击防范的全局处理动作 |
缺省情况下,不对检测到的ICMP flood攻击采取任何措施 |
|
开启对指定IPv4地址的RST flood攻击防范检测,并配置触发阈值和处理行为 |
缺省情况下,未对任何指定IPv4地址配置ICMP flood 攻击防范触发阈值 |
(7) 配置ICMPv6 flood攻击防范策略
表1-12 配置ICMP flood攻击防范策略
配置ICMPv6 flood攻击防范的全局触发阈值 |
缺省情况下,ICMPv6 flood攻击防范的全局触发阈值为1000 |
|
配置ICMPv6 flood攻击防范的全局处理行为 |
缺省情况下,不对检测到的ICMPv6 flood攻击采取任何防范措施 |
(8) 配置UDP flood攻击防范策略
表1-13 配置UDP flood攻击防范策略
对所有非受保护IP地址开启UDP flood攻击防范检测 |
缺省情况下,未对所有非受保护IP地址开启UDP flood攻击防范检测 |
|
配置UDP flood攻击防范的全局触发阈值 |
缺省情况下,UDP flood攻击防范的全局触发阈值为1000 |
|
配置UDP flood攻击防范检测的全局处理行为 |
缺省情况下,不对检测到的UDP flood攻击进行任何处理 |
|
开启对指定IP地址的UDP flood攻击防范检测,并配置触发阈值和处理行为 |
缺省情况下,未对任何指定IP地址配置UDP flood攻击防范检测 |
(9) 配置DNS flood攻击防范策略
表1-14 配置DNS flood攻击防范策略
对所有非受保护IP地址开启DNS flood攻击防范检测 |
缺省情况下,未对所有非受保护IP地址开启DNS flood攻击防范检测 |
|
配置DNS flood攻击防范的全局触发阈值 |
缺省情况下,DNS flood攻击防范的全局触发阈值为1000 |
|
(可选)配置DNS flood攻击防范的全局检测端口号 |
缺省情况下,DNS flood攻击防范的全局检测端口号为53 |
|
配置对DNS flood攻击防范的全局处理行为 |
缺省情况下,不对检测到的DNS flood攻击采取任何措施 |
|
开启对指定IP地址的DNS flood攻击防范检测,并配置触发阈值和处理行为 |
缺省情况下,未对任何指定IP地址配置DNS flood攻击防范检测 |
(10) 配置HTTP flood攻击防范策略
表1-15 配置HTTP flood攻击防范策略
对所有非受保护IP地址开启HTTP flood攻击防范检测 |
缺省情况下,未对所有非受保护IP地址开启HTTP flood攻击防范检测 |
|
配置HTTP flood攻击防范的全局触发阈值 |
缺省情况下,HTTP flood攻击防范的全局触发阈值为1000 |
|
(可选)配置HTTP flood攻击防范的全局检测端口号 |
缺省情况下,HTTP flood攻击防范的全局检测端口号为80 |
|
配置对HTTP flood攻击防范的全局处理行为 |
缺省情况下,不对检测到的HTTP flood攻击采取任何措施 |
|
开启对指定IP地址的HTTP flood攻击防范检测,并配置触发阈值和处理行为 |
缺省情况下,未对任何指定IP地址配置HTTP flood攻击防范检测 |
攻击防范例外列表用于过滤不需要进行攻击防范检测的主机报文,与指定的ACL permit规则匹配的报文将不会受到任何类型的攻击防范检测。该配置用于过滤某些被信任的安全主机发送的报文,可以有效的减小误报率,并提高服务器处理效率。
需要注意的是,例外列表引用的ACL的permit规则中仅源地址、目的地址、源端口、目的端口、协议号和非首片分片标记参数用于匹配报文。
通过在接口上应用攻击防范策略,使已配置的攻击防范策略在具体的接口上生效。
当在全局接口上应用攻击防范策略时,为保证扫描攻击防范策略与泛洪攻击防范策略能够正确检测并防御攻击,需要指定处理当前接口流量的业务处理板。
通过在本机上应用攻击防范策略提高对目的地址为本机的攻击报文的处理效率。
当接口和本机均应用了攻击防范策略时,先进行接口上攻击防范策略的检测,若报文未被丢弃,则还会进行本机上攻击防范策略的检测。
对日志进行聚合输出是指,在一定时间内,对在同一个接口上检测到的相同攻击类型、相同攻击防范动作、相同的源/目的地址攻击的所有日志聚合成一条日志输出。
通常不建议开启单包攻击防范的日志非聚合输出功能,因为在单包攻击较为频繁的情况下,它会导致大量日志信息输出,占用控制台的显示资源。
表1-19 配置单包攻击防范日志的非聚合输出功能
开启对单包攻击防范日志的非聚合输出功能 |
缺省情况下,单包攻击防范的日志信息经系统聚合后再输出 |
设备上开启TCP分片攻击防范功能后,能够对收到的TCP分片报文的长度以及分片偏移量进行合法性检测,并丢弃非法的TCP分片报文。
需要注意的是,如果设备上开启了TCP分片攻击防范功能,并应用了单包攻击防范策略,则TCP分片攻击防范功能会先于单包攻击防范策略检测并处理入方向的TCP报文。
表1-20 配置TCP分片攻击防范
开启TCP分片攻击防范功能 |
缺省情况下,TCP分片攻击防范功能处于开启状态 |
通过在设备连接外部网络的接口上使能TCP客户端验证功能,可以保护内部网络中的应用服务器免受SYN flood攻击。TCP客户端验证功能有两种工作方式:
· 手工添加受保护IP地址:当设备检测到来自某客户端的首个目的地址为配置的受保护IP地址的SYN报文后,将对该客户端的新建TCP连接的协商报文进行合法性检查。
· 自动添加受保护IP地址:当设备检测到某服务器受到了SYN flood、SYN-ACK flood、RST flood、FIN flood、ACK flood攻击时,会根据配置启动相应的防范措施。若防范措施配置为对攻击报文进行TCP客户端验证,则设备会将该服务器IP地址添加到受保护IP表项中,并按照指定的TCP客户端验证代理模式,对后续新建TCP连接的协商报文进行合法性检查。
通过合法性检查的TCP客户端的IP地址将被加入信任IP地址列表中,之后设备将放行来自该IP地址的TCP报文。
表1-21 配置TCP客户端验证
(可选)配置TCP客户端验证的受保护IP地址 |
client-verify tcp protected ip destination-ip-address [ port port-number ] |
缺省情况下,不存在任何受保护IP地址,即TCP客户端验证功能未保护任何IP地址 |
|
使能接口上的TCP客户端验证功能 |
缺省情况下,接口上的TCP客户端验证功能处于关闭状态 |
||
通过在设备连接外部网络的接口上使能DNS客户端验证功能,可以保护内部网络中的应用服务器免受DNS flood攻击。DNS客户端验证功能有两种工作方式:
· 手工添加受保护IP地址:当设备检测到来自某客户端的首个目的地址为配置的受保护IP地址的DNS Query报文时,对该客户端发送的DNS报文进行合法性检查。
· 自动添加受保护IP地址:当设备检测到某服务器受到了DNS flood攻击时,会根据配置启动相应的防范措施。若防范措施配置为对攻击报文进行DNS客户端验证,则设备会将该服务器IP地址添加到受保护IP表项中,并对后续的DNS Query请求报文进行合法性检查。
通过合法性检查的DNS客户端的IP地址将被加入信任IP地址列表中,之后设备将放行来自该IP地址的DNS报文。
表1-22 配置DNS客户端验证
配置DNS客户端验证的受保护IP地址 |
client-verify dns protected ip destination-ip-address [ port port-number ] |
缺省情况下,不存在任何受保护IP地址,即DNS客户端验证功能未保护任何IP地址 |
使能接口上的DNS 客户端验证功能 |
缺省情况下,接口上的DNS客户端验证功能处于关闭状态 |
通过在设备连接外部网络的接口上使能HTTP客户端验证功能,可以保护内部网络中的应用服务器免受HTTP flood攻击。HTTP客户端验证功能有两种工作方式:
· 手工添加受保护IP地址:当设备检测到来自某客户端的首个目的地址为配置的受保护IP地址的HTTP Get报文时,对该客户端发送的HTTP报文进行合法性检查。
· 自动添加受保护IP地址:当设备监测到某服务器受到了HTTP flood攻击时,会根据配置启动相应的防范措施。若防范措施配置为对攻击报文进行HTTP客户端验证,则设备会将该服务器IP地址添加到受保护IP表项中,并对后续的HTTP Get请求报文进行合法性检查。
通过合法性检查的HTTP客户端的IP地址将被加入信任IP地址列表中,之后设备将放行来自该IP地址的HTTP报文。
表1-23 配置HTTP客户端验证
配置HTTP客户端验证的受保护IP地址 |
client-verify http protected ip destination-ip-address [ port port-number ] |
缺省情况下,不存在任何受保护IP地址,即HTTP客户端验证功能未保护任何IP地址 |
配置接口上的HTTP客户端验证功能 |
缺省情况下,接口上的HTTP客户端验证功能处于关闭状态 |
通过配置黑名单功能可以对来自指定IP地址的报文进行过滤。
黑名单表项除了可以手工添加之外,还可以通过扫描攻击防范自动添加。具体来讲就是,在黑名单功能使能的前提下,若配置了扫描攻击防范策略及相应的黑名单添加功能,则可以将检测到的扫描攻击方IP地址添加到黑名单中。扫描攻击防范添加的黑名单必定会老化,老化时间可配。关于扫描攻击防范的相关配置请参见“1.6.2 2. 配置扫描攻击防范策略”。
表1-24 配置黑名单
(可选)添加IPv4黑名单表项 |
blacklist ip source-ip-address [ ds-lite-peer ds-lite-peer-address ] [ timeout minutes ] |
缺省情况下,无IPv4黑名单表项 |
(可选)使能黑名单日志功能 |
在完成上述配置后,在任意视图下执行display命令可以显示配置后攻击检测及防范的运行情况,通过查看显示信息验证配置的效果。
在用户视图下,执行reset命令可以清除攻击检测及防范的统计信息。
网络管理员通过流量分析发现外部网络中存在一个攻击者Host D,需要将来自Host D的报文在Router上永远过滤掉。另外,网络管理员为了暂时控制内部网络Host C的访问行为,需要将Router上收到的Host C的报文阻止50分钟。
# 配置各接口的IP地址,略。
# 开启全局黑名单过滤功能。
[Router] blacklist global enable
# 将Host D的IP地址5.5.5.5添加到黑名单列表中,老化时间使用缺省情况(永不老化)。
# 将Host C的IP地址192.168.1.4添加到黑名单列表中,老化时间为50分钟。
[Router] blacklist ip 192.168.1.4 timeout 50
完成以上配置后,可以通过display blacklist命令查看已添加的黑名单信息。
IP address VPN instance DS-Lite tunnel peer Type TTL(sec) Dropped
5.5.5.5 -- -- Manual Never 0
192.168.1.4 -- -- Manual 2989 0
配置生效后,Router对来自Host D的报文一律进行丢弃处理,除非管理员认为Host D不再是攻击者,通过undo blacklist ip 5.5.5.5将其从黑名单中删除;如果Router接收到来自Host C的报文,则在50分钟之内,一律对其进行丢弃处理,50分钟之后,才进行正常转发。
在Router上配置TCP客户端验证功能,保护内网服务器不会受到外网非法用户的SYN flood攻击,并要求在客户端与服务器之间进行双向代理。
图1-8 TCP客户端验证配置组网图
# 配置各接口的IP地址,略。
# 创建攻击防范策略a1。
[Router] attack-defense policy a1
# 对所有非受保护IP地址开启SYN flood攻击防范检测。
[Router-attack-defense-policy-a1] syn-flood detect non-specific
# 配置SYN flood攻击防范的全局触发阈值为10000。
[Router-attack-defense-policy-a1] syn-flood threshold 10000
# 配置SYN flood攻击防范的全局处理行为为添加到TCP客户端验证的受保护IP列表中以及输出告警日志。
[Router-attack-defense-policy-a1] syn-flood action logging client-verify
[Router-attack-defense-policy-a1] quit
# 在接口GigabitEthernet0/1上应用攻击防范策略a1。
[Router] interface gigabitethernet 0/1
[Router-GigabitEthernet0/1] attack-defense apply policy a1
[Router-GigabitEthernet0/1] quit
# 在接口GigabitEthernet0/1上开启TCP客户端验证的双向代理功能。
[Router] interface gigabitethernet 0/1
[Router-GigabitEthernet0/1] client-verify tcp enable mode syn-cookie
[Router-GigabitEthernet0/1] quit
以上配置完成之后,若有针对服务器的SYN flood攻击发生时,可以通过display client-verify tcp protected ip命令查看受攻击的服务器的IP地址被添加为动态受保护IP。
[Router] display client-verify tcp protected ip
IP address VPN instance Port Type Requested Trusted
192.168.1.10 -- any Dynamic 20 12
在Router上配置DNS客户端验证功能,保护内网服务器不会受到外网非法用户的DNS flood攻击。
图1-9 DNS客户端验证配置组网图
# 配置各接口的IP地址,略。
# 创建攻击防范策略a1。
[Router] attack-defense policy a1
# 对所有非受保护IP地址开启DNS flood攻击防范检测。
[Router-attack-defense-policy-a1] dns-flood detect non-specific
# 配置DNS flood攻击防范的的全局触发阈值为10000。
[Router-attack-defense-policy-a1] dns-flood threshold 10000
# 配置DNS flood攻击防范的全局处理行为为添加到DNS客户端验证的受保护IP列表中以及输出告警日志。
[Router-attack-defense-policy-a1] dns-flood action logging client-verify
[Router-attack-defense-policy-a1] quit
# 在接口GigabitEthernet0/1上应用攻击防范策略a1。
[Router] interface gigabitethernet 0/1
[Router-GigabitEthernet0/1] attack-defense apply policy a1
[Router-GigabitEthernet0/1] quit
# 在接口GigabitEthernet0/1 上开启DNS客户端验证功能。
[Router] interface gigabitethernet 0/1
[Router-GigabitEthernet0/1] client-verify dns enable
[Router-GigabitEthernet0/1] quit
以上配置完成之后,若有针对服务器的DNS flood攻击发生时,可以通过display client-verify dns protected ip命令查看受攻击的服务器的IP地址被添加为动态受保护IP。
[Router] display client-verify dns protected ip
IP address VPN instance Port Type Requested Trusted
192.168.1.10 -- 53 Dynamic 20 12
在Router上配置HTTP客户端验证功能,保护内网服务器不会受到外网非法用户的HTTP flood攻击。
图1-10 HTTP客户端验证配置组网图
# 配置各接口的IP地址,略。
# 创建攻击防范策略a1。
[Router] attack-defense policy a1
# 对所有非受保护IP地址开启HTTP flood攻击防范检测。
[Router-attack-defense-policy-a1] http-flood detect non-specific
# 配置HTTP flood攻击防范的全局触发阈值为10000。
[Router-attack-defense-policy-a1] http-flood threshold 10000
# 配置HTTP flood攻击防范的全局处理行为添加到HTTP客户端验证的受保护IP列表中以及输出告警日志。
[Router-attack-defense-policy-a1] http-flood action logging client-verify
[Router-attack-defense-policy-a1] quit
# 在接口GigabitEthernet0/1上应用攻击防范策略a1。
[Router] interface gigabitethernet 0/1
[Router-GigabitEthernet0/1] attack-defense apply policy a1
[Router-GigabitEthernet0/1] quit
# 在接口GigabitEthernet0/1上使能HTTP客户端验证功能。
[Router] interface gigabitethernet 0/1
[Router-GigabitEthernet0/1] client-verify http enable
[Router-GigabitEthernet0/1] quit
以上配置完成之后,若有针对服务器的HTTP flood攻击发生时,可以通过display client-verify http protected ip命令查看受攻击的服务器的IP地址被添加为动态受保护IP。
[Router] display client-verify http protected ip
IP address VPN instance Port Type Requested Trusted
192.168.1.10 -- 8080 Dynamic 20 12
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!