14-攻击检测与防范配置
本章节下载: 14-攻击检测与防范配置 (265.57 KB)
目 录
攻击检测及防范是一个重要的网络安全特性,它通过分析经过设备的报文的内容和行为,判断报文是否具有攻击特征,并根据配置对具有攻击特征的报文执行一定的防范措施,例如输出告警日志、丢弃报文或加入黑名单。
本特性能够检测单包攻击、扫描攻击和泛洪攻击等多种类型的网络攻击,并能对各类型攻击采取合理的防范措施。
单包攻击也称为畸形报文攻击,主要包括以下三种类型:
· 攻击者通过向目标系统发送带有攻击目的的IP报文,如分片重叠的IP报文、TCP标志位非法的报文,使得目标系统在处理这样的IP报文时出错、崩溃;
· 攻击者可以通过发送正常的报文,如ICMP报文、特殊类型的IP option报文,来干扰正常网络连接或探测网络结构,给目标系统带来损失;
· 攻击者还可通过发送大量无用报文占用网络带宽,造成拒绝服务攻击。
设备可以对表1-1中所列的各单包攻击行为进行有效防范。
表1-1 单包攻击类型及说明列表
单包攻击类型 |
说明 |
ICMP redirect |
攻击者向用户发送ICMP重定向报文,更改用户主机的路由表,干扰用户主机正常的IP报文转发。 |
ICMP unreachable |
某些系统在收到不可达的ICMP报文后,对于后续发往此目的地的报文判断为不可达并切断对应的网络连接。攻击者通过发送ICMP不可达报文,达到切断目标主机网络连接的目的。 |
ICMP type |
ICMP报文中,type值的表示不同含义的报文,接收者需要根据不同的类型进行响应,攻击者通过构造特定type类型的ICMP报文来达到影响系统正常处理报文等目的。 |
ICMPv6 type |
ICMPv6报文中,type值的表示不同含义的报文,接收者需要根据不同的类型进行响应,攻击者通过构造特定type类型的ICMPv6报文来达到影响系统正常处理报文等目的。 |
Land |
攻击者向目标主机发送大量源IP地址和目的IP地址都是目标主机自身的TCP SYN报文,使得目标主机的半连接资源耗尽,最终不能正常工作。 |
Large ICMP |
某些主机或设备收到超大的报文,会引起内存分配错误而导致协议栈崩溃。攻击者通过发送超大ICMP报文,让目标主机崩溃,达到攻击目的。 |
Large ICMPv6 |
某些主机或设备收到超大的报文,会引起内存分配错误而导致协议栈崩溃。攻击者通过发送超大ICMPv6报文,让目标主机崩溃,达到攻击目的。 |
IP option |
攻击者利用IP报文中的异常选项的设置,达到探测网络结构的目的,也可由于系统缺乏对错误报文的处理而造成系统崩溃。 |
Fragment |
攻击者通过向目标主机发送分片偏移小于5的分片报文,导致主机对分片报文进行重组时发生错误而造成系统崩溃。 |
Impossible |
攻击者通过向目标主机发送源IP地址和目的IP地址相同的报文,造成主机系统处理异常。 |
Tiny fragment |
攻击者构造一种特殊的IP分片来进行微小分片的攻击,这种报文首片很小,未能包含完整的传输层信息,因此能够绕过某些包过滤防火墙的过滤规则,达到攻击目标网络的目的。 |
Smurf |
攻击者向目标网络发送ICMP应答请求,该请求包的目的地址设置为目标网络的广播地址,这样该网络中的所有主机都会对此ICMP应答请求作出答复,导致网络阻塞,从而达到令目标网络中主机拒绝服务的攻击目的。 |
TCP Flag |
不同操作系统对于非常规的TCP标志位有不同的处理。攻击者通过发送带有非常规TCP标志的报文探测目标主机的操作系统类型,若操作系统对这类报文处理不当,攻击者便可达到使目标主机系统崩溃的目的。 |
Traceroute |
攻击者连续发送TTL从1开始递增的目的端口号较大的UDP报文,报文每经过一个路由器,其TTL都会减1,当报文的TTL为0时,路由器会给报文的源IP设备发送一个TTL超时的ICMP报文,攻击者借此来探测网络的拓扑结构。 |
Winnuke |
攻击者向安装(或使用)Windows系统的特定目标的NetBIOS端口(139)发送OOB(Out-Of-Band,带外)数据包,这些攻击报文的指针字段与实际的位置不符,从而引起一个NetBIOS片断重叠,致使已与其他主机建立连接的目标主机在处理这些数据的时候系统崩溃。 |
UDP Bomb |
攻击者发送畸形的UDP报文,其IP首部中的报文总长度大于IP首部长度与UDP首部中标识的UDP报文长度之和,可能造成收到此报文的系统处理数据时越界访问非法内存,导致系统异常。 |
UDP Snork |
攻击者向Windows系统发送目的端口为135(Windows定位服务)源端口为135、7或19(UDP Chargen服务)的报文,使被攻击系统不断应答报文,最终耗尽CPU资源。 |
UDP Fraggle |
攻击者通过向目标网络发送源UDP端口为7且目的UDP端口为19的Chargen报文,令网络产生大量无用的应答报文,占满网络带宽,达到攻击目的。 |
Teardrop |
攻击者通过发送大量分片重叠的报文,致使服务器对这些报文进行重组时造成重叠,因而丢失有效的数据。 |
Ping of death |
攻击者构造标志位为最后一片且长度大于65535的ICMP报文发送给目标主机,可能导致系统处理数据时越界访问非法内存,造成系统错误甚至系统崩溃。 |
扫描攻击是指,攻击者运用扫描工具对网络进行主机地址或端口的扫描,通过准确定位潜在目标的位置,探测目标系统的网络拓扑结构和开放的服务端口,为进一步侵入目标系统做准备。
· IP Sweep攻击
攻击者发送大量目的IP地址变化的探测报文,通过收到的回应报文来确定活跃的目标主机,以便针对这些主机进行下一步的攻击。
· Port scan攻击
攻击者获取了活动目标主机的IP地址后,向目标主机发送大量目的端口变化的探测报文,通过收到的回应报文来确定目标主机开放的服务端口,然后针对活动目标主机开放的服务端口选择合适的攻击方式或攻击工具进行进一步的攻击。
· 分布式Port scan攻击
攻击者控制多台主机,分别向特定目标主机发送探测报文,通过收集所有被控制的主机的回应报文,确定目标主机开启的服务端口,以便进一步实施攻击。
泛洪攻击是指攻击者在短时间内向目标系统发送大量的虚假请求,导致目标系统疲于应付无用信息,从而无法为合法用户提供正常服务,即发生拒绝服务。
设备支持对以下几种泛洪攻击进行有效防范:
· SYN flood攻击
根据TCP协议,服务器收到SYN报文后需要建立半连接并回应SYN ACK报文,然后等待客户端的ACK报文来建立正式连接。由于资源的限制,操作系统的TCP/IP协议栈只能允许有限个TCP连接。攻击者向服务器发送大量伪造源地址的SYN报文后,由于攻击报文是伪造的,服务器不会收到客户端的ACK报文,从而导致服务器上遗留了大量无效的半连接,耗尽其系统资源,使正常的用户无法访问,直到半连接超时。
· ACK flood攻击
ACK报文为只有ACK标志位置位的TCP报文,服务器收到ACK报文时,需要查找对应的连接。若攻击者发送大量这样的报文,服务器需要进行大量的查询工作,消耗正常处理的系统资源,影响正常的报文处理。
· SYN-ACK flood攻击
由于SYN ACK报文为SYN报文的后续报文,服务器收到SYN ACK报文时,需要查找对应的SYN报文。若攻击者发送大量这样的报文,服务器需要进行大量的查询工作,消耗正常处理的系统资源,影响正常的报文处理。
· FIN flood攻击
FIN报文用于关闭TCP连接。若攻击者向服务器发送大量的伪造的FIN报文,可能会使服务器关闭掉正常的连接。同时,服务器收到FIN报文时,需要查找对应的连接,大量的无效查询操作会消耗系统资源,影响正常的报文处理。
· RST flood攻击
RST报文为TCP连接的复位报文,用于在异常情况下关闭TCP连接。如果攻击者向服务器发送大量伪造的RST报文,可能会使服务器关闭正常的TCP连接。另外,服务器收到RST报文时,需要查找对应的连接,大量的无效查询操作会消耗系统资源,影响正常的报文处理。
· DNS flood攻击
DNS服务器收到任何DNS Query报文时都会试图进行域名解析并且回复该DNS报文。攻击者通过构造并向DNS服务器发送大量虚假DNS Query报文,占用DNS服务器的带宽或计算资源,使得正常的DNS Query得不到处理。
· HTTP flood攻击
HTTP服务器收到HTTP GET命令时可能进行一系列复杂的操作,包括字符串搜索、数据库遍历、数据组装、格式化转换等等,这些操作会消耗大量系统资源,因此当HTTP请求的速率超过了服务器的处理能力时,服务器就无法正常提供服务。攻击者通过构造并发送大量虚假HTTP GET请求,使服务器崩溃,无法响应正常的用户请求。
· ICMP flood攻击
ICMP flood攻击是指,攻击者在短时间内向特定目标发送大量的ICMP请求报文(例如ping报文),使其忙于回复这些请求,致使目标系统负担过重而不能处理正常的业务。
· ICMPv6 flood攻击
ICMPv6 flood攻击是指,攻击者在短时间内向特定目标发送大量的ICMPv6请求报文(例如ping报文),使其忙于回复这些请求,致使目标系统负担过重而不能处理正常的业务。
· UDP flood攻击
UDP flood攻击是指,攻击者在短时间内向特定目标发送大量的UDP报文,占用目标主机的带宽,致使目标主机不能处理正常的业务。
设备的包过滤功能一般是通过判断TCP首个分片中的五元组(源IP地址、源端口号、目的IP地址、目的端口号、传输层协议号)信息来决定后续TCP分片是否允许通过。RFC 1858对TCP分片报文进行了规定,认为TCP分片报文中,首片报文中TCP报文长度小于20字节,或后续分片报文中分片偏移量等于8字节的报文为TCP分片攻击报文。这类报文可以成功绕过上述包过滤功能,对设备造成攻击。
为防范这类攻击,可以在设备上配置TCP分片攻击防范功能,对TCP分片攻击报文进行丢弃。
DoS(Denial of Service,拒绝服务)攻击的目的是使被攻击对象无法提供正常的网络服务。Login用户DoS攻击是指,攻击者通过伪造登录帐户在短时间内向设备连续发起大量登录请求,占用系统认证处理资源,造成设备无法处理正常Login用户的登录请求。
为防范这类攻击,可以在设备上配置Login用户攻击防范功能,对发起恶意认证并多次尝试失败的用户报文进行丢弃。
字典序攻击是指攻击者通过收集用户密码可能包含的字符,使用各种密码组合逐一尝试登录设备,以达到猜测合法用户密码的目的。
为防范这类攻击,可以在设备上配置Login用户延时认证功能,在用户认证失败之后,延时期间不接受此用户的登录请求。
IP黑名单功能是根据报文的源IP地址进行报文过滤的一种攻击防范特性。同基于ACL(Access Control List,访问控制列表)的包过滤功能相比,黑名单进行报文匹配的方式更为简单,可以实现报文的高速过滤和有效屏蔽。
IP黑名单可以由设备动态或由用户手工进行添加、删除,具体机制如下:
· 动态添加黑名单是与扫描攻击防范功能配合实现的,动态生成的黑名单表项会在一定的时间之后老化。当设备根据报文的行为特征检测到某特定IP地址的扫描攻击企图之后,便将攻击者的IP地址自动加入黑名单,之后该IP地址发送的报文会被设备过滤掉。
· 手动配置的黑名单表项分为永久黑名单表项和非永久黑名单表项。永久黑名单表项建立后,一直存在,除非用户手工删除该表项。非永久黑名单表项的老化时间由用户指定,超出老化时间后,设备会自动将该黑名单表项删除。
配置任务 |
说明 |
详细配置 |
|
创建攻击防范策略 |
必选 |
||
配置攻击防范策略 |
配置单包攻击防范策略 |
必选 各类型的攻击防范功能之间没有先后顺序,可根据实际组网需求,配置其中的一种或多种 |
|
配置扫描攻击防范策略 |
|||
配置泛洪攻击防范策略 |
|||
配置攻击防范例外列表 |
可选 |
||
在本机应用攻击防范策略 |
必选 应用在本机的策略对所有目的地址为本机的报文均有效 |
||
配置单包攻击防范日志的非聚合输出功能 |
可选 |
||
配置TCP分片攻击防范 |
可选 |
||
配置IP黑名单 |
可选 可单独使用,也可与扫描攻击防范策略配合使用 |
||
配置Login用户攻击防范功能 |
可选 |
||
配置Login用户延时认证功能 |
可选 |
在配置攻击防范之前,必须首先创建一个攻击防范策略,并进入该攻击防范策略视图。在该视图下,可以定义一个或多个用于检测攻击的特征项,以及对检测到的攻击报文所采取的防范措施。
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建一个攻击防范策略,并进入攻击防范策略视图 |
attack-defense policy policy-number |
缺省情况下,不存在任何攻击防范策略 |
在一个攻击防范策略中,可以根据实际的网络安全需求来配置策略中的具体内容,主要包括针对攻击类型指定检测条件及采取的防范措施。
不同类型的攻击防范策略在配置内容上有所不同,下面将按照攻击类型(单包攻击、扫描攻击、泛洪攻击)分别进行介绍。
单包攻击防范主要通过分析经过设备的报文特征来判断报文是否具有攻击性,仅对上送本机的报文有效。若设备检测到某报文具有攻击性,则默认会输出告警日志,另外还可以根据配置将检测到的攻击报文做丢弃处理。
表1-4 配置单包攻击防范策略
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入攻击防范策略视图 |
attack-defense policy policy-name |
- |
开启指定类型单包攻击报文的特征检测,并设置攻击防范的处理行为 |
signature detect { fraggle | fragment | impossible | land | large-icmp | large-icmpv6 | smurf | snork | tcp-all-flags | tcp-fin-only | tcp-invalid-flags | tcp-null-flag | tcp-syn-fin | tiny-fragment | traceroute | udp-bomb | winnuke } [ action { { drop | logging } * | none } ] signature detect { ip-option-abnormal | ping-of-death | teardrop } action { drop | logging } * 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 icmpv6-type { icmpv6-type-value | destination-unreachable | echo-reply | echo-request | group-query | group-reduction | group-report | packet-too-big | parameter-problem | time-exceeded } [ 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 } ] signature detect ipv6-ext-header ext-header-value [ action { { drop | logging } * | none } ] |
至少选其一 缺省情况下,所有类型的单包攻击的特征检测均处于关闭状态 |
(可选)配置启动Large ICMP攻击防范的ICMP报文长度的最大值 |
signature { large-icmp | large-icmpv6 } max-length length |
缺省情况下,ICMP报文和ICMPv6报文长度的最大值均为4000字节 |
(可选)配置对不同级别的单包攻击报文的处理方式 |
signature level { high | info | low | medium } action { { drop | logging } * | none } |
缺省情况下,对info和low级别的单包攻击的处理行为是发送日志;对medium和high级别的单包攻击的处理行为是发送日志并丢包 |
(可选)开启指定级别单包攻击报文的特征检测 |
signature level { high | info | low | medium } detect |
缺省情况下,未开启任何级别的单包攻击报文的特征检测 |
扫描攻击防范主要通过监测网络使用者向设备发起连接的速率来检测其探测行为。若设备监测到某IP地址主动向设备发起的连接速率达到或超过了一定阈值,则可以根据配置输出告警日志、丢弃来自该IP地址的后续报文,或者将检测到的攻击者的源IP地址加入IP黑名单。
表1-5 配置扫描攻击防范策略
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入攻击防范策略视图 |
attack-defense policy policy-number |
- |
开启指定级别的扫描攻击防范 |
scan detect level { high | low | medium } action { { block-source [ timeout minutes ] | drop } | logging } * |
缺省情况下,扫描攻击防范处于关闭状态 |
通过监测向本机发起连接请求的速率来检测各类泛洪攻击。在设备上应用了泛洪攻击防范策略后,设备处于攻击检测状态,当它监测到向某服务器发送报文的速率持续达到或超过了指定的触发阈值时,即认为该服务器受到了攻击,则进入攻击防范状态,并根据配置启动相应的防范措施(输出告警日志、对后续新建连接的报文进行丢弃处理)。此后,当设备检测到向该服务器发送报文的速率低于恢复阈值(触发阈值的3/4)时,即认为攻击结束,则由攻击防范状态恢复为攻击检测状态,并停止执行防范措施。
为保护指定IP地址,攻击防范策略中支持基于IP地址的攻击防范配置。对于所有非受保护IP地址,可以统一开启攻击防范检测,并采用全局的参数设置来进行保护。
(1) 配置SYN flood攻击防范策略
表1-6 配置SYN flood攻击防范策略
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入攻击防范策略视图 |
attack-defense policy policy-number |
- |
对所有非受保护IP地址开启SYN flood攻击防范检测 |
syn-flood detect non-specific |
缺省情况下,未对任何非受保护IP地址开启SYN flood攻击防范检测 |
配置SYN flood攻击防范的全局触发阈值 |
syn-flood threshold threshold-value |
缺省情况下,SYN flood攻击防范的全局触发阈值为1000 |
配置SYN flood攻击防范的全局处理行为 |
syn-flood action { drop | logging } * |
缺省情况下,不对检测到的SYN flood攻击采取任何措施 |
开启对IP地址的SYN flood攻击防范检测,并配置触发阈值和处理行为 |
syn-flood detect { ip ipv4-address | ipv6 ipv6-address } [ vpn-instance vpn-instance-name ] [ threshold threshold-value ] [ action { { drop | logging } * | none } ] |
缺省情况下,未对任何指定IP地址配置SYN flood攻击防范检测 |
(2) 配置ACK flood攻击防范策略
表1-7 配置ACK flood攻击防范策略
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入攻击防范策略视图 |
attack-defense policy policy-number |
- |
对所有非受保护IP地址开启ACK flood攻击防范检测 |
ack-flood detect non-specific |
缺省情况下,未对任何非受保护IP地址开启ACK flood攻击防范检测 |
配置ACK flood攻击防范全局触发阈值 |
ack-flood threshold threshold-value |
缺省情况下,ACK flood攻击防范的全局触发阈值为1000 |
配置ACK flood攻击防范的全局处理行为 |
ack-flood action { drop | logging } * |
缺省情况下,不对检测到的ACK flood攻击采取任何措施 |
开启对IP地址的ACK flood攻击防范检测,并配置触发阈值和处理行为 |
ack-flood detect { ip ipv4-address | ipv6 ipv6-address } [ vpn-instance vpn-instance-name ] [ threshold threshold-value ] [ action { { drop | logging } * | none } ] |
缺省情况下,未对任何指定IP地址配置ACK flood攻击防范检测 |
(3) 配置SYN-ACK flood攻击防范策略
表1-8 配置SYN-ACK flood攻击防范策略
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入攻击防范策略视图 |
attack-defense policy policy-number |
- |
对所有非受保护IP地址开启SYN-ACK flood攻击防范检测 |
syn-ack-flood detect non-specific |
缺省情况下,未对任何非受保护IP地址开启SYN-ACK flood攻击防范检测 |
配置SYN-ACK flood攻击防范的全局触发阈值 |
syn-ack-flood threshold threshold-value |
缺省情况下,SYN-ACK flood攻击防范的全局触发阈值为1000 |
配置SYN-ACK flood攻击防范的全局处理行为 |
syn-ack-flood action { drop | logging } * |
缺省情况下,不对检测到的SYN-ACK flood攻击采取任何措施 |
开启对IP地址的SYN-ACK flood攻击防范检测,并配置触发阈值和处理行为 |
syn-ack-flood detect { ip ipv4-address | ipv6 ipv6-address } [ vpn-instance vpn-instance-name ] [ threshold threshold-value ] [ action { { drop | logging } * | none } ] |
缺省情况下,未对任何指定IP地址配置SYN-ACK flood攻击防范检测 |
(4) 配置FIN flood攻击防范策略
表1-9 配置FIN flood攻击防范策略
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入攻击防范策略视图 |
attack-defense policy policy-number |
- |
对所有非受保护IP地址开启FIN flood攻击防范检测 |
fin-flood detect non-specific |
缺省情况下,未对任何非受保护IP地址开启FIN flood攻击防范检测 |
配置FIN flood攻击防范的全局触发阈值 |
fin-flood threshold threshold-value |
缺省情况下,FIN flood攻击防范的全局触发阈值为1000 |
配置FIN flood攻击防范的全局处理行为 |
fin-flood action { drop | logging } * |
缺省情况下,不对检测到的FIN flood攻击采取任何措施 |
开启对IP地址的FIN flood攻击防范检测,并配置触发阈值和处理行为 |
fin-flood detect { ip ipv4-address | ipv6 ipv6-address } [ vpn-instance vpn-instance-name ] [ threshold threshold-value ] [ action { { drop | logging } * | none } ] |
缺省情况下,未对任何指定IP地址配置FIN flood攻击防范检测 |
(5) 配置RST flood攻击防范策略
表1-10 配置RST flood攻击防范策略
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入攻击防范策略视图 |
attack-defense policy policy-number |
- |
对所有非受保护IP地址开启RST flood攻击防范检测 |
rst-flood detect non-specific |
缺省情况下,未对任何非受保护IP地址开启RST flood攻击防范检测 |
配置RST flood攻击防范的全局触发阈值 |
rst-flood threshold threshold-value |
缺省情况下,RST flood攻击防范的全局触发阈值为1000 |
配置全局的RST flood攻击防范的全局处理行为 |
rst-flood action { drop | logging } * |
缺省情况下,不对检测到的RST flood攻击采取任何措施 |
开启对IP地址的RST flood攻击防范检测,并配置触发阈值和处理行为 |
rst-flood detect { ip ipv4-address | ipv6 ipv6-address } [ vpn-instance vpn-instance-name ] [ threshold threshold-value ] [ action { { drop | logging } * | none } ] |
缺省情况下,未对任何指定IP地址配置RST flood攻击防范检测 |
(6) 配置ICMP flood攻击防范策略
表1-11 配置ICMP flood攻击防范策略
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入攻击防范策略视图 |
attack-defense policy policy-number |
- |
对所有非受保护IPv4地址开启ICMP flood攻击防范检测 |
icmp-flood detect non-specific |
缺省情况下,未对任何非受保护IPv4地址开启ICMP flood攻击防范检测 |
配置ICMP flood攻击防范的全局触发阈值 |
icmp-flood threshold threshold-value |
缺省情况下,ICMP flood攻击防范的全局触发阈值为1000 |
配置ICMP flood攻击防范的全局处理动作 |
icmp-flood action { drop | logging } * |
缺省情况下,不对检测到的ICMP flood攻击采取任何措施 |
开启对IPv4地址的ICMP flood攻击防范检测,并配置触发阈值和处理行为 |
icmp-flood detect ip ip-address [ vpn-instance vpn-instance-name ] [ threshold threshold-value ] [ action { { drop | logging } * | none } ] |
缺省情况下,未对任何指定IPv4地址配置ICMP flood 攻击防范触发阈值 |
(7) 配置ICMPv6 flood攻击防范策略
表1-12 配置ICMPv6 flood攻击防范策略
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入攻击防范策略视图 |
attack-defense policy policy-number |
- |
对所有非受保护IPv6地址开启ICMPv6 flood攻击防范检测 |
icmpv6-flood detect non-specific |
缺省情况下,未对任何非受保护IPv6地址开启ICMPv6 flood攻击防范检测 |
配置ICMPv6 flood攻击防范的全局触发阈值 |
icmpv6-flood threshold threshold-value |
缺省情况下,ICMPv6 flood攻击防范的全局触发阈值为1000 |
配置ICMPv6 flood攻击防范的全局处理行为 |
icmpv6-flood action { drop | logging } * |
缺省情况下,不对检测到的ICMPv6 flood攻击采取任何防范措施 |
开启对IPv6地址的ICMPv6 flood攻击防范检测,并配置触发阈值和处理行为 |
icmpv6-flood detect ipv6 ipv6-address [ vpn-instance vpn-instance-name ] [ threshold threshold-value ] [ action { { drop | logging } * | none } ] |
缺省情况下,未对任何指定IPv6地址配置ICMPv6 flood攻击防范检测 |
(8) 配置UDP flood攻击防范策略
表1-13 配置UDP flood攻击防范策略
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入攻击防范策略视图 |
attack-defense policy policy-number |
- |
对所有非受保护IP地址开启UDP flood攻击防范检测 |
udp-flood detect non-specific |
缺省情况下,未对任何非受保护IP地址开启UDP flood攻击防范检测 |
配置UDP flood攻击防范的全局触发阈值 |
udp-flood threshold threshold-value |
缺省情况下,UDP flood攻击防范的全局触发阈值为1000 |
配置UDP flood攻击防范检测的全局处理行为 |
udp-flood action { drop | logging } * |
缺省情况下,不对检测到的UDP flood攻击进行任何处理 |
开启对IP地址的UDP flood攻击防范检测,并配置触发阈值和处理行为 |
udp-flood detect { ip ipv4-address | ipv6 ipv6-address } [ vpn-instance vpn-instance-name ] [ threshold threshold-value ] [ action { { drop | logging } * | none } ] |
缺省情况下,未对任何指定IP地址配置UDP flood攻击防范检测 |
(9) 配置DNS flood攻击防范策略
表1-14 配置DNS flood攻击防范策略
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入攻击防范策略视图 |
attack-defense policy policy-number |
- |
对所有非受保护IP地址开启DNS flood攻击防范检测 |
dns-flood detect non-specific |
缺省情况下,未对任何非受保护IP地址开启DNS flood攻击防范检测 |
配置DNS flood攻击防范的全局触发阈值 |
dns-flood threshold threshold-value |
缺省情况下,DNS flood攻击防范的全局触发阈值为1000 |
(可选)配置DNS flood攻击防范的全局检测端口号 |
dns-flood port port-list |
缺省情况下,DNS flood攻击防范的全局检测端口号为53 |
配置对DNS flood攻击防范的全局处理行为 |
dns-flood action { drop | logging } * |
缺省情况下,不对检测到的DNS flood攻击采取任何措施 |
开启对IP地址的DNS flood攻击防范检测,并配置触发阈值和处理行为 |
dns-flood detect { ip ipv4-address | ipv6 ipv6-address } [ vpn-instance vpn-instance-name ] [ port port-list ] [ threshold threshold-value ] [ action { { drop | logging } * | none } ] |
缺省情况下,未对任何指定IP地址配置DNS flood攻击防范检测 |
(10) 配置HTTP flood攻击防范策略
表1-15 配置HTTP flood攻击防范策略
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入攻击防范策略视图 |
attack-defense policy policy-number |
- |
对所有非受保护IP地址开启HTTP flood攻击防范检测 |
http-flood detect non-specific |
缺省情况下,未对任何非受保护IP地址开启HTTP flood攻击防范检测 |
配置HTTP flood攻击防范的全局触发阈值 |
http-flood threshold threshold-value |
缺省情况下,HTTP flood攻击防范的全局触发阈值为1000 |
(可选)配置HTTP flood攻击防范的全局检测端口号 |
http-flood port port-list |
缺省情况下,HTTP flood攻击防范的全局检测端口号为80 |
配置对HTTP flood攻击防范的全局处理行为 |
http-flood action { drop | logging } * |
缺省情况下,不对检测到的HTTP flood攻击采取任何措施 |
开启对IP地址的HTTP flood攻击防范检测,并配置触发阈值和处理行为 |
http-flood detect { ip ipv4-address | ipv6 ipv6-address } [ vpn-instance vpn-instance-name ] [ port port-list ] [ threshold threshold-value ] [ action { { drop | logging } * | none } ] |
缺省情况下,未对任何指定IP地址配置HTTP flood攻击防范检测 |
攻击防范例外列表用于过滤不需要进行攻击防范检测的主机报文,与指定的ACL permit规则匹配的报文将不会受到任何类型的攻击防范检测。该配置用于过滤某些被信任的安全主机发送的报文,可以有效的减小误报率,并提高服务器处理效率。例如:攻击防范功能可能将源IP地址相同,目的地址不同的组播报文(如OSPF、PIM等协议报文)检测为扫描攻击,此时可以通过配置例外列表放行组播报文来消除误报。
需要注意的是,例外列表引用的ACL的permit规则中仅源地址、目的地址、源端口、目的端口、协议号、L3VPN和非首片分片标记参数用于匹配报文。
表1-16 配置攻击防范例外列表
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入攻击防范策略视图 |
attack-defense policy policy-number |
- |
配置攻击防范例外列表 |
exempt acl [ ipv6 ] { acl-number | name acl-name } |
缺省情况下,未配置攻击防范例外列表 |
通过在本机应用攻击防范策略,使已配置的攻击防范策略对目的地址为本机的报文生效。
默认情况下交换机对转发的报文下发给硬件转发,只有目的地址是本机的报文才会由软件处理,但软件处理没有攻击防范功能。为处理针对本机的攻击,需要通过在本机上应用攻击防范策略来实现。
表1-17 配置在本机应用攻击防范策略
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置在本机应用攻击防范策略 |
attack-defense local apply policy policy-name |
缺省情况下,本机未应用任何攻击防范策略 |
对日志进行聚合输出是指,在一定时间内,对在本机上检测到的相同攻击类型、相同攻击防范动作、相同的源/目的地址以及属于相同VPN的单包攻击的所有日志聚合成一条日志输出。
通常不建议开启单包攻击防范的日志非聚合输出功能,因为在单包攻击较为频繁的情况下,它会导致大量日志信息输出,占用控制台的显示资源。
表1-18 配置单包攻击防范日志的非聚合输出功能
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
开启对单包攻击防范日志的非聚合输出功能 |
attack-defense signature log non-aggregate |
缺省情况下,单包攻击防范的日志信息经系统聚合后再输出 |
设备上开启TCP分片攻击防范功能后,能够对收到的TCP分片报文的长度以及分片偏移量进行合法性检测,并丢弃非法的TCP分片报文。
需要注意的是,如果设备上开启了TCP分片攻击防范功能,并应用了单包攻击防范策略,则TCP分片攻击防范功能会先于单包攻击防范策略检测并处理入方向的TCP报文。
表1-19 配置TCP分片攻击防范
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
开启TCP分片攻击防范功能 |
attack-defense tcp fragment enable |
缺省情况下,TCP分片攻击防范功能处于开启状态 |
通过配置IP黑名单功能可以对来自指定IP地址的报文进行过滤。
IP黑名单的配置包括开启黑名单过滤功能和添加IP黑名单表项。添加IP黑名单表项的同时可以选择配置IP黑名单表项的老化时间,若不配置,那么该IP黑名单表项永不老化,除非用户手动将其删除。
IP黑名单表项除了可以手工添加之外,还可以通过扫描攻击防范自动添加。具体来讲就是,在黑名单功能使能的前提下,若配置了扫描攻击防范策略及相应的IP黑名单添加功能,则可以将检测到的扫描攻击方IP地址添加到IP黑名单中。扫描攻击防范添加的IP黑名单必定会老化,老化时间可配。关于扫描攻击防范的相关配置请参见“1.5.2 2. 配置扫描攻击防范策略”。
表1-20 配置IP黑名单
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
(可选)开启全局黑名单过滤功能 |
blacklist global enable |
缺省情况下,全局黑名单功能处于关闭状态 |
(可选)添加IPv4黑名单表项 |
blacklist ip source-ip-address [ vpn-instance vpn-instance-name ] [ ds-lite-peer ds-lite-peer-address ] [ timeout minutes ] |
缺省情况下,不存在IPv4黑名单表项 |
(可选)添加IPv6黑名单表项 |
blacklist ipv6 source-ipv6-address [ vpn-instance vpn-instance-name ] [ timeout minutes ] |
缺省情况下,不存在IPv6黑名单表项 |
(可选)使能黑名单日志功能 |
blacklist logging enable |
缺省情况下,黑名单日志功能处于关闭状态 |
Login用户攻击防范功能处于开启状态时,如果用户登录设备连续失败的次数达到指定次数,则此用户IP地址将被加入黑名单,在全局黑名单功能开启的情况下,来自该IP地址的用户报文将被阻断指定的时长。
通过Login攻击防范功能与全局黑名单功能相配合,可以有效防范Login用户DoS攻击。
表1-21 配置Login用户攻击防范功能
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
开启Login用户攻击防范功能 |
attack-defense login enable |
缺省情况下,Login用户攻击防范功能处于关闭状态 |
配置Login用户登录失败的最大次数 |
attack-defense login max-attempt max-attempt |
缺省情况下,Login用户登录失败的最大次数为3次 |
配置Login用户用户登录失败后阻断时长 |
attack-defense login block-timeout minutes |
缺省情况下,Login用户用户登录失败后阻断时长为60分钟 |
开启全局黑名单过滤功能 |
blacklist global enable |
缺省情况下,全局黑名单功能处于关闭状态 |
Login用户登录失败后,若设备上配置了重新进行认证的等待时长,则系统将会延迟一定的时长之后再允许用户进行认证,可以有效地避免设备受到Login用户字典序攻击。
Login用户延迟认证功能与Login用户攻击防范功能无关,只要配置了延迟认证等待时间,即可生效。
表1-22 配置Login用户失败延时认证功能
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置Login用户登录失败后重新进行认证的等待时长 |
attack-defense login reauthentication-delay seconds |
缺省情况下,Login用户登录失败后重新进行认证不需要等待 |
在完成上述配置后,在任意视图下执行display命令可以显示配置后攻击检测及防范的运行情况,通过查看显示信息验证配置的效果。
在用户视图下,执行reset命令可以清除攻击检测及防范的统计信息。
操作 |
命令 |
显示本机攻击防范统计信息 |
display attack-defense statistics local [ slot slot-number ] |
显示攻击防范策略的配置信息 |
display attack-defense policy [ policy-name ] |
显示扫描攻击者的IPv4地址表项 |
display attack-defense scan attacker ip [ [ interface interface-type interface-number | local ] [ slot slot-number ] ] [ count ] |
显示扫描攻击者的IPv6地址表项 |
display attack-defense scan attacker ipv6 [ [ interface interface-type interface-number | local ] [ slot slot-number ] ] [ count ] |
显示扫描攻击被攻击者的IPv4地址表项 |
display attack-defense scan victim ip [ [ interface interface-type interface-number | local ] [ slot slot-number ] ] [ count ] |
显示扫描攻击被攻击者的IPv6地址表项 |
display attack-defense scan victim ipv6 [ [ interface interface-type interface-number | local ] [ slot slot-number ] ] [ count ] |
显示IPv4 flood攻击防范统计信息 |
display attack-defense { ack-flood | dns-flood | fin-flood | flood | http-flood | icmp-flood | rst-flood | syn-ack-flood | syn-flood | udp-flood } statistics ip [ ip-address [ vpn vpn-instance-name ] ] [ count ] [ [ interface interface-type interface-number | local ] [ slot slot-number ] ] [ count ] |
显示IPv6 flood攻击防范统计信息 |
display attack-defense { ack-flood | dns-flood | fin-flood | flood | http-flood | icmpv6-flood | rst-flood | syn-ack-flood | syn-flood | udp-flood } statistics ipv6 [ ipv6-address [ vpn vpn-instance-name ] ] [ [ interface interface-type interface-number | local ] [ slot slot-number ] ] [ count ] |
显示flood攻击防范的IPv4类型的受保护IP表项 |
display attack-defense policy policy-name { ack-flood | dns-flood | fin-flood | flood | http-flood | icmp-flood | rst-flood | syn-ack-flood | syn-flood | udp-flood } ip [ ip-address [ vpn vpn-instance-name ] ] [ slot slot-number ] [ count ] |
显示flood攻击防范的IPv6类型的受保护IP表项 |
display attack-defense policy policy-name { ack-flood | dns-flood | fin-flood | flood | http-flood | icmpv6-flood | rst-flood | syn-ack-flood | syn-flood | udp-flood } ipv6 [ ipv6-address [ vpn vpn-instance-name ] ] [ slot slot-number ] [ count ] |
显示用户配置的IPv4黑名单表项 |
display blacklist ip [ source-ip-address [ vpn-instance vpn-instance-name ] [ ds-lite-peer ds-lite-peer-address ] | count ] |
显示用户配置的IPv6黑名单表项 |
display blacklist ipv6 [ source-ipv6-address [ vpn-instance vpn-instance-name ] | count ] |
清除本机攻击防范的统计信息 |
reset attack-defense statistics local |
清除flood攻击防范受保护IP表项的统计信息 |
reset attack-defense policy policy-name flood protected { ip | ipv6 } statistics |
清除IPv4动态黑名单表项 |
reset blacklist ip { source-ip-address [ vpn-instance vpn-instance-name ] [ ds-lite-peer ds-lite-peer-address ] | all } |
清除IPv6动态黑名单表项 |
reset blacklist ipv6 { source-ipv6-address [ vpn-instance vpn-instance-name ] | all } |
清除黑名单表项的统计信息 |
reset blacklist statistics |
Switch作为用户网络连接外网的网关,通过Vlan-interface1与内部网络连接,Vlan-interface2与外部网络连接,要求在Switch上配置防御功能以避免遭受来自用户侧或者是网络侧的各类网络攻击。
· 为防范目的地址为本机的TCP Flag攻击和低级别扫描攻击,在设备上开启TCP Flag攻击防范和扫描攻击防范功能:检测到TCP Flag攻击或低级别的扫描攻击后,输出告警日志。
· 为防范目的地址为交换机外网接口192.168.2.1/24的SYN flood攻击,在设备上开启受保护IP地址的SYN flood攻击防范。具体要求为:当监测到每秒钟发送到目的IP地址为受保护IP的SYN报文数持续达到或超过5000时,输出告警日志并丢弃攻击报文。
· 为防范目的地址为交换机内网接口的SYN flood攻击,在设备上开启非受保护IP地址的SYN flood攻击防范。具体要求为:当监测到每秒钟发送到目的IP地址为本机非受保护IP地址的SYN报文数持续达到或超过2000时,输出告警日志。
图1-1 本机攻击检测与防范配置典型组网图
# 创建攻击防范策略a1。
[Switch] attack-defense policy a1
# 开启对多种TCP Flag单包攻击报文(包括TCP所有标志位均置位的攻击报文、TCP仅FIN标志被置位的攻击报文、TCP标志位非法的攻击报文、TCP标志位为零的攻击报文和TCP SYN和FIN标志位被同时置位的攻击报文)的特征检测,配置处理行为为输出告警日志。
[Switch-attack-defense-policy-a1] signature detect tcp-all-flags action logging
[Switch-attack-defense-policy-a1] signature detect tcp-fin-only action logging
[Switch-attack-defense-policy-a1] signature detect tcp-invalid-flags action logging
[Switch-attack-defense-policy-a1] signature detect tcp-null-flag action logging
[Switch-attack-defense-policy-a1] signature detect tcp-syn-fin action logging
# 开启低防范级别的扫描攻击防范,配置处理行为输出告警日志。
[Router-attack-defense-policy-a1] scan detect level low action logging
# 配置针对外网接口192.168.2.1的SYN flood攻击防范参数,触发阈值为5000,处理行为输出告警日志并丢弃攻击报文。
[Switch-attack-defense-policy-a1] syn-flood detect ip 192.168.2.1 threshold 5000 action logging drop
# 配置针对内网接口192.168.1.1的SYN flood攻击防范参数,触发阈值为2000,处理行为输出告警日志。
[Switch-attack-defense-policy-a1] syn-flood detect non-specific
[Switch-attack-defense-policy-a1] syn-flood threshold 2000
[Switch-attack-defense-policy-a1] syn-flood action logging
[Switch-attack-defense-policy-a1] quit
# 在本机应用攻击防范策略a1。
[Switch] attack-defense local apply policy a1
完成以上配置后,可以通过display attack-defense policy命令查看配置的攻击防范策略a1的具体内容。
# 查看攻击防范策略a1的配置信息。
[Switch] display attack-defense policy a1
Attack-defense Policy Information
--------------------------------------------------------------------------
Policy name : a1
Applied list : Local
--------------------------------------------------------------------------
Exempt IPv4 ACL : Not configured
Exempt IPv6 ACL : Not configured
--------------------------------------------------------------------------
Actions: CV-Client verify BS-Block source L-Logging D-Drop N-None
Signature attack defense configuration:
Signature name Defense Level Actions
Fragment Disabled low L
Impossible Disabled medium L,D
Teardrop Disabled medium L,D
Tiny fragment Disabled low L
IP option abnormal Disabled medium L,D
Smurf Enabled medium L,D
Traceroute Disabled low L
Ping of death Disabled medium L,D
Large ICMP Disabled info L
Max length 4000 bytes
Large ICMPv6 Disabled info L
Max length 4000 bytes
TCP invalid flags Disabled medium L
TCP null flag Disabled medium L
TCP all flags Disabled medium L
TCP SYN-FIN flags Disabled medium L
TCP FIN only flag Disabled medium L
TCP Land Disabled medium L,D
Winnuke Disabled medium L,D
UDP Bomb Disabled medium L,D
UDP Snork Disabled medium L,D
UDP Fraggle Disabled medium L,D
IP option record route Disabled info L
IP option internet timestamp Disabled info L
IP option security Disabled info L
IP option loose source routing Disabled info L
IP option stream ID Disabled info L
IP option strict source routing Disabled info L
IP option route alert Disabled info L
ICMP echo request Disabled info L
ICMP echo reply Disabled info L
ICMP source quench Disabled info L
ICMP destination unreachable Disabled info L
ICMP redirect Disabled info L
ICMP time exceeded Disabled info L
ICMP parameter problem Disabled info L
ICMP timestamp request Disabled info L
ICMP timestamp reply Disabled info L
ICMP information request Disabled info L
ICMP information reply Disabled info L
ICMP address mask request Disabled info L
ICMP address mask reply Disabled info L
ICMPv6 echo request Disabled info L
ICMPv6 echo reply Disabled info L
ICMPv6 group membership query Disabled info L
ICMPv6 group membership report Disabled info L
ICMPv6 group membership reduction Disabled info L
ICMPv6 destination unreachable Disabled info L
ICMPv6 time exceeded Disabled info L
ICMPv6 parameter problem Disabled info L
ICMPv6 packet too big Disabled info L
Scan attack defense configuration:
Defense : Enabled
Level : low
Actions : L
Flood attack defense configuration:
Flood type Global thres(pps) Global actions Service ports Non-specific
SYN flood 2000 L - Enabled
ACK flood 1000(default) - - Disabled
SYN-ACK flood 1000(default) - - Disabled
RST flood 1000(default) - - Disabled
FIN flood 1000(default) - - Disabled
UDP flood 1000(default) - - Disabled
ICMP flood 1000(default) - - Disabled
ICMPv6 flood 1000(default) - - Disabled
DNS flood 1000(default) - 53 Disabled
HTTP flood 1000(default) - 80 Disabled
Flood attack defense for protected IP addresses:
Address VPN instance Flood type Thres(pps) Actions Ports
192.168.2.1 -- SYN-FLOOD 5000 L,D -
如果设备收到目的地址为本机的TCP Flag攻击报文或扫描攻击报文,设备会输出告警日志;如果设备收到目的地址为受保护IP的SYN flood攻击报文超过触发阈值,则设备会输出告警日志,同时丢弃攻击报文;如果设备收到目的地址为本机非受保护IP的SYN flood攻击报文超过触发阈值,则设备会输出告警日志。
之后,可以通过display attack-defense statistics local命令查看设备上攻击防范的统计信息。
# 查看设备上攻击防范的统计信息。
[Swtich] display attack-defense statistics local
Attack policy name: a1
Slot 1:
Scan attack defense statistics:
AttackType AttackTimes Dropped
Port scan 4 0
Flood attack defense statistics:
AttackType AttackTimes Dropped
No flood attacks detected.
Signature attack defense statistics:
AttackType AttackTimes Dropped
TCP invalid flags 116 0
TCP null flag 709 0
TCP all flags 251 0
TCP SYN-FIN flags 46 0
TCP FIN only flag 130 0
网络管理员通过流量分析发现外部网络中存在一个攻击者Host D,需要将来自Host D的报文在Switch上永远过滤掉。另外,网络管理员为了暂时控制内部网络Host C的访问行为,需要将Switch上收到的Host C的报文阻止50分钟。
图1-2 IP黑名单配置典型组网图
# 配置各接口的IP地址,略。
# 开启全局黑名单过滤功能。
<Switch> system-view
[Switch] blacklist global enable
# 将Host D的IP地址5.5.5.5添加到黑名单列表中,老化时间使用缺省情况(永不老化)。
[Switch] blacklist ip 5.5.5.5
# 将Host C的IP地址192.168.1.4添加到黑名单列表中,老化时间为50分钟。
[Switch] blacklist ip 192.168.1.4 timeout 50
完成以上配置后,可以通过display blacklist命令查看已添加的黑名单信息。
<Switch> display blacklist ip
IP address VPN instance DS-Lite tunnel peer Type TTL(sec)
5.5.5.5 -- -- Manual Never
192.168.1.4 -- -- Manual 2989
配置生效后,Switch对来自Host D的报文一律进行丢弃处理,除非管理员认为Host D不再是攻击者,通过undo blacklist ip 5.5.5.5将其从黑名单中删除;如果Switch接收到来自Host C的报文,则在50分钟之内,一律对其进行丢弃处理,50分钟之后,才进行正常转发。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!