17-攻击检测与防范配置
本章节下载: 17-攻击检测与防范配置 (619.21 KB)
目 录
1.5.1 TCP客户端验证功能(TCP Client verify)
1.5.2 DNS客户端验证(DNS Client verify)
1.5.3 HTTP客户端验证(HTTP Client verify)
1.5.4 SIP客户端验证(SIP Client verify)
攻击检测及防范是一个重要的网络安全特性,它通过分析经过设备的报文的内容和行为,判断报文是否具有攻击特征,并根据配置对具有攻击特征的报文执行一定的防范措施,例如输出告警日志、丢弃报文、加入黑名单或客户端验证列表。
设备能够检测单包攻击、扫描攻击和泛洪攻击等多种类型的网络攻击,并能对各类型攻击采取合理的防范措施。
单包攻击也称为畸形报文攻击,主要包括以下三种类型:
· 攻击者通过向目标系统发送带有攻击目的的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应答请求,该请求包的目的地址设置为A、B、C类子网的网络地址或广播地址,这样该网络中的所有主机都会对此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报文发送给目标主机,可能导致系统处理数据时越界访问非法内存,造成系统错误甚至系统崩溃。 |
IPv6 ext-header |
攻击者可以通过构造包含异常数量IPv6扩展头的报文对目标主机进行攻击,目标主机在解析报文时耗费大量资源,从而影响转发性能。 |
扫描攻击是指,攻击者运用扫描工具对网络进行主机地址或端口的扫描,通过准确定位潜在目标的位置,探测目标系统的网络拓扑结构和开放的服务端口,为进一步侵入目标系统做准备。
攻击者发送大量目的IP地址变化的探测报文,通过收到的回应报文来确定活跃的目标主机,以便针对这些主机进行下一步的攻击。
攻击者获取了活动目标主机的IP地址后,向目标主机发送大量目的端口变化的探测报文,通过收到的回应报文来确定目标主机开放的服务端口,然后针对活动目标主机开放的服务端口选择合适的攻击方式或攻击工具进行进一步的攻击。
攻击者控制多台主机,分别向特定目标主机发送探测报文,通过收集所有被控制的主机的回应报文,确定目标主机开启的服务端口,以便进一步实施攻击。
泛洪攻击是指攻击者在短时间内向目标系统发送大量的虚假请求,导致目标系统疲于应付无用信息,从而无法为合法用户提供正常服务,即发生拒绝服务。
设备支持对以下几种泛洪攻击进行有效防范:
根据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/POST命令时可能进行一系列复杂的操作,包括字符串搜索、数据库遍历、数据组装、格式化转换等等,这些操作会消耗大量系统资源,因此当HTTP请求的速率超过了服务器的处理能力时,服务器就无法正常提供服务。攻击者通过构造并发送大量虚假HTTP GET/POST请求,使服务器崩溃,无法响应正常的用户请求。
SIP服务器收到SIP INVITE报文后,服务器需要分配一定的资源用于跟踪和建立会话。当SIP请求的速率超过了服务器的处理能力时,SIP服务器就无法正常提供服务。攻击者通过构造并发送大量虚假的SIP INVITE请求,大量消耗SIP服务器的系统资源,影响正常的报文处理。
ICMP flood攻击是指,攻击者在短时间内向特定目标发送大量的ICMP请求报文(例如ping报文),使其忙于回复这些请求,致使目标系统负担过重而不能处理正常的业务。
ICMPv6 flood攻击是指,攻击者在短时间内向特定目标发送大量的ICMPv6请求报文(例如ping报文),使其忙于回复这些请求,致使目标系统负担过重而不能处理正常的业务。
UDP flood攻击是指,攻击者在短时间内向特定目标发送大量的UDP报文,占用目标主机的带宽,致使目标主机不能处理正常的业务。
DoS(Denial of Service,拒绝服务)攻击的目的是使被攻击对象无法提供正常的网络服务。Login用户DoS攻击是指,攻击者通过伪造登录账户在短时间内向设备连续发起大量登录请求,占用系统认证处理资源,造成设备无法处理正常Login用户的登录请求。
为防范这类攻击,可以在设备上配置Login用户攻击防范功能,对发起恶意认证并多次尝试失败的用户报文进行丢弃。
字典序攻击是指攻击者通过收集用户密码可能包含的字符,使用各种密码组合逐一尝试登录设备,以达到猜测合法用户密码的目的。
为防范这类攻击,可以在设备上配置Login用户延时认证功能,在用户认证失败之后,延时期间不接受此用户的登录请求。
IP黑名单功能是根据报文的源IP地址进行报文过滤的一种攻击防范特性。同基于ACL(Access Control List,访问控制列表)的包过滤功能相比,黑名单进行报文匹配的方式更为简单,可以实现报文的高速过滤和有效屏蔽。
IP黑名单可以由设备动态或由用户手工进行添加、删除,具体机制如下:
· 动态添加黑名单是与扫描攻击防范功能配合实现的,动态生成的黑名单表项会在一定的时间之后老化。当设备根据报文的行为特征检测到某特定IP地址的扫描攻击企图之后,便将攻击者的IP地址自动加入黑名单,之后该IP地址发送的报文会被设备过滤掉。
· 手动配置的黑名单表项分为永久黑名单表项和非永久黑名单表项。永久黑名单表项建立后,一直存在,除非用户手工删除该表项。非永久黑名单表项的老化时间由用户指定,超出老化时间后,设备会自动将该黑名单表项删除。
用户黑名单功能是基于用户进行报文过滤的一种攻击防范特性。该特性需要和用户身份识别功能配合使用,由后者为其提供用户身份和用户IP地址的对应关系。有关用户身份识别功能的详细介绍,请参见“安全配置指导”中的“用户身份识别与管理”。同IP黑名单的包过滤功能相比,用户黑名单可以从用户级进行访问控制,提高了过滤策略的易用性。
用户黑名单目前仅支持由管理员手工进行配置、删除,具体机制如下:
手动配置的用户黑名单表项分为永久黑名单表项和非永久黑名单表项。永久黑名单表项建立后,一直存在,除非用户手工删除该表项。非永久黑名单表项的老化时间由用户指定,超出老化时间后,设备会自动将该黑名单表项删除。
地址对象组黑名单功能是基于地址对象组进行报文过滤的一种攻击防范特性。该特性需要和地址对象组功能配合使用,由后者为其提供地址对象组和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/POST请求进行代理。当设备检测到有服务器受到HTTP flood攻击时,即将该服务器IP地址添加为动态受保护的IP地址,并对所有向该受保护服务器发起的HTTP GET/POST请求报文进行处理,通过对客户端发起的HTTP GET/POST请求进行两次验证的方式,达到保护服务器免受HTTP flood攻击的目的。
HTTP GET Client verify的处理流程如图1-6所示:
图1-6 HTTP GET Client verify处理流程
HTTP客户端验证设备收到某客户端发送的TCP连接请求报文(目的地址匹配受保护IP表项)后,首先以TCP Proxy的Syn Cookie方式进行验证(详见“1.5.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请求报文将被直接进行透传。
图1-7 HTTP Client POST verify处理流程
HTTP客户端验证设备收到某客户端发送的TCP连接请求报文(目的地址匹配受保护IP表项)后,首先以TCP Proxy的Syn Cookie方式进行验证(详见“1.5.1 TCP客户端验证功能(TCP Client verify)”)。客户端的TCP连接通过验证之后,设备将对客户端发送的HTTP POST请求报文依次进行重定向验证和超时验证,具体流程如下所述。
(2) 重定向验证:设备收到客户端的HTTP POST请求之后向其发送带有Set-Cookie验证字段的HTTP Redirect报文,并在重定向报文中设置标记位要求客户端结束本次TCP连接。该过程中,设备会记录该客户端的信息。当前的TCP连接结束之后,客户端与设备进行一轮新的TCP三次握手。
(3) 超时验证:设备收到客户端发起的带有Cookie字段的HTTP POST请求之后,向其发送HTTP 超时报文,并在报文中设置标记位要求客户端结束本次TCP连接。该过程中,设备会检查客户端是否经过了第一次重定向,以及本次HTTP报文中是否带有有效的Cookie值。如果检查通过,设备会将该客户端加入到信任IP表项中,该客户端的后续HTTP POST请求报文将被直接进行透传。
SIP客户端验证功能用来防御服务器受到SIP flood攻击。启用了SIP客户端验证功能的设备位于客户端和服务器之间,能够对客户端与服务器之间SIP协议的INVITE请求进行代理。当设备检测到有服务器受到SIP flood攻击时,即将该服务器IP地址添加为动态受保护的IP地址,并对所有向该受保护服务器发起的SIP INVITE请求报文进行处理,通过对客户端发起的SIP INVITE请求进行验证的方式,达到保护服务器免受SIP flood攻击的目的。
SIP Client verify的处理流程如图1-8所示。
SIP客户端验证设备收到某客户端发送的UDP类型的INVITE报文(目的地址匹配受保护IP表项)后,先代替服务器向客户端回应OPTIONS报文,该报文中携带branch值信息。如果是合法客户端,则它收到OPTIONS报文之后会向SIP客户端验证设备发送OPTIONS ACK报文。SIP客户端验证设备收到此报文后,检查OPTIONS ACK报文中的branch值和发送的OPTIONS报文中的branch值是否相同,若相同,则认为该客户端通过了SIP客户端验证。对于通过了SIP验证的客户端,设备直接转发其后续报文,不对报文进行处理。若branch值不相同,则认为该客户端未通过了SIP客户端验证,直接丢弃报文。
攻击检测与防范配置任务如下:
(1) 配置并应用攻击防范策略
b. 配置攻击防范策略
各类型的攻击防范功能之间没有先后顺序,可根据实际组网需求,配置其中的一种或多种:
c. (可选)配置攻击防范例外列表
(2) (可选)开启全局单包攻击检测与防范功能
(3) (可选)配置单包攻击防范日志的非聚合输出功能
(4) (可选)配置攻击排名的Top统计功能
(5) (可选)配置客户端验证(可单独使用,也可与泛洪攻击防范配合使用)
(6) (可选)配置黑名单(可单独使用,也可与扫描攻击防范配合使用)
¡ 配置IP黑名单
¡ 配置用户黑名单
(7) (可选)配置地址对象组白名单
(8) (可选)配置Login用户攻击防范(通常单独使用)
(9) (可选)开启流量强制软件转发功能
攻击防范策略主要包括针对攻击类型指定的检测条件及采取的防范措施。
在配置攻击防范之前,必须首先创建一个攻击防范策略,并进入该攻击防范策略视图。在该视图下,可以定义一个或多个用于检测攻击的特征项,以及对检测到的攻击报文所采取的防范措施。
攻击防范的缺省触发阈值对于现网环境而言可能过小,这会导致用户上网慢或者网页打不开等情况,请根据实际网络环境配置合理的触发阈值。
(1) 进入系统视图。
system-view
(2) 创建一个攻击防范策略,并进入攻击防范策略视图。
attack-defense policy policy-name
单包攻击防范主要通过分析经过设备的报文特征来判断报文是否具有攻击性,一般应用在设备连接外部网络的安全域上,且仅对应用了攻击防范策略的安全域上的入方向报文有效。若设备检测到某报文具有攻击性,则默认会输出告警日志,另外还可以根据配置将检测到的攻击报文做丢弃处理。
(1) 进入系统视图。
system-view
(2) 进入攻击防范策略视图。
attack-defense policy policy-name
(3) 开启指定类型单包攻击报文的特征检测,并设置攻击防范的处理行为。请至少选择其中一项进行配置。
¡ 开启指定类型的知名单包攻击报文的特征检测,并设置攻击防范的处理行为。
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 } *
¡ 开启ICMP类型的单包攻击报文的特征检测,并设置攻击防范的处理行为。
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 } ]
¡ 开启ICMPv6类型的单包攻击报文的特征检测,并设置攻击防范的处理行为。
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 } ]
¡ 开启IP选项类型的单包攻击报文的特征检测,并设置攻击防范的处理行为。
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 } ]
¡ 开启IP扩展头类型的单包攻击报文的特征检测,并设置攻击防范的处理行为。
signature detect ipv6-ext-header ext-header-value [ action { { drop | logging } * | none } ]
缺省情况下,所有类型的单包攻击的特征检测均处于关闭状态。
(4) (可选)配置启动Large ICMP攻击防范的ICMP报文长度的最大值。
signature { large-icmp | large-icmpv6 } max-length length
缺省情况下,ICMP报文和ICMPv6报文长度的最大值均为4000字节。
(5) (可选)配置对不同级别的单包攻击报文的处理方式。
signature level { high | info | low | medium } action { { drop | logging } * | none }
缺省情况下,对info和low级别的单包攻击的处理行为是发送日志;对medium和high级别的单包攻击的处理行为是发送日志并丢包。
(6) (可选)开启指定级别单包攻击报文的特征检测。
signature level { high | info | low | medium } detect
缺省情况下,未开启任何级别的单包攻击报文的特征检测。
扫描攻击防范主要通过监测网络使用者向目标系统发起连接的速率来检测其探测行为,一般应用在设备连接外部网络的安全域上,且仅对应用了攻击防范策略的安全域上的入方向报文有效。若设备监测到某IP地址主动发起的连接速率达到或超过了一定阈值,则可以根据配置输出告警日志、丢弃来自该IP地址的后续报文,或者将检测到的攻击者的源IP地址加入IP黑名单。
若指定的扫描攻击的处理行为为加入IP黑名单,则需要开启全局或安全域上的黑名单过滤功能来配合。关于黑名单过滤功能的相关配置请参见“1.15 配置IP黑名单”。
(1) 进入系统视图。
system-view
(2) 进入攻击防范策略视图。
attack-defense policy policy-name
(3) 开启指定级别的扫描攻击防范。
scan detect level { { high | low | medium } | user-defined { port-scan-threshold threshold-value | ip-sweep-threshold threshold-value } * [ period period-value ] } action { { block-source [ timeout minutes ] | drop } | logging } *
缺省情况下,扫描攻击防范处于关闭状态。
泛洪攻击防范主要用于保护服务器,通过监测向服务器发起连接请求的速率来检测各类泛洪攻击,一般应用在设备连接外部网络的安全域上,且仅对应用了攻击防范策略的安全域上的入方向报文有效。在安全域上应用了泛洪攻击防范策略后,安全域处于攻击检测状态,当它监测到向某服务器发送报文的速率持续达到或超过了指定的触发阈值时,即认为该服务器受到了攻击,则进入攻击防范状态,并根据配置启动相应的防范措施(输出告警日志、对后续新建连接的报文进行丢弃处理或者进行客户端验证)。此后,当设备检测到向该服务器发送报文的速率低于恢复阈值(触发阈值的3/4)时,即认为攻击结束,则由攻击防范状态恢复为攻击检测状态,并停止执行防范措施。
在泛洪攻击防范策略中,阈值是触发系统执行防范动作的条件,因此,阈值的设置是否合理将直接影响攻击防范的效果。
· 如果防范阈值设置过低则在没有发生攻击时,系统就启动攻击防范功能,影响设备性能或者造成正常流量被丢弃。
· 如果防范阈值设置过高则即使发生了攻击,系统也无法感知,不能及时启动防范功能。
因此在配置攻击防范前,应该先了解正常网络中的流量,然后根据正常网络中的流量来设置各攻击类型对应的阈值。在不了解网络正常流量大小时,可以启用流量阈值学习功能并根据学习结果进行阈值配置。流量阈值学习功能的原理是:系统对正常网络环境下的各种流量按时间进行统计,得出此段时间内各种流量的最高值,从而以此为依据计算出各种攻击类型对应的防范门限值。
阈值学习有单次学习和周期学习两种学习模式:
· 单次学习:只进行一次阈值学习。
· 周期学习:按周期学习间隔进行多次阈值学习。其中,周期学习间隔是指从上次学习的结束时间到下次学习开始时间的间隔时间。
开启阈值学习功能后,会对所有类型的泛洪攻击进行阈值学习。在周期学习模式下,最新一次的学习结果会覆盖上一次学习结果。对于学习到的阈值,系统还支持自动应用功能。您可以启用自动应用功能,也可以选择只学习不启用自动应用功能。
当设备上安装了多块业务板时,每种泛洪攻击防范策略中配置的全局触发阈值为每块业务板上的全局触发阈值,因而整机的该类泛洪攻击的全局触发阈值即为每块业务板上的全局触发阈值与业务板数目的乘积。
为保护指定IP地址,攻击防范策略中支持基于IP地址的攻击防范配置。对于所有非受保护IP地址,可以统一开启攻击防范检测,并采用全局的参数设置来进行保护。
(1) 进入系统视图。
system-view
(2) 进入攻击防范策略视图。
attack-defense policy policy-name
(3) 对所有非受保护IP地址开启SYN flood攻击防范检测。
syn-flood detect non-specific
缺省情况下,未对任何非受保护IP地址开启SYN flood攻击防范检测。
(4) 配置SYN flood攻击防范的全局触发阈值。
syn-flood threshold threshold-value
缺省情况下,SYN flood攻击防范的全局触发阈值为1000。
(5) 配置SYN flood攻击防范的全局处理行为。
syn-flood action { client-verify | drop | logging } *
缺省情况下,不对检测到的SYN flood攻击采取任何措施。
(6) 开启对IP地址的SYN flood攻击防范检测,并配置触发阈值和处理行为。
syn-flood detect { ip ipv4-address | ipv6 ipv6-address } [ vpn-instance vpn-instance-name ] [ threshold threshold-value ] [ action { { client-verify | drop | logging } * | none } ]
缺省情况下,未对任何指定IP地址配置SYN flood攻击防范检测。
(1) 进入系统视图。
system-view
(2) 进入攻击防范策略视图。
attack-defense policy policy-name
(3) 对所有非受保护IP地址开启ACK flood攻击防范检测。
ack-flood detect non-specific
缺省情况下,未对任何非受保护IP地址开启ACK flood攻击防范检测。
(4) 配置ACK flood攻击防范全局触发阈值。
ack-flood threshold threshold-value
缺省情况下,ACK flood攻击防范的全局触发阈值为1000。
(5) 配置ACK flood攻击防范的全局处理行为。
ack-flood action { client-verify | drop | logging } *
缺省情况下,不对检测到的ACK flood攻击采取任何措施。
(6) 开启对IP地址的ACK flood攻击防范检测,并配置触发阈值和处理行为。
ack-flood detect { ip ipv4-address | ipv6 ipv6-address } [ vpn-instance vpn-instance-name ] [ threshold threshold-value ] [ action { { client-verify | drop | logging } * | none } ]
缺省情况下,未对任何指定IP地址配置ACK flood攻击防范检测。
(1) 进入系统视图。
system-view
(2) 进入攻击防范策略视图。
attack-defense policy policy-name
(3) 对所有非受保护IP地址开启SYN-ACK flood攻击防范检测。
syn-ack-flood detect non-specific
缺省情况下,未对任何非受保护IP地址开启SYN-ACK flood攻击防范检测。
(4) 配置SYN-ACK flood攻击防范的全局触发阈值。
syn-ack-flood threshold threshold-value
缺省情况下,SYN-ACK flood攻击防范的全局触发阈值为1000。
(5) 配置SYN-ACK flood攻击防范的全局处理行为。
syn-ack-flood action { client-verify | drop | logging }*
缺省情况下,不对检测到的SYN-ACK flood攻击采取任何措施。
(6) 开启对IP地址的SYN-ACK flood攻击防范检测,并配置触发阈值和处理行为。
syn-ack-flood detect { ip ipv4-address | ipv6 ipv6-address } [ vpn-instance vpn-instance-name ] [ threshold threshold-value ] [ action { { client-verify | drop | logging } * | none } ]
缺省情况下,未对任何指定IP地址配置SYN-ACK flood攻击防范检测。
(1) 进入系统视图。
system-view
(2) 进入攻击防范策略视图。
attack-defense policy policy-name
(3) 对所有非受保护IP地址开启FIN flood攻击防范检测。
fin-flood detect non-specific
缺省情况下,未对任何非受保护IP地址开启FIN flood攻击防范检测。
(4) 配置FIN flood攻击防范的全局触发阈值。
fin-flood threshold threshold-value
缺省情况下,FIN flood攻击防范的全局触发阈值为1000。
(5) 配置FIN flood攻击防范的全局处理行为。
fin-flood action { client-verify | drop | logging } *
缺省情况下,不对检测到的FIN flood攻击采取任何措施。
(6) 开启对IP地址的FIN flood攻击防范检测,并配置触发阈值和处理行为。
fin-flood detect { ip ipv4-address | ipv6 ipv6-address } [ vpn-instance vpn-instance-name ] [ threshold threshold-value ] [ action { { client-verify | drop | logging } * | none } ]
缺省情况下,未对任何指定IP地址配置FIN flood攻击防范检测。
(1) 进入系统视图。
system-view
(2) 进入攻击防范策略视图。
attack-defense policy policy-name
(3) 对所有非受保护IP地址开启RST flood攻击防范检测。
rst-flood detect non-specific
缺省情况下,未对任何非受保护IP地址开启RST flood攻击防范检测。
(4) 配置RST flood攻击防范的全局触发阈值。
rst-flood threshold threshold-value
缺省情况下,RST flood攻击防范的全局触发阈值为1000。
(5) 配置全局的RST flood攻击防范的全局处理行为。
rst-flood action { client-verify | drop | logging } *
缺省情况下,不对检测到的RST flood攻击采取任何措施。
(6) 开启对IP地址的RST flood攻击防范检测,并配置触发阈值和处理行为。
rst-flood detect { ip ipv4-address | ipv6 ipv6-address } [ vpn-instance vpn-instance-name ] [ threshold threshold-value ] [ action { { client-verify | drop | logging } * | none } ]
缺省情况下,未对任何指定IP地址配置RST flood攻击防范检测。
(1) 进入系统视图。
system-view
(2) 进入攻击防范策略视图。
attack-defense policy policy-name
(3) 对所有非受保护IPv4地址开启ICMP flood攻击防范检测。
icmp-flood detect non-specific
缺省情况下,未对任何非受保护IPv4地址开启ICMP flood攻击防范检测。
(4) 配置ICMP flood攻击防范的全局触发阈值。
icmp-flood threshold threshold-value
缺省情况下,ICMP flood攻击防范的全局触发阈值为1000。
(5) 配置ICMP flood攻击防范的全局处理动作。
icmp-flood action { drop | logging } *
缺省情况下,不对检测到的ICMP flood攻击采取任何措施。
(6) 开启对IPv4地址的ICMP flood攻击防范检测,并配置触发阈值和处理行为。
icmp-flood detect ip ip-address [ vpn-instance vpn-instance-name ] [ threshold threshold-value ] [ action { { drop | logging } * | none } ]
缺省情况下,未对任何指定IPv4地址配置ICMP flood 攻击防范触发阈值。
(1) 进入系统视图。
system-view
(2) 进入攻击防范策略视图。
attack-defense policy policy-name
(3) 对所有非受保护IPv6地址开启ICMPv6 flood攻击防范检测。
icmpv6-flood detect non-specific
缺省情况下,未对任何非受保护IPv6地址开启ICMPv6 flood攻击防范检测。
(4) 配置ICMPv6 flood攻击防范的全局触发阈值。
icmpv6-flood threshold threshold-value
缺省情况下,ICMPv6 flood攻击防范的全局触发阈值为1000。
(5) 配置ICMPv6 flood攻击防范的全局处理行为。
icmpv6-flood action { drop | logging } *
缺省情况下,不对检测到的ICMPv6 flood攻击采取任何防范措施。
(6) 开启对IPv6地址的ICMPv6 flood攻击防范检测,并配置触发阈值和处理行为。
icmpv6-flood detect ipv6 ipv6-address [ vpn-instance vpn-instance-name ] [ threshold threshold-value ] [ action { { drop | logging } * | none } ]
缺省情况下,未对任何指定IPv6地址配置ICMPv6 flood攻击防范检测。
(1) 进入系统视图。
system-view
(2) 进入攻击防范策略视图。
attack-defense policy policy-name
(3) 对所有非受保护IP地址开启UDP flood攻击防范检测。
udp-flood detect non-specific
缺省情况下,未对任何非受保护IP地址开启UDP flood攻击防范检测。
(4) 配置UDP flood攻击防范的全局触发阈值。
udp-flood threshold threshold-value
缺省情况下,UDP flood攻击防范的全局触发阈值为1000。
(5) 配置UDP flood攻击防范检测的全局处理行为。
udp-flood action { drop | logging } *
缺省情况下,不对检测到的UDP flood攻击进行任何处理。
(6) 开启对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攻击防范检测。
(1) 进入系统视图。
system-view
(2) 进入攻击防范策略视图。
attack-defense policy policy-name
(3) 对所有非受保护IP地址开启DNS flood攻击防范检测。
dns-flood detect non-specific
缺省情况下,未对任何非受保护IP地址开启DNS flood攻击防范检测。
(4) 配置DNS flood攻击防范的全局触发阈值。
dns-flood threshold threshold-value
缺省情况下,DNS flood攻击防范的全局触发阈值为1000。
(5) (可选)配置DNS flood攻击防范的全局检测端口号。
dns-flood port port-list
缺省情况下,DNS flood攻击防范的全局检测端口号为53。
(6) 配置对DNS flood攻击防范的全局处理行为。
dns-flood action { client-verify | drop | logging } *
缺省情况下,不对检测到的DNS flood攻击采取任何措施。
(7) 开启对IP地址的DNS flood攻击防范检测,并配置触发阈值和处理行为。
dns-flood detect { ip ipv4-address | ipv6 ipv6-address } [ vpn-instance vpn-instance-name ] [ port port-list ] [ threshold threshold-value ] [ action { { client-verify | drop | logging } * | none } ]
缺省情况下,未对任何指定IP地址配置DNS flood攻击防范检测。
(1) 进入系统视图。
system-view
(2) 进入攻击防范策略视图。
attack-defense policy policy-name
(3) 对所有非受保护IP地址开启HTTP flood攻击防范检测。
http-flood detect non-specific
缺省情况下,未对任何非受保护IP地址开启HTTP flood攻击防范检测。
(4) 配置HTTP flood攻击防范的全局触发阈值。
http-flood threshold threshold-value
缺省情况下,HTTP flood攻击防范的全局触发阈值为1000。
(5) (可选)配置HTTP flood攻击防范的全局检测端口号。
http-flood port port-list
缺省情况下,HTTP flood攻击防范的全局检测端口号为80。
(6) 配置对HTTP flood攻击防范的全局处理行为。
http-flood action { client-verify | drop | logging } *
缺省情况下,不对检测到的HTTP flood攻击采取任何措施。
(7) 开启对IP地址的HTTP flood攻击防范检测,并配置触发阈值和处理行为。
http-flood detect { ip ipv4-address | ipv6 ipv6-address } [ vpn-instance vpn-instance-name ] [ port port-list ] [ threshold threshold-value ] [ action { { client-verify | drop | logging } * | none } ]
缺省情况下,未对任何指定IP地址配置HTTP flood攻击防范检测。
(1) 进入系统视图。
system-view
(2) 进入攻击防范策略视图。
attack-defense policy policy-name
(3) 对所有非受保护IP地址开启SIP flood攻击防范检测。
sip-flood detect non-specific
缺省情况下,未对任何非受保护IP地址开启SIP flood攻击防范检测。
(4) 配置SIP flood攻击防范的全局触发阈值。
sip-flood threshold threshold-value
缺省情况下,SIP flood攻击防范的全局触发阈值为1000。
(5) (可选)配置SIP flood攻击防范的全局检测端口号。
sip-flood port port-list
缺省情况下,SIP flood攻击防范的全局检测端口号为5060。
(6) 配置对SIP flood攻击防范的全局处理行为。
sip-flood action { client-verify | drop | logging } *
缺省情况下,不对检测到的SIP flood攻击采取任何措施。
(7) 开启对IP地址的SIP flood攻击防范检测,并配置触发阈值和处理行为。
sip-flood detect { ip ipv4-address | ipv6 ipv6-address } [ vpn-instance vpn-instance-name ] [ port port-list ] [ threshold threshold-value ] [ action { { client-verify | drop | logging } * | none } ]
缺省情况下,未对任何指定IP地址配置SIP flood攻击防范检测。
(1) 进入系统视图。
system-view
(2) 进入攻击防范策略视图。
attack-defense policy policy-name
(3) 开启泛洪攻击阈值学习功能。
threshold-learn enable
缺省情况下,未开启阈值学习功能。
(4) (可选)配置阈值学习模式。
¡ 单次学习模式
threshold-learn mode once
¡ 周期学习模式
threshold-learn mode periodic
缺省情况下,学习模式为单次学习模式。
(5) (可选)配置学习时长。
threshold-learn duration duration
缺省情况下,阈值学习时长为1440分钟。
(6) (可选)配置学习间隔。
threshold-learn interval interval
缺省情况下,阈值学习间隔为1440分钟。
单次学习模式请跳过本步骤。
(7) (可选)配置学习容忍度。
threshold-learn tolerance-value tolerance-value
缺省情况下,阈值学习容忍度为50%。
未开启自动应用功能时请跳过本步骤。
(8) (可选)开启阈值学习结果自动应用功能。
threshold-learn auto-apply enable
缺省情况下,阈值学习结果自动应用功能处于关闭状态。
(9) 应用最近一次的阈值学习结果。
threshold-learn apply
在阈值学习结果自动应用功能开启时,此命令不生效。
攻击防范例外列表用于过滤不需要进行攻击防范检测的主机报文,与指定的ACL permit规则匹配的报文将不会受到任何类型的攻击防范检测。该配置用于过滤某些被信任的安全主机发送的报文,可以有效的减小误报率,并提高服务器处理效率。例如:攻击防范功能可能将源IP地址相同,目的地址不同的组播报文(如OSPF、PIM等协议报文)检测为扫描攻击,此时可以通过配置例外列表放行组播报文来消除误报。
例外列表引用的ACL的permit规则中仅源地址、目的地址、源端口、目的端口、协议号、L3VPN和非首片分片标记参数用于匹配报文。
(1) 进入系统视图。
system-view
(2) 进入攻击防范策略视图。
attack-defense policy policy-name
(3) 配置攻击防范例外列表。
exempt acl [ ipv6 ] { acl-number | name acl-name }
缺省情况下,未配置攻击防范例外列表。
(1) 进入系统视图。
system-view
(2) 进入安全域视图。
security-zone name zone-name
(3) 配置在安全域上应用攻击防范策略。
attack-defense apply policy policy-name
缺省情况下,安全域上未应用任何攻击防范策略。
开启本功能后,设备将对各接口收到的所有Impossible、TCP ALL flags、TCP FIN only flags、TCP Invalid flags、TCP NULL flags、TCP SYN&FIN flags、Land、Winnuke、UDP Fraggle、UDP Bomb和UDP Snork单包攻击报文进行识别并直接丢弃。
对于上述攻击类型,本功能的执行效率比“1.7.2 配置单包攻击防范策略”所配置的单包攻击检测与防范功能更高。因此,开启本功能后,无需在单包攻击防范策略中配置针对上述单包攻击的检测与防范功能。
(1) 进入系统视图。
system-view
(2) 开启畸形报文检测与防范功能。
attack-defense malformed-packet defend enable
缺省情况下,畸形报文检测与防范功能处于开启状态。
对日志进行聚合输出是指,在一定时间内,对在同一个安全域上检测到的相同攻击类型、相同攻击防范动作、相同的源/目的地址以及属于相同VPN的单包攻击的所有日志聚合成一条日志输出。
通常不建议开启单包攻击防范的日志非聚合输出功能,因为在单包攻击较为频繁的情况下,它会导致大量日志信息输出,占用控制台的显示资源。
(1) 进入系统视图。
system-view
(2) 开启对单包攻击防范日志的非聚合输出功能。
attack-defense signature log non-aggregate
缺省情况下,单包攻击防范的日志信息经系统聚合后再输出。
开启了攻击排名的Top统计功能后,设备将基于攻击者、被攻击者和攻击类型对丢包数量进行统计。用户可以通过display attack-defense top-attack-statistics命令查看攻击排名的Top统计信息,以便采取有效的攻击防范措施。
(1) 进入系统视图。
system-view
(2) 开启攻击排名的Top统计功能。
attack-defense top-attack-statistics enable
缺省情况下,攻击排名的Top统计功能处于关闭状态。
通过在设备连接外部网络的安全域上开启TCP客户端验证功能,可以保护内部网络中的应用服务器免受SYN flood、SYN-ACK flood、RST flood、FIN flood或ACK 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) 进入系统视图。
system-view
(2) (可选)配置TCP客户端验证的受保护IP地址。
client-verify tcp protected { ip destination-ip-address | ipv6 destination-ipv6-address } [ vpn-instance vpn-instance-name ] [ port port-number ]
(3) 进入安全域视图。
security-zone name zone-name
(4) 开启TCP客户端验证功能。
¡ 配置单向代理模式。
client-verify tcp enable mode safe-reset
¡ 配置双向代理模式。
client-verify tcp enable [ mode syn-cookie ]
缺省情况下,TCP客户端验证功能处于关闭状态。
通过在设备连接外部网络的安全域上开启DNS客户端验证功能,可以保护内部网络中的应用服务器免受DNS flood攻击。DNS客户端验证功能有两种工作方式:
· 手工添加受保护IP地址:当设备检测到来自某客户端的首个目的地址为配置的受保护IP地址的DNS Query报文时,对该客户端发送的DNS报文进行合法性检查。
· 自动添加受保护IP地址:当设备检测到某服务器受到了DNS flood攻击时,会根据配置启动相应的防范措施。若防范措施配置为对攻击报文进行DNS客户端验证,则设备会将该服务器IP地址添加到受保护IP表项中,并对后续的DNS Query请求报文进行合法性检查。
通过合法性检查的DNS客户端的IP地址将被加入信任IP地址列表中,之后设备将放行来自该IP地址的DNS报文。
(1) 进入系统视图。
system-view
(2) 配置DNS客户端验证的受保护IP地址。
client-verify dns protected { ip destination-ip-address | ipv6 destination-ipv6-address } [ vpn-instance vpn-instance-name ] [ port port-number ]
(3) 进入安全域视图。
security-zone name zone-name
(4) 开启DNS 客户端验证功能。
client-verify dns enable
缺省情况下,DNS客户端验证功能处于关闭状态。
通过在设备连接外部网络的安全域上开启HTTP客户端验证功能,可以保护内部网络中的应用服务器免受HTTP flood攻击。HTTP客户端验证功能有两种工作方式:
· 手工添加受保护IP地址:当设备检测到来自某客户端的首个目的地址为配置的受保护IP地址的HTTP GET/POST报文时,对该客户端发送的HTTP报文进行合法性检查。
· 自动添加受保护IP地址:当设备监测到某服务器受到了HTTP flood攻击时,会根据配置启动相应的防范措施。若防范措施配置为对攻击报文进行HTTP客户端验证,则设备会将该服务器IP地址添加到受保护IP表项中,并对后续的HTTP GET/POST请求报文进行合法性检查。
通过合法性检查的HTTP客户端的IP地址将被加入信任IP地址列表中,之后设备将放行来自该IP地址的HTTP报文。
(1) 进入系统视图。
system-view
(2) 配置HTTP客户端验证的受保护IP地址。
client-verify http protected { ip destination-ip-address | ipv6 destination-ipv6-address } [ vpn-instance vpn-instance-name ] [ port port-number ]
(3) 进入安全域视图。
security-zone name zone-name
(4) 开启HTTP客户端验证功能。
client-verify http enable
缺省情况下,HTTP客户端验证功能处于关闭状态。
通过在设备连接外部网络的安全域上开启SIP客户端验证功能,可以保护内部网络中的SIP应用服务器免受SIP flood攻击。SIP客户端验证功能有两种工作方式:
· 手工添加受保护IP地址:当设备检测到来自某客户端的首个目的地址为配置的受保护IP地址的INVITE报文时,对该客户端发送的SIP报文进行合法性检查。
· 自动添加受保护IP地址:当设备检测到某服务器受到了SIP flood攻击时,会根据配置启动相应的防范措施。若防范措施配置为对攻击报文进行SIP客户端验证,则设备会将该服务器IP地址添加到受保护IP表项中,并对后续的INVITE请求报文进行合法性检查。
通过合法性检查的SIP客户端的IP地址将被加入信任IP地址列表中,之后设备将直接转发来自该IP地址的SIP协议的INVITE报文。
如果客户端发送的报文首部信息不完整,即便是合法用户,也可能由于未解析到对应的字段导致未通过SIP客户端验证的严格检查而无法访问服务器。
(1) 进入系统视图。
system-view
(2) (可选)配置SIP客户端验证的受保护IP地址。
client-verify sip protected { ip destination-ip-address | ipv6 destination-ipv6-address } [ vpn-instance vpn-instance-name ] [ port port-number ]
(3) 进入安全域视图
security-zone name zone-name
(4) 开启SIP客户端验证功能
client-verify sip enable
缺省情况下,SIP客户端验证功能处于关闭状态。
通过配置IP黑名单功能可以对来自指定IP地址的报文进行过滤。
IP黑名单的配置包括开启黑名单过滤功能和添加IP黑名单表项。若全局的黑名单过滤功能处于开启状态,则所有安全域上的IP黑名单过滤功能均处于开启状态。若全局的黑名单过滤功能处于关闭状态,则需要开启指定安全域上的黑名单过滤功能。添加IP黑名单表项的同时可以选择配置IP黑名单表项的老化时间,若不配置,那么该IP黑名单表项永不老化,除非用户手动将其删除。
IP黑名单表项除了可以手工添加之外,还可以通过扫描攻击防范自动添加。具体来讲就是,在黑名单功能使能的前提下,若配置了扫描攻击防范策略及相应的IP黑名单添加功能,则可以将检测到的扫描攻击方IP地址添加到IP黑名单中。扫描攻击防范添加的IP黑名单必定会老化,老化时间可配。关于扫描攻击防范的相关配置请参见“1.7.3 配置扫描攻击防范策略”。
(1) 进入系统视图。
system-view
(2) (可选)添加IP黑名单表项。
¡ 添加IPv4黑名单表项。
blacklist ip source-ip-address [ vpn-instance vpn-instance-name ] [ ds-lite-peer ds-lite-peer-address ] [ timeout minutes ]
¡ 添加IPv6黑名单表项。
blacklist ipv6 source-ipv6-address [ vpn-instance vpn-instance-name ] [ timeout minutes ]
(3) (可选)使能黑名单日志功能。
blacklist logging enable
缺省情况下,黑名单日志功能处于关闭状态。
(4) 开启黑名单过滤功能。请选择其中一项进行配置。
¡ 开启全局黑名单过滤功能。
blacklist global enable
缺省情况下,全局黑名单功能处于关闭状态。
¡ 请依次执行以下命令开启安全域上的黑名单过滤功能。
security-zone name zone-name
blacklist enable
缺省情况下,安全域上的黑名单功能处于关闭状态。
通过配置用户黑名单功能可以对指定用户的报文进行过滤。
用户黑名单的配置包括开启全局黑名单过滤功能和添加用户黑名单表项。添加用户黑名单表项的同时可以选择配置用户黑名单表项的老化时间,若不配置,那么该用户黑名单表项永不老化,除非用户手动将其删除。
用户黑名单功能需要配合用户身份识别功能使用,有关用户身份识别功能的详细介绍,请参见“安全配置指导”中的“用户身份识别与管理”。
(1) 进入系统视图。
system-view
(2) 开启全局黑名单过滤功能。
blacklist global enable
缺省情况下,全局黑名单功能处于关闭状态。
(3) 添加用户黑名单表项。
blacklist user user-name [ domain domain-name ] [ timeout minutes ]
(4) (可选)开启黑名单日志功能。
blacklist logging enable
缺省情况下,黑名单日志功能处于关闭状态。
通过配置地址对象组黑名单功能可以对指定地址网段的报文进行过滤。
地址对象组黑名单目前仅支持由管理员手工进行配置、删除。
地址对象组黑名单功能需要配合地址对象组功能使用,有关地址对象组功能的详细介绍,请参见“安全配置指导”中的“对象组”。
(1) 进入系统视图。
system-view
(2) 通过引用地址对象组配置黑名单。
blacklist object-group object-group-name
缺省情况下,未引用地址对象组。
(3) 开启黑名单过滤功能。请选择其中一项进行配置。
¡ 开启全局黑名单过滤功能。
blacklist global enable
缺省情况下,全局黑名单功能处于关闭状态。
¡ 请依次执行以下命令开启安全域上的黑名单过滤功能。
security-zone name zone-name
blacklist enable
缺省情况下,安全域上的黑名单功能处于关闭状态。
通过配置地址对象组白名单功能可以放行指定地址网段的报文。
地址对象组白名单目前仅支持由管理员手工进行配置、删除。
地址对象组白名单功能需要配合地址对象组功能使用,有关地址组功能的详细介绍,请参见“安全配置指导”中的“对象组”。
(1) 进入系统视图。
system-view
(2) 通过引用地址对象组配置白名单。
whitelist object-group object-group-name
缺省情况下,未引用地址对象组。
(3) 开启白名单过滤功能。请选择其中一项进行配置。
¡ 开启全局白名单过滤功能。
whitelist global enable
缺省情况下,全局白名单功能处于关闭状态。
¡ 请依次执行以下命令开启安全域上的白名单过滤功能。
security-zone name zone-name
whitelist enable
缺省情况下,安全域上的白名单功能处于关闭状态。
Login用户攻击防范功能处于开启状态时,如果用户登录设备连续失败的次数达到指定次数,则此用户IP地址将被加入黑名单,在全局黑名单功能开启的情况下,来自该IP地址的用户报文将被阻断指定的时长。
通过Login攻击防范功能与全局黑名单功能相配合,可以有效防范Login用户DoS攻击。
(1) 进入系统视图。
system-view
(2) 开启Login用户攻击防范功能。
attack-defense login enable
缺省情况下,Login用户攻击防范功能处于关闭状态。
(3) 配置Login用户登录失败的最大次数。
attack-defense login max-attempt max-attempt
缺省情况下,Login用户登录失败的最大次数为3次。
(4) 配置Login用户登录失败后阻断时长。
attack-defense login block-timeout minutes
缺省情况下,Login用户登录失败后阻断时长为60分钟。
(5) 开启全局黑名单过滤功能。
blacklist global enable
缺省情况下,全局黑名单功能处于关闭状态。
Login用户登录失败后,若设备上配置了重新进行认证的等待时长,则系统将会延迟一定的时长之后再允许用户进行认证,可以有效地避免设备受到Login用户字典序攻击。
Login用户延迟认证功能与Login用户攻击防范功能无关,只要配置了延迟认证等待时间,即可生效。
(1) 进入系统视图。
system-view
(2) 配置Login用户登录失败后重新进行认证的等待时长。
attack-defense login reauthentication-delay seconds
缺省情况下,Login用户登录失败后重新进行认证不需要等待。
开启流量强制软件转发功能后,所有经攻击检测与防范模块处理后的报文将进行软件转发。
关闭流量强制软件转发功能后,存在如下两种情况:
· 如果设备仅开启支持硬件转发的攻击检测与防范功能,数据流首包经攻击检测与防范模块处理后,其后续报文将提交硬件芯片进行转发。
· 如果设备开启不支持硬件转发的攻击检测与防范功能,数据流首包经攻击检测与防范模块处理后,其后续报文仍将进行软件转发。
支持硬件转发的攻击检测与防范功能有:SYN flood攻击防范、ACK flood攻击防范、SYN-ACK flood攻击防范、FIN flood攻击防范、RST flood攻击防范、ICMP flood攻击防范、ICMPv6 flood攻击防范、UDP flood攻击防范、阈值学习和单向代理模式的TCP客户端验证。
通常情况下建议关闭本功能,提升设备开启攻击检测与防范功能时的处理性能。如果用户明确要求所有流量提交CPU进行软件转发,可开启本功能。
攻击检测与防范支持硬件转发功能只有开启硬件快速转发功能后才生效。关于硬件快速转发功能的详细介绍,请参考“三层技术-IP业务配置指导”中的“快速转发”。
(1) 进入系统视图。
system-view
(2) 开启流量强制软件转发功能。
attack-defense mandatory-cpu-forwarding enable
缺省情况下,流量强制软件转发功能处于关闭状态。
在完成上述配置后,在任意视图下执行display命令可以显示配置后攻击检测及防范的运行情况,通过查看显示信息验证配置的效果。
在用户视图下,执行reset命令可以清除攻击检测及防范的统计信息。
表1-2 攻击检测及防范配置的显示和维护
操作 |
命令 |
显示IPv4 flood攻击防范统计信息 |
(独立运行模式) display attack-defense { ack-flood | dns-flood | fin-flood | flood | http-flood | icmp-flood | rst-flood | sip-flood | syn-ack-flood | syn-flood | udp-flood } statistics ip [ ip-address [ vpn vpn-instance-name ] ] [ count ] [ security-zone zone-name ] [ slot slot-number [ cpu cpu-number ] ] [ count ] (IRF模式) display attack-defense { ack-flood | dns-flood | fin-flood | flood | http-flood | icmp-flood | rst-flood | sip-flood | syn-ack-flood | syn-flood | udp-flood } statistics ip [ ip-address [ vpn vpn-instance-name ] ] [ security-zone zone-name ] [ chassis chassis-number slot slot-number [ cpu cpu-number ] ] [ count ] |
显示IPv6 flood攻击防范统计信息 |
(独立运行模式) display attack-defense { ack-flood | dns-flood | fin-flood | flood | http-flood | icmpv6-flood | rst-flood | sip-flood | syn-ack-flood | syn-flood | udp-flood } statistics ipv6 [ ipv6-address [ vpn vpn-instance-name ] ] [ security-zone zone-name ] [ slot slot-number [ cpu cpu-number ] ] [ count ] (IRF模式) display attack-defense { ack-flood | dns-flood | fin-flood | flood | http-flood | icmpv6-flood | rst-flood | sip-flood | syn-ack-flood | syn-flood | udp-flood } statistics ipv6 [ ipv6-address [ vpn vpn-instance-name ] ] [ security-zone zone-name ] [ chassis chassis-number slot slot-number [ cpu cpu-number ] ] [ count ] |
显示畸形报文丢弃统计信息 |
(独立运行模式) display attack-defense malformed-packet statistics [ slot slot-number [ cpu cpu-number ] ] (IRF模式) display attack-defense malformed-packet statistics [ chassis chassis-number slot slot-number [ cpu cpu-number ] ] |
显示攻击防范策略的配置信息 |
display attack-defense policy [ policy-name ] |
显示flood攻击防范的IPv4类型的受保护IP表项 |
(独立运行模式) display attack-defense policy policy-name { ack-flood | dns-flood | fin-flood | flood | http-flood | icmp-flood | rst-flood | sip-flood | syn-ack-flood | syn-flood | udp-flood } ip [ ip-address [ vpn vpn-instance-name ] ] [ slot slot-number [ cpu cpu-number ] ] [ count ] (IRF模式) display attack-defense policy policy-name { ack-flood | dns-flood | fin-flood | flood | http-flood | icmp-flood | rst-flood | sip-flood | syn-ack-flood | syn-flood | udp-flood } ip [ ip-address [ vpn vpn-instance ] ] [ chassis chassis-number slot slot-number [ cpu cpu-number ] ] [ count ] |
显示flood攻击防范的IPv6类型的受保护IP表项 |
(独立运行模式) display attack-defense policy policy-name { ack-flood | dns-flood | fin-flood | flood | http-flood | icmpv6-flood | rst-flood | sip-flood | syn-ack-flood | syn-flood | udp-flood } ipv6 [ ipv6-address [ vpn vpn-instance-name ] ] [ slot slot-number [ cpu cpu-number ] ] [ count ] (IRF模式) display attack-defense policy policy-name { ack-flood | dns-flood | fin-flood | flood | http-flood | icmpv6-flood | rst-flood | sip-flood | syn-ack-flood | syn-flood | udp-flood } ipv6 [ ipv6-address [ vpn vpn-instance-name ] ] [ chassis chassis-number slot slot-number [ cpu cpu-number ] ] [ count ] |
显示扫描攻击者的IPv4地址表项 |
(独立运行模式) display attack-defense scan attacker ip [ security-zone zone-name [ slot slot-number [ cpu cpu-number ] ] ] [ count ] (IRF模式) display attack-defense scan attacker ip [ security-zone zone-name [ chassis chassis-number slot slot-number [ cpu cpu-number ] ] ] [ count ] |
显示扫描攻击者的IPv6地址表项 |
(独立运行模式) display attack-defense scan attacker ipv6 [ security-zone zone-name [ slot slot-number [ cpu cpu-number ] ] ] [ count ] (IRF模式) display attack-defense scan attacker ipv6 [ security-zone zone-name [ chassis chassis-number slot slot-number [ cpu cpu-number ] ] ] [ count ] |
显示安全域上的攻击防范统计信息 |
(独立运行模式) display attack-defense statistics security-zone zone-name [ slot slot-number [ cpu cpu-number ] ] (IRF模式) display attack-defense statistics security-zone zone-name [ chassis chassis-number slot slot-number [ cpu cpu-number ] ] |
显示Top10的攻击排名统计信息 |
display attack-defense top-attack-statistics { last-1-hour | last-24-hours | last-30-days } [ by-attacker | by-type | by-victim ] |
显示IPv4黑名单表项 |
(独立运行模式) display blacklist ip [ source-ip-address [ vpn-instance vpn-instance-name ] [ ds-lite-peer ds-lite-peer-address ] ] [ slot slot-number [ cpu cpu-number ] ] [ count ] (IRF模式) display blacklist ip [ source-ip-address [ vpn-instance vpn-instance-name ] [ ds-lite-peer ds-lite-peer-address ] ] [ chassis chassis-number slot slot-number [ cpu cpu-number ] ] [ count ] |
显示IPv6黑名单表项 |
(独立运行模式) display blacklist ipv6 [ source-ipv6-address [ vpn-instance vpn-instance-name ] ] [ slot slot-number [ cpu cpu-number ] ] [ count ] (IRF模式) display blacklist ipv6 [ source-ipv6-address [ vpn-instance vpn-instance-name ] ] [ chassis chassis-number slot slot-number [ cpu cpu-number ] ] [ count ] |
显示用户黑名单表项信息 |
display blacklist user [ user-name ] [ domain domain-name ] [ count ] |
显示客户端验证的IPv4类型的受保护IP表项 |
(独立运行模式) display client-verify { dns | http | sip | tcp } protected ip [ ip-address [ vpn vpn-instance-name ] ] [ port port-number ] [ slot slot-number [ cpu cpu-number ] ] [ count ] (IRF模式) display client-verify { dns | http | sip | tcp } protected ip [ ipv6-address [ vpn vpn-instance-name ] ] [ port port-number ] [ chassis chassis-number slot slot-number [ cpu cpu-number ] ] [ count ] |
显示客户端验证的IPv6类型的受保护IP表项 |
(独立运行模式) display client-verify { dns | http | sip | tcp } protected ipv6 [ ipv6-address [ vpn vpn-instance-name ] ] [ port port-number ] [ slot slot-number [ cpu cpu-number ] ] [ count ] (IRF模式) display client-verify { dns | http | sip | tcp } protected ipv6 [ ipv6-address [ vpn vpn-instance-name ] ] [ port port-number ] [ chassis chassis-number slot slot-number [ cpu cpu-number ] ] [ count ] |
显示客户端验证的IPv4类型的信任IP表项 |
(独立运行模式) display client-verify { dns | http | sip | tcp } trusted ip [ ip-address [ vpn vpn-instance-name ] ] [ slot slot-number [ cpu cpu-number ] ] [ count ] (IRF模式) display client-verify { dns | http | sip | tcp } trusted ip [ ip-address [ vpn vpn-instance-name ] ] [ chassis chassis-number slot slot-number [ cpu cpu-number ] ] [ count ] |
显示客户端验证的IPv6类型的信任IP表项 |
(独立运行模式) display client-verify { dns | http | sip | tcp } trusted ipv6 [ ipv6-address [ vpn vpn-instance-name ] ] [ slot slot-number [ cpu cpu-number ] ] [ count ] (IRF模式) display client-verify { dns | http | sip | tcp } trusted ipv6 [ ipv6-address [ vpn vpn-instance-name ] ] [ chassis chassis-number slot slot-number [ cpu cpu-number ] ] [ count ] |
显示白名单引用的地址对象组的报文统计信息 |
(独立运行模式) display whitelist object-group [ object-group-name ] [ slot slot-number ] (IRF模式) display whitelist object-group [ object-group-name ] [ chassis chassis-number slot slot-number ] |
清除畸形报文统计信息 |
reset attack-defense malformed-packet statistics |
清除flood攻击防范受保护IP表项的统计信息 |
reset attack-defense policy policy-name flood protected { ip | ipv6 } statistics |
清除安全域上的攻击防范统计信息 |
reset attack-defense statistics security-zone zone-name |
清除Top10的攻击排名统计信息 |
reset attack-defense top-attack-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 |
清除客户端验证的受保护IP地址的统计信息 |
reset client-verify { dns | http | sip | tcp } protected { ip | ipv6 } statistics |
清除客户端验证的信任IP表项 |
reset client-verify { dns | http | sip | tcp } trusted { ip | ipv6 } |
清除白名单引用的地址对象组的报文统计信息 |
reset whitelist statistics |
Device上的接口GigabitEthernet1/0/1与内部网络连接,接口GigabitEthernet1/0/2与外部网络连接,接口GigabitEthernet1/0/3与一台内部服务器连接。现有如下安全需求:
· 为防范外部网络对内部网络主机的Smurf攻击和扫描攻击,需要在接口GigabitEthernet1/0/2所在的Untrust安全域上开启Smurf攻击防范和扫描攻击防范。具体要求为:低防范级别的扫描攻击防范;将扫描攻击者添加到黑名单中(老化时间为10分钟);检测到Smurf攻击或扫描攻击后,输出告警日志。
· 为防范外部网络对内部服务器的SYN flood攻击,需要在接口GigabitEthernet1/0/2所在的Untrust安全域上开启SYN flood攻击防范。具体要求为:当设备监测到向内部服务器每秒发送的SYN报文数持续达到或超过5000时,输出告警日志并丢弃攻击报文。
图1-9 安全域上的攻击检测与防范配置组网图
(1) 配置各接口的IP地址,略。
(2) 将接口加入安全域。
# 向安全域Trust中添加接口GigabitEthernet1/0/1。
<Device> system-view
[Device] security-zone name trust
[Device-security-zone-Trust] import interface gigabitethernet 1/0/1
[Device-security-zone-Trust] quit
# 向安全域Untrust中添加接口GigabitEthernet1/0/2。
[Device] security-zone name untrust
[Device-security-zone-Untrust] import interface gigabitethernet 1/0/2
[Device-security-zone-Untrust] quit
# 向安全域DMZ中添加接口GigabitEthernet1/0/3。
[Device] security-zone name dmz
[Device-security-zone-DMZ] import interface gigabitethernet 1/0/3
[Device-security-zone-DMZ] quit
(3) 配置安全策略
# 进入IPv4安全策略视图。
[Device] security-policy ip
# 配置名称为trust-untrust的安全策略,保证Trust和Untrust之间的业务报文可正常转发(请根据实际业务需求配置,本文略)。
[Device-security-policy-ip] rule 2 name trust-untrust
[Device-security-policy-ip-2-trust-untrust] source-zone trust
[Device-security-policy-ip-2-trust-untrust] destination-zone untrust
[Device-security-policy-ip-2-trust-untrust] action pass
[Device-security-policy-ip-2-trust-untrust] quit
# 配置名称为untrust-dmz的安全策略,保证Untrust和DMZ之间的业务报文可正常转发(请根据实际业务需求配置,本文略)。
[Device-security-policy-ip] rule 3 name untrust-dmz
[Device-security-policy-ip-3-untrust-dmz] source-zone untrust
[Device-security-policy-ip-3-untrust-dmz] destination-zone dmz
[Device-security-policy-ip-3-untrust-dmz] action pass
[Device-security-policy-ip-3-untrust-dmz] quit
[Device-security-policy-ip] quit
(4) 开启全局黑名单过滤功能。
[Device] blacklist global enable
(5) 配置攻击防范策略。
# 创建攻击防范策略a1。
[Device] attack-defense policy a1
# 开启Smurf单包攻击报文的特征检测,配置处理行为为输出告警日志。
[Device-attack-defense-policy-a1] signature detect smurf action logging
# 开启低防范级别的扫描攻击防范,配置处理行为输出告警日志以及阻断并将攻击者的源IP地址加入黑名单表项(老化时间为10分钟)。
[Device-attack-defense-policy-a1] scan detect level low action logging block-source timeout 10
# 为保护IP地址为10.1.1.2的内部服务器,配置针对IP地址10.1.1.2的SYN flood攻击防范参数,触发阈值为5000,处理行为输出告警日志并丢弃攻击报文。
[Device-attack-defense-policy-a1] syn-flood detect ip 10.1.1.2 threshold 5000 action logging drop
[Device-attack-defense-policy-a1] quit
# 在安全域Untrust上应用攻击防范策略a1。
[Device] security-zone name untrust
[Device-security-zone-Untrust] attack-defense apply policy a1
[Device-security-zone-Untrust] quit
· 完成以上配置后,可以通过display attack-defense policy命令查看配置的攻击防范策略a1的具体内容。
# 查看攻击防范策略a1的配置信息。
[Device] display attack-defense policy a1
Attack-defense Policy Information
--------------------------------------------------------------------------
Policy name : a1
Applied list : Untrust
--------------------------------------------------------------------------
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
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,D
TCP null flag Disabled medium L,D
TCP all flags Disabled medium L,D
TCP SYN-FIN flags Disabled medium L,D
TCP FIN only flag Disabled medium L,D
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,BS(10)
Flood attack defense configuration:
Flood type Global thres(pps) Global actions Service ports Non-specific
DNS flood 1000 - 53 Disabled
HTTP flood 1000 - 80 Disabled
SIP flood 1000 - 5060 Disabled
SYN flood 5000 L,D - Enabled
ACK flood 1000 - - Disabled
SYN-ACK flood 1000 - - Disabled
RST flood 1000 - - Disabled
FIN flood 1000 - - Disabled
UDP flood 1000 - - Disabled
ICMP flood 1000 - - Disabled
ICMPv6 flood 1000 - - Disabled
Flood attack defense for protected IP addresses:
Address VPN instance Flood type Thres(pps) Actions Ports
10.1.1.2 -- SYN-FLOOD 5000 L,D -
如果安全域Untrust上收到Smurf攻击报文,设备输出告警日志;如果安全域Untrust上收到扫描攻击报文,设备会输出告警日志,并将攻击者的IP地址加入黑名单;如果安全域Untrust上收到的SYN flood攻击报文超过触发阈值,则设备会输出告警日志,并将受到攻击的主机地址添加到TCP客户端验证的受保护IP列表中,同时丢弃攻击报文。
· 可以通过display attack-defense statistics security-zone命令查看各安全域上攻击防范的统计信息。
# 查看安全域Untrust上攻击防范的统计信息。
[Device] display attack-defense statistics security-zone untrust
Attack policy name: a1
Scan attack defense statistics:
AttackType AttackTimes Dropped
Port scan 2 0
IP sweep 3 0
Distribute port scan 1 0
Flood attack defense statistics:
AttackType AttackTimes Dropped
SYN flood 1 5000
Signature attack defense statistics:
AttackType AttackTimes Dropped
Smurf 1 0
· 若有扫描攻击发生,还可以通过display blacklist命令查看由扫描攻击防范自动添加的黑名单信息。
# 查看由扫描攻击防范自动添加的黑名单信息。
[Device] display blacklist ip
IP address VPN instance DS-Lite tunnel peer Type TTL(sec) Dropped
5.5.5.5 -- -- Dynamic 600 353452
网络管理员通过流量分析发现外部网络中存在一个攻击者Host D,需要将来自Host D的报文在Device上永远过滤掉。另外,网络管理员为了暂时控制内部网络Host C的访问行为,需要将Device上收到的Host C的报文阻止50分钟。
图1-10 IP黑名单配置组网图
# 配置接口IP地址、路由、安全域及安全策略保证网络可达,具体配置步骤略。
# 开启全局黑名单过滤功能。
<Device> system-view
[Device] blacklist global enable
# 将Host D的IP地址5.5.5.5添加到黑名单列表中,老化时间使用缺省情况(永不老化)。
[Device] blacklist ip 5.5.5.5
# 将Host C的IP地址192.168.1.4添加到黑名单列表中,老化时间为50分钟。
[Device] blacklist ip 192.168.1.4 timeout 50
# 完成以上配置后,可以通过display blacklist命令查看已添加的黑名单信息。
[Device] display blacklist ip
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
配置生效后,Device对来自Host D的报文一律进行丢弃处理,除非管理员认为Host D不再是攻击者,通过undo blacklist ip 5.5.5.5将其从黑名单中删除;如果Device接收到来自Host C的报文,则在50分钟之内,一律对其进行丢弃处理,50分钟之后,才进行正常转发。
网络管理员为了暂时控制内部网络用户User C的访问行为,需要将Device上收到的User C的报文阻止50分钟。User C的IP地址为1.2.3.4,MAC地址为0001-0001-0001。
图1-11 用户黑名单配置组网图
(1) 配置接口IP地址、路由、安全域及安全策略保证网络可达,具体配置步骤略。
(2) 配置用户身份识别
# 创建网络接入类本地用户userc。
<Device> system-view
[Device] local-user userc class network
[Device-luser-network-userc] quit
# 配置一个静态类型的身份识别用户:IP地址为1.2.3.4,MAC地址为0001-0001-0001、用户名为userc。
[Device] user-identity static-user userc bind ipv4 1.2.3.4 mac 0001-0001-0001
# 开启用户身份识别功能。
[Device] user-identity enable
(3) 配置用户黑名单功能
# 开启全局黑名单过滤功能。
[Device] blacklist global enable
# 将用户User C添加到黑名单列表中,老化时间为50分钟。
[Device] blacklist user userc timeout 50
# 完成以上配置后,可以通过display blacklist user命令查看已添加的用户黑名单信息。
[Device] display blacklist user
User name Domain name Type TTL(sec) Dropped
userc Manual 2987 0
如果接收到来自User C的报文,则在50分钟之内,一律对其进行丢弃处理,50分钟之后,才进行正常转发。
网络管理员通过流量分析发现外部网络中存在来自网段5.5.5.0/24的一组攻击者,需要将这组攻击者的报文在Device上永远过滤掉。
图1-12 地址对象组黑名单配置组网图
# 配置接口IP地址、路由、安全域及安全策略保证网络可达,具体配置步骤略。
# 开启全局黑名单过滤功能。
<Device> system-view
[Device] blacklist global enable
# 创建地址对象组obj1,并将5.5.5.0/24加入地址对象组。
[Device] object-group ip address obj1
[Device-obj-grp-ip-obj1] network subnet 5.5.5.0 24
[Device] quit
# 通过引用地址对象组obj1配置黑名单。
[Device] blacklist object-group obj1
完成以上配置后,Device对来自网段5.5.5.0/24的攻击者的报文一律进行丢弃处理,除非管理员认为网段5.5.5.0/24不再是攻击者,通过undo blacklist object-group将其从黑名单中删除。
网络管理员需要将外部网络中的一组网段地址为5.5.5.0/24的用户报文在Device上永远放行。
图1-13 地址组白名单配置组网图
# 配置接口IP地址、路由、安全域及安全策略保证网络可达,具体配置步骤略。
# 开启全局白名单过滤功能。
<Device> system-view
[Device] whitelist global enable
# 创建地址对象组obj1,并将5.5.5.0/24加入地址对象组。
[Device] object-group ip address obj1
[Device-obj-grp-ip-obj1] network subnet 5.5.5.0 24
[Device] quit
# 通过引用地址对象组obj1配置白名单。
[Device] whitelist object-group obj1
完成以上配置后,Device对来自网段地址为5.5.5.0/24的用户报文一律进行放行处理,除非管理员认为这组用户不再为信任网段,通过undo whitelist object-group将其从白名单中删除。
在Device上配置TCP客户端验证功能,保护内网服务器不会受到外网非法用户的SYN flood攻击,并要求在客户端与服务器之间进行双向代理。
图1-14 安全域上的TCP客户端验证配置组网图
(1) 配置各接口的IP地址,略。
(2) 将接口加入安全域。
# 向安全域Trust中添加接口GigabitEthernet1/0/2。
<Device> system-view
[Device] security-zone name trust
[Device-security-zone-Trust] import interface gigabitethernet 1/0/2
[Device-security-zone-Trust] quit
# 向安全域Untrust中添加接口GigabitEthernet1/0/1。
[Device] security-zone name untrust
[Device-security-zone-Untrust] import interface gigabitethernet 1/0/1
[Device-security-zone-Untrust] quit
(3) 配置安全策略
# 进入IPv4安全策略视图。
[Device] security-policy ip
# 配置名称为untrust-trust的安全策略,保证Untrust和Trust之间的业务报文可正常转发(请根据实际业务需求配置,本文略)。
[Device-security-policy-ip] rule 3 name untrust-trust
[Device-security-policy-ip-3-untrust-trust] source-zone untrust
[Device-security-policy-ip-3-untrust-trust] destination-zone trust
[Device-security-policy-ip-3-untrust-trust] action pass
[Device-security-policy-ip-3-untrust-trust] quit
[Device-security-policy-ip] quit
(4) 配置攻击防范策略。
# 创建攻击防范策略a1。
[Device] attack-defense policy a1
# 对所有非受保护IP地址开启SYN flood攻击防范检测。
[Device-attack-defense-policy-a1] syn-flood detect non-specific
# 配置SYN flood攻击防范的全局触发阈值为10000。
[Device-attack-defense-policy-a1] syn-flood threshold 10000
# 配置SYN flood攻击防范的全局处理行为为添加到TCP客户端验证的受保护IP列表中以及输出告警日志。
[Device-attack-defense-policy-a1] syn-flood action logging client-verify
[Device-attack-defense-policy-a1] quit
# 在安全域Untrust上应用攻击防范策略a1。
[Device] security-zone name untrust
[Device-security-zone-Untrust] attack-defense apply policy a1
# 在安全域Untrust上开启TCP客户端验证的双向代理功能。
[Device-security-zone-Untrust] client-verify tcp enable mode syn-cookie
[Device-security-zone-Untrust] quit
# 以上配置完成之后,若有针对服务器的SYN flood攻击发生时,可以通过display client-verify tcp protected ip命令查看受攻击的服务器的IP地址被添加为动态受保护IP。
[Device] display client-verify tcp protected ip
IP address VPN instance Port Type Requested Trusted
192.168.1.10 -- any Dynamic 20 12
在Device上配置DNS客户端验证功能,保护内网服务器不会受到外网非法用户的DNS flood攻击。
图1-15 安全域上的DNS客户端验证配置组网图
(1) 配置各接口的IP地址,略。
(2) 将接口加入安全域。
# 向安全域Trust中添加接口GigabitEthernet1/0/2。
<Device> system-view
[Device] security-zone name trust
[Device-security-zone-Trust] import interface gigabitethernet 1/0/2
[Device-security-zone-Trust] quit
# 向安全域Untrust中添加接口GigabitEthernet1/0/1。
[Device] security-zone name untrust
[Device-security-zone-Untrust] import interface gigabitethernet 1/0/1
[Device-security-zone-Untrust] quit
(3) 配置安全策略
# 进入IPv4安全策略视图。
[Device] security-policy ip
# 配置名称为untrust-trust的安全策略,保证Untrust和Trust之间的业务报文可正常转发(请根据实际业务需求配置,本文略)。
[Device-security-policy-ip] rule 3 name untrust-trust
[Device-security-policy-ip-3-untrust-trust] source-zone untrust
[Device-security-policy-ip-3-untrust-trust] destination-zone trust
[Device-security-policy-ip-3-untrust-trust] action pass
[Device-security-policy-ip-3-untrust-trust] quit
[Device-security-policy-ip] quit
(4) 配置攻击防范策略。
# 创建攻击防范策略a1。
[Device] attack-defense policy a1
# 对所有非受保护IP地址开启DNS flood攻击防范检测。
[Device-attack-defense-policy-a1] dns-flood detect non-specific
# 配置DNS flood攻击防范的全局触发阈值为10000。
[Device-attack-defense-policy-a1] dns-flood threshold 10000
# 配置DNS flood攻击防范的全局处理行为为添加到DNS客户端验证的受保护IP列表中以及输出告警日志。
[Device-attack-defense-policy-a1] dns-flood action logging client-verify
[Device-attack-defense-policy-a1] quit
# 在安全域Untrust上应用攻击防范策略a1。
[Device] security-zone name untrust
[Device-security-zone-Untrust] attack-defense apply policy a1
# 在安全域Untrust 上开启DNS客户端验证功能。
[Device-security-zone-untrust] client-verify dns enable
[Device-security-zone-Untrust] quit
# 以上配置完成之后,若有针对服务器的DNS flood攻击发生时,可以通过display client-verify dns protected ip命令查看受攻击的服务器的IP地址被添加为动态受保护IP。
[Device] display client-verify dns protected ip
IP address VPN instance Port Type Requested Trusted
192.168.1.10 -- 53 Dynamic 20 12
在Device上配置HTTP客户端验证功能,保护内网服务器不会受到外网非法用户的HTTP flood攻击。
图1-16 安全域上的HTTP客户端验证配置组网图
(1) 配置各接口的IP地址,略。
(2) 将接口加入安全域。
# 向安全域Trust中添加接口GigabitEthernet1/0/2。
<Device> system-view
[Device] security-zone name trust
[Device-security-zone-Trust] import interface gigabitethernet 1/0/2
[Device-security-zone-Trust] quit
# 向安全域Untrust中添加接口GigabitEthernet1/0/1。
[Device] security-zone name untrust
[Device-security-zone-Untrust] import interface gigabitethernet 1/0/1
[Device-security-zone-Untrust] quit
(3) 配置安全策略
# 进入IPv4安全策略视图。
[Device] security-policy ip
# 配置名称为untrust-trust的安全策略,保证Untrust和Trust之间的业务报文可正常转发(请根据实际业务需求配置,本文略)。
[Device-security-policy-ip] rule 3 name untrust-trust
[Device-security-policy-ip-3-untrust-trust] source-zone untrust
[Device-security-policy-ip-3-untrust-trust] destination-zone trust
[Device-security-policy-ip-3-untrust-trust] action pass
[Device-security-policy-ip-3-untrust-trust] quit
[Device-security-policy-ip] quit
(4) 配置攻击防范策略。
# 创建攻击防范策略a1。
[Device] attack-defense policy a1
# 对所有非受保护IP地址开启HTTP flood攻击防范检测。
[Device-attack-defense-policy-a1] http-flood detect non-specific
# 配置HTTP flood攻击防范的全局触发阈值为10000。
[Device-attack-defense-policy-a1] http-flood threshold 10000
# 配置HTTP flood攻击防范的全局处理行为添加到HTTP客户端验证的受保护IP列表中以及输出告警日志。
[Device-attack-defense-policy-a1] http-flood action logging client-verify
[Device-attack-defense-policy-a1] quit
# 在安全域Untrust上应用攻击防范策略a1。
[Device] security-zone name untrust
[Device-security-zone-Untrust] attack-defense apply policy a1
# 在安全域Untrust上开启HTTP客户端验证功能。
[Device-security-zone-Untrust] client-verify http enable
[Device-security-zone-Untrust] quit
# 以上配置完成之后,若有针对服务器的HTTP flood攻击发生时,可以通过display client-verify http protected ip命令查看受攻击的服务器的IP地址被添加为动态受保护IP。
[Device] display client-verify http protected ip
IP address VPN instance Port Type Requested Trusted
192.168.1.10 -- 8080 Dynamic 20 12
在Device上配置SIP客户端验证功能,保护内网服务器不会受到外网非法用户的SIP flood攻击。
图1-17 安全域上的SIP客户端验证配置组网图
(1) 配置各接口的IP地址(略)。
(2) 将接口加入安全域。
# 向安全域Trust中添加接口GigabitEthernet1/0/2。
<Device> system-view
[Device] security-zone name trust
[Device-security-zone-Trust] import interface gigabitethernet 1/0/2
[Device-security-zone-Trust] quit
# 向安全域Untrust中添加接口GigabitEthernet1/0/1。
[Device] security-zone name untrust
[Device-security-zone-Untrust] import interface gigabitethernet 1/0/1
[Device-security-zone-Untrust] quit
(3) 配置安全策略
# 进入IPv4安全策略视图。
[Device] security-policy ip
# 配置名称为untrust-trust的安全策略,保证Untrust和Trust之间的业务报文可正常转发(请根据实际业务需求配置,本文略)。
[Device-security-policy-ip] rule 3 name untrust-trust
[Device-security-policy-ip-3-untrust-trust] source-zone untrust
[Device-security-policy-ip-3-untrust-trust] destination-zone trust
[Device-security-policy-ip-3-untrust-trust] action pass
[Device-security-policy-ip-3-untrust-trust] quit
[Device-security-policy-ip] quit
(4) 配置攻击防范策略。
# 创建攻击防范策略a1。
[Device] attack-defense policy a1
# 对所有非受保护IP地址开启SIP flood攻击防范检测。
[Device-attack-defense-policy-a1] sip-flood detect non-specific
# 配置SIP flood攻击防范的全局触发阈值为10000。
[Device-attack-defense-policy-a1] sip-flood threshold 10000
# 配置SIP flood攻击防范的全局处理行为添加到SIP客户端验证的受保护IP列表中以及输出告警日志。
[Device-attack-defense-policy-a1] sip-flood action logging client-verify
[Device-attack-defense-policy-a1] quit
# 在安全域Untrust上应用攻击防范策略a1。
[Device] security-zone name untrust
[Device-security-zone-Untrust] attack-defense apply policy a1
# 在安全域Untrust上开启SIP客户端验证功能。
[Device-security-zone-Untrust] client-verify http enable
[Device-security-zone-Untrust] quit
# 以上配置完成之后,若有针对服务器的SIP flood攻击发生时,可以通过display client-verify sip protected ip命令查看受攻击的服务器的IP地址被添加为动态受保护IP。
[Device] display client-verify sip protected ip
IP address VPN instance Port Type Requested Trusted
192.168.1.10 -- 5060 Dynamic 20 12
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!