摘要:本章仅从基础层面对黑客攻击的一些主要方面进行介绍,如了解黑客攻击的类型和主要攻击方式,端口和漏洞扫描,以及在Windows 2000/Server 2003系统下针对拒绝服务攻击所进行的TCP协议深层配置。本文是全面抵御SYN攻击. 全面抵御SYN攻击 SYN攻击利用了TCP/IP连接建立机制中的安全漏洞。要实施SYN洪水攻击,攻击者会使用程序发送大量的TCP SYN请求,来填满服务器上的挂起连接队列。这会禁止其他用户建立网络连接。要保护网络免遭SYN攻击,只需按以下这些通用步骤操作即可。 (1)启用SYN攻击保护。 (2)设置SYN保护阈值。 (3)设置其他保护。 本节及后面所介绍的注册表配置方法同样适用于Windows 2000和Windows Server 2003系统。
1.SYN攻击保护 启用SYN攻击保护需要设定以下注册表键值项(为双字节类型)。 SynAttackProtect双字节键值项。该键值项位于注册表编辑器的HKEY_LOCAL_ MACHINESYSTEMCurrentControlSetServices主键项中,并将其设置为“2”(有效值为0~2)。 以上设置就可使TCP调整SYN-ACK的重传。配置此值后,在遇到SYN攻击时,对连接超时的响应将更快速。在超过TcpMaxHalfOpen或TcpMaxHalfOpenRetried的值后,将触发SYN攻击保护。这个注册表项已在前面两节有了介绍,在此不再赘述。下面介绍SYN的保护阈值。 2.设置SYN保护阈值1)TcpMaxPortsExhausted双字节键值项 在注册表编辑器中找到HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices主键项,并查看名为“TcpMaxPortsExhausted”的双字节键值项,将其值设置为“5”(有效值为0~65 535)。这项设置是指定触发SYN洪水攻击保护所必须超过的TCP连接请求数的阈值。 2)TcpMaxHalfOpen键值项 在注册表编辑器相同的Services主键项中找到名为“TcpMaxHalfOpen”的键值项,并将其值设置为“500”(有效值为100~65 535)。这项设置用于在启用SynAttackProtect后,指定处于SYN_RCVD状态的TCP连接数的阈值。在超过SynAttackProtect后,将触发SYN洪水攻击保护。 3)TcpMaxHalfOpenRetried双字节键值项 同样在上述Services主键项中设置TcpMaxHalfOpenRetried键值项的值为400(有效值为80~65 535)。该项设置用于在启用SynAttackProtect键值项后,指定处于至少已发送一次重传的SYN_RCVD状态中的TCP连接数的阈值。超过SynAttackProtect值后,将触发SYN洪水攻击保护。 3.其他保护项 这一部分中的所有注册表项和值都位于注册表项的HKEY_LOCAL_MACHINE SYSTEM CurrentControlSetServices主键项下面。 将名为“TcpMaxConnectResponseRetransmissions”的双字节键值项设置为“2”(有效值为0~255)。该项设置用于控制在响应一次SYN请求之后,在取消重传尝试之前SYN-ACK响应的重传次数。 将名为“TcpMaxDataRetransmissions”的双字节键值项的值设置为“2”(有效值为0~65 535)。该项设置指定在终止连接之前TCP重传一个数据段(不是连接请求段)的次数。 将名为“EnablePMTUDiscovery”的键值项的值设置为“0”(有效值为0,1)。将该项值设置为“1”(默认值)可强制TCP查找在通向远程主机的路径上的最大传输单元或最大数据包大小。攻击者可能将数据包强制分段,这会使堆栈不堪重负,所以设置为“0”。对于不是来自本地子网的主机的连接,将该值指定为0可将最大传输单元强制设定为576字节。 将名为“KeepAliveTime”的键值项的值设置为“300 000”(5分钟,有效值为80~4 294 967 295)。该项设置可以指定TCP尝试通过发送持续存活的数据包来验证空闲连接是否仍然未被触动的频率。 将名为“NoNameReleaseOnDemand”的键值项的值设置为“1”(有效值为0,1)。该项设置可以指定计算机在收到名称发布请求时是否发布其NetBIOS名称,设置为“1”表示发布。 如表3-2所示中汇总了以上各个需要设置的键值项,这些设置使服务器系统可受到最大程度的SYN攻击保护。 |