12-TCP攻击防御配置
本章节下载: 12-TCP攻击防御配置 (128.71 KB)
攻击者可以利用TCP连接的建立过程和TCP报文的交互过程对设备进行攻击。为了避免上述攻击带来的危害,设备提供了SYN Cookie功能和TCP分片攻击防范功能。
一般情况下,TCP连接的建立需要经过三次握手,即:
(1) TCP连接请求的发起者向目标服务器发送SYN报文;
(2) 目标服务器收到SYN报文后,建立处于SYN_RECEIVED状态的TCP半连接,并向发起者回复SYN ACK报文,等待发起者的回应;
(3) 发起者收到SYN ACK报文后,回应ACK报文,这样TCP连接就建立起来了。
利用TCP连接的建立过程,一些恶意的攻击者可以进行SYN Flood攻击。攻击者向服务器发送大量请求建立TCP连接的SYN报文,而不回应服务器的SYN ACK报文,导致服务器上建立了大量的TCP半连接。从而,达到耗费服务器资源,使服务器无法处理正常业务的目的。
SYN Cookie功能用来防止SYN Flood攻击。当服务器收到TCP连接请求时,不建立TCP半连接,而直接向发起者回复SYN ACK报文。服务器接收到发起者回应的ACK报文后,才建立连接,并进入ESTABLISHED状态。通过这种方式,可以避免在服务器上建立大量的TCP半连接,防止服务器受到SYN Flood攻击。
表1-1 配置SYN Cookie功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
使能SYN Cookie功能 |
tcp syn-cookie enable |
必选 缺省情况下,SYN Cookie功能处于使能状态 |
使能SYN Cookie功能后,建立TCP连接时只协商最大报文段长度选项,而不协商窗口缩放因子和时间戳选项。
Naptha攻击类似于SYN Flood攻击,所不同的是Naptha攻击可利用TCP连接的CLOSING、ESTABLISHED、FIN_WAIT_1、FIN_WAIT_2、LAST_ACK和SYN_RECEIVED六种状态来达到攻击目的,而SYN Flood只是利用SYN_RECEIVED状态。
Naptha攻击通过控制大量主机与服务器建立TCP连接,并使这些连接处于同一种状态(上述六种状态中的一种),而不请求任何数据,从而达到消耗服务器的内存资源,导致服务器无法处理正常业务的目的。
防止Naptha攻击功能通过加速TCP状态的老化,来降低服务器遭受Naptha攻击的风险。使能防止Naptha攻击功能后,设备周期性地检测处于上述六种状态的TCP连接数(设备只记录其作为TCP服务器的TCP连接数)。如果检测到某个状态的TCP连接数目超过设定的最大连接数,则认为设备受到Naptha攻击,就会加速该状态下TCP连接的老化。当该状态下的TCP连接数低于最大连接数的80%(最小值为1),则取消该状态下TCP连接的加速老化。
表1-2 配置防止Naptha攻击功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
使能防止Naptha攻击功能 |
tcp anti-naptha enable |
必选 缺省情况下,防止Naptha攻击功能处于关闭状态 |
配置某一状态下的最大TCP连接数 |
tcp state { closing | established | fin-wait-1 | fin-wait-2 | last-ack | syn-received } connection-number number |
可选 缺省情况下,六种TCP状态下的最大连接数均为5 如果TCP状态下的最大连接数为0,则表示不会加速该状态的老化 |
配置TCP连接状态的轮询检测时间间隔 |
tcp timer check-state timer-value |
可选 缺省情况下,TCP状态轮询检测的时间间隔为30秒 |
设备的包过滤功能一般是通过判断TCP首个分片中的五元组(源IP地址、源端口号、目的IP地址、目的端口号、传输层协议号)信息来决定后续TCP分片是否允许通过。RFC1858对TCP分片报文进行了规定,认为TCP分片报文中,首片报文中TCP报文长度小于20字节,或后续分片报文中分片偏移量等于8字节的报文为TCP分片攻击报文。这类报文可以成功绕过上述包过滤功能,对设备造成攻击。
例如攻击者可构造极小的TCP首个分片报文,将TCP报文头(通常为20字节)分布在2个分片中,这样一来,构造报文中的非法TCP标记位将包含在第二个分片中,从而逃过包过滤系统的检查,对设备造成攻击。同样,攻击者通过构造片偏移量等于8字节的TCP分片报文,也可以绕过包过滤系统,而当这些TCP分片在目的主机上进行报文重组时,携带非法TCP标记位的报文将替换TCP首片中的合法标记位,对设备造成攻击。
为防止这类攻击,可以在设备上配置TCP分片攻击报文丢弃功能,对不符合要求的TCP分片进行丢弃。
表1-3 配置TCP分片攻击防范
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置TCP分片攻击防范功能 |
attack-defense tcp fragment enable |
缺省情况下,TCP分片攻击防范功能处于开启状态 |
在任意视图下执行display tcp status命令可以显示所有TCP连接的状态,用户可以通过显示信息随时监控TCP连接。
表1-4 TCP攻击防御显示和维护
操作 |
命令 |
显示所有TCP连接的状态 |
display tcp status [ | { begin | exclude | include } regular-expression ] |
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!