tcp|服务器SYN洪水攻击原理和防御办法-SynAttackProtect保护机制( 二 )


我们应该知道,平时,系统是不启用SynAttackProtect机制的,仅在检测到SYN攻击时,才启用,并调整tcp/ip协议栈。那么系统是如何检测SYN攻击发生的呢?事实上,系统根据TcpMaxHalfOpen,TcpMaxHalfOpenRetriedTcpMaxPortsExhausted三个参数判断是否遭受SYN攻击。
TcpMaxHalfOpen表示能同时处理的最大半连接数(也即服务器处于SYN_RECV阶段),如果超过此值,系统认为正处于SYN攻击中。Win2000 server默认值为100Win2000 Advanced server500
TcpMaxHalfOpenRetried定义了保存在backlog队列且重传过的半连接数(即服务器处于SYN_RECV阶段,并且对于一些连接,若发送了SYN-ACK后没有响应使得服务器重发SYN-ACK),如果超过此值,系统自动启动SynAttackProtect机制。Win2000 server默认值为80Win2000 Advanced server400
TcpMaxPortsExhausted 是指系统拒绝的SYN请求包的数量(也即服务器处于LISTEN阶段,个人认为是与socket中的listen第二个参数backlog一样的意思,也即等待连接队列的长度),默认是5
如果想调整以上参数的默认值,可以在注册表里修改(位置与SynAttackProtect相同)

tcp/ip协议栈的调整可能会引起某些功能的受限,管理员应该在进行充分了解和测试的前提下进行此项工作

推荐阅读