记一次Widows2008r2遭遇10小时SYN Flood的优化无用功

Windows Vista, Windows 2008以上系统会针对syn flood攻击对TCP/IP栈进行智能调优,无须额外配置。虽然如此我还是根据业务量配了值,也不知会不会生效。

参考官方论坛一测试大佬的帖子

https://blogs.technet.microsoft.com/nettracer/2010/06/01/syn-attack-protection-on-windows-vista-windows-2008-windows-7-windows-2008-r2-windows-88-1-windows-2012-and-windows-2012-r2/

 

原优化记录,只针对2008以下系统有效。

SynAttackProtect配置

https://security.pconline.com.cn/0811/1481843_3.html

当SynAttackProtect 值为2时(Microsoft推荐使用此值),系统不仅使用backlog队列,还使用附加的半连接指示,以此来处理更多的SYN连接,使用此键值时, tcp/ip的TCPInitialRTT、window size和可滑动窗囗将被禁止。

平时,系统是不启用SynAttackProtect机制的,仅在检测到SYN攻击时,才启用,并调整tcp/ip协议栈。那么系统是如何检测SYN攻击发生的呢?事实上,系统根据TcpMaxHalfOpen,TcpMaxHalfOpenRetried 和TcpMaxPortsExhausted三个参数判断是否遭受SYN攻击。

  TcpMaxHalfOpen 表示能同时处理的最大半连接数,如果超过此值,系统认为正处于SYN攻击中。Win2000 server默认值为100,Win2000 Advanced server为500。

  TcpMaxHalfOpenRetried定义了保存在backlog队列且重传过的半连接数,如果超过此值,系统自动启动 SynAttackProtect机制。Win2000 server默认值为80,Win2000 Advanced server为400。

  TcpMaxPortsExhausted 是指系统拒绝的SYN请求包的数量,默认是5

官方论坛讨论

https://social.technet.microsoft.com/Forums/windows/en-US/568cc9fa-ec3d-491f-aaf7-95c4e8735f8b/2008r2-connections-stuck-in-synreceived?forum=winservergen

https://social.technet.microsoft.com/Forums/Lync/en-US/c53806fa-3c62-4b2b-a85a-fb1047a231bd/sync-attack-protection?forum=winserversecurity

利用netstat检查

netstat -n -p TCP | find /i "syn"

利用netsh抓包

netsh trace start capture=yes provider=Microsoft-Windows-TCPIP level=0x05 tracefile=TCPIP.etl

抓包分析

https://blog.csdn.net/scugxl/article/details/75000180

SynAttackProtect保护(挨打)机制

https://www.jianshu.com/p/65371757889a

一旦服务器受到攻击,SYN半连接的数量超过TcpMaxHalfOpenRetried的设置,系统会认为自己受到了SYN Flood攻击,此时设置在SynAttackProtect键值中的选项开始作用,SYN Timeout时间被减短,SYN-ACK的重试次数减少,系统也会自动对缓冲区中的报文进行延时,避免对TCP/IP堆栈造成过大的冲击,力图将攻击危害减到最低;如果攻击强度不断增大,超过了TcpMaxHalfOpen值,此时系统已经不能提供正常的服务了,更重要的是保证系统不会崩溃,所以系统将会丢弃任何超出TcpMaxHalfOpen值范围的SYN报文(应该是使用随机丢包策略),保证系统的稳定性。 所以,对于需要进行SYN攻击保护的系统,我们可以测试/预测一下访问峰值时期的半连接打开量,以其作为参考设定TcpMaxHalfOpenRetried的值(保留一定的余量),然后再以TcpMaxHalfOpenRetried的1.25倍作为TcpMaxHalfOpen值,这样可以最大限度地发挥WIN2K自身的SYN攻击保护机制。 通过设置注册表防御SYN Flood攻击,采用的是“挨打”的策略
原文地址:https://www.cnblogs.com/victorfrost/p/11737762.html