Windows Server 使用 TCP syn cookies 来保护自己免受 syn-flooding 攻击。
是否知道操作系统(Windows Server 2008 R2 和 Windows Server 2012)如何计算 syn cookie?如果知道,如何计算?
答案1
维基百科给出了公式 -http://en.wikipedia.org/wiki/SYN_cookies
- 让吨是一个缓慢递增的时间戳(通常
time()
逻辑上右移 6 位,从而得到 64 秒的分辨率) - 让米是服务器存储在 SYN 队列条目中的最大段大小 (MSS) 值
- 让s是根据服务器 IP 地址和端口号、客户端 IP 地址和端口号以及值计算出的加密哈希函数的结果吨. 返回值s必须是 24 位值。
初始 TCP 序列号(即 SYN cookie)计算如下:
- 前 5 位:吨模式 32
- 接下来的 3 位:表示米
- 最后 24 位:s
只有微软确切知道 Windows 是否以这种方式实现 SYN Cookies,因为它是闭源的,但为了与其他操作系统的互操作性,遵循此公式是有意义的。
您可以在以下位置看到 SYN Cookies 的一个实现net/ipv4/syncookies.c在 Linux 中。