yutianxuan 发表于 2008-6-26 10:52:03

内网SYN攻击及防护

什么是SYN cookie?
SYN cookie就是用一个cookie来响应TCP SYN请求的TCP实现,根据上面的描述,在正常的TCP实现中,

当S接收到一个SYN数据包,他返回

一个SYN-ACK包来应答,然后进入TCP-SYN-RECV(半开放连接)状态来等待最后返回的ACK包。S用一个

数据空间来描述所有未决的连接,

然而这个数据空间的大小是有限的,所以攻击者将塞满这个空间。
在TCP SYN COOKIE的执行过程中,当S接收到一个SYN包的时候,他返回一个SYN-ACK包,这个数据包的

ACK序列号是经过加密的,也就

是说,它由源地址,端口源次序,目标地址,目标端口和一个加密种子计算得出。然后S释放所有的状

态。如果一个ACK包从C返回,

S将重新计算它来判断它是不是上个SYN-ACK的返回包。如果这样,S就可以直接进入TCP连接状态并打

开连接。这样,S就可以

避免守侯半开放连接了。
以上只是SYN COOKIE的基本思路,它在应用过程中仍然有许多技巧。请在前几年的kernel邮件列表查

看archive of discussions的相关详细

内容。
4,什么是SYN COOKIE 防火墙
SYN COOKIE 防火墙是SYN cookie的一个扩展,SYN cookie是建立在TCP堆栈上的,他为linux操作系统

提供保护。SYN cookie防火墙是linux的

一大特色,你可以使用一个防火墙来保护你的网络以避免遭受SYN洪水攻击。
下面是海蜘蛛海盾的原理
client firewall server
------ ---------- ------
1. SYN----------- - - - - - - - - - ->
2. <------------SYN-ACK(cookie)
3. ACK----------- - - - - - - - - - ->
4. - - - - - - -SYN--------------->
5. <- - - - - - - - - ------------SYN-ACK
6. - - - - - - -ACK--------------->

7. -----------> relay the ------->
<----------- connection <-------
1:一个SYN包从C发送到S
2:海盾在这里扮演了S的角色来回应一个带SYN cookie的SYN-ACK包给C
3:C发送ACK包,接着海盾和C的连接就建立了。
4:海盾这个时候扮演C的角色发送一个SYN给S
5:S返回一个SYN给C
6:海盾扮演C发送一个ACK确认包给S,这个时候海盾和S的连接也就建立了
7:海盾转发C和S间的数据
如果系统遭受SYN Flood,那么第三步就不会有,而且无论在防火墙还是S都不会收到相应在第一步的

SYN包,所以我们就击退了这次SYN洪水攻 击。
页: [1]
查看完整版本: 内网SYN攻击及防护