为防范SYN攻击,win2000系统的tcp/ip协议栈内嵌了SynAttackProtect机制,Win2003系统也采用此机制。SynAttackProtect机制是通过关闭某些socket选项,增加额外的连接指示和减少超时时间,使系统能处理更多的SYN连接,以达到防范SYN攻击的目的。默认情况下,Win2000操作系统并不支持SynAttackProtect保护机制,需要在注册表以下位置增加SynAttackProtect键值:HKLM/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters
当SynAttackProtect值(如无特别说明,本文提到的注册表键值都为十六进制)为0或不设置时,系统不受SynAttackProtect保护。
当SynAttackProtect值为2时,系统通过减少重传次数和延迟未连接时路由缓冲项(route cache entry)防范SYN攻击。
修改注册表,防止SYN攻击
一、单击“开始”——“运行”输入“regedit”,单击“确定”按钮,打开注册表。
二、找到注册表位置:HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters
新建DWORD值,名为SynAttackProtect。
三、点击右键修改 SynAttackProtec t键值的属性。在弹出的“编辑DWORD值”对话框数值数据栏中输入“2”
四、单击“确定”,继续在注册表中添加下列键值,防范SYN洪水攻击。
EnablePMTUDiscovery REG_DWORD 0
NoNameReleaseOnDemand REG_DWORD 1
EnableDeadGWDetect REG_DWORD 0
KeepAliveTime REG_DWORD 300,000
PerformRouterDiscovery REG_DWORD 0
EnableICMPRedirects REG_DWORD 0


