搜索文章:

首页  |  Java技术  |  Asp.net  |  Asp编程  |  VC/C++  |  Delphi  |  VB编程

TCP SYN Flood防御方法

一、tcp连接监控(tcp interception)
  为了有效的防范tcp syn flood攻击,在保证通过慢速网络的用户可以正常建立到服务端的合法连接的同时,需要尽可能的减少服务端tcp backlog的清空时间,大多数防火墙采用了tcp连接监控的工作模式。其工作流程如下图所示:
screen.width-300)this.width=screen.width-300 border=0 alt=click to open in new window>

1.防火墙接到来自用户端z的syn连接请求,在本地建立面向该连接的监控表项;
  2.防火墙将该连接请求之转发至服务端a;
  3.服务端a相应该连接请求返回syn/ack,同时更新与该连接相关联的监控表项;
  4.防火墙将该syn/ack转发至用户端z;
  5.防火墙发送ack至服务端a,同时服务端a中tcp backlog该连接的表项被移出;
  6.这时,根据连接请求是否合法,可能有以下两种情况发生:
    a.如果来自用户端z的连接请求合法,防火墙将该ack转发至服务端a,服务端a会忽略该ack,因为一个完整的tcp连接已经建立;
    b.如果来自用户端z的连接请求非法(来源ip地址非法),没有在规定的时间内收到返回的ack,防火墙会发送rst至服务端a以拆除该连接。
  7.开始tcp传输过程。
  由此可以看出,该方法具有两个局限:
  1.不论是否合法的连接请求都直接转发至服务端a,待判断为非法连接(无返回ack)时才采取措施拆除连接,浪费服务端系统资源;
  2.防火墙在本地建立表项以监控连接(一个类似tcp backlog的表),有可能被攻击者利用。
  二、天网dos防御网关
  天网防火墙采用经过优化的tcp连接监控工作方式。该方式在处理tcp连接请求的时候,在确定连接请求是否合法以前,用户端z与服务端a是隔断的。其工作流程如下图所示:
screen.width-300)this.width=screen.width-300 border=0 alt=click to open in new window>

1.防火墙接到来自用户端z的syn连接请求;
  2.防火墙返回一个经过特殊处理的syn/ack至客户端z以验证连接的合法性;
  3.这时,根据连接请求是否合法,可能有以下两种情况发生:
    a.防火墙接收到来自客户端z的ack回应,该连接请求合法。转至第4步继续;
    b.防火墙没有接收到来自客户端z的ack回应,该连接请求非法,不进行处理;
  4.防火墙在本地建立面向该连接的监控表项,并发送与该连接请求相关联的syn至服务端a;
  5.防火墙接到来自服务端a的syn/ack回应;
  6.防火墙返回ack以建立一个完整的tcp连接;
  7.防火墙发送ack至客户端z,提示可以开始tcp传输过程。
  其中,在第2/3/4/7步过程中,防火墙内部进行了如下操作:
  1.在第2步中,为了验证连接的合法性,防火墙返回的syn/ack是经过特殊处理的,并提示客户端z暂时不要传送有效数据;
  2.在第3步中,防火墙接收到来自客户端z的ack,检验其合法性。
  3.在第4步中,防火墙在本地建立面向该连接的监控表项,同时发送与该连接相关的syn至服务端a;
  4.在第7步中,防火墙通过将tcp数据传输与监控表项进行比对,并调整序列号和窗口以使之匹配。开始tcp数据传输。
  在这里,天网防火墙通过高效的算法(64k位的hash)提供了超过30万以上的同时连接数的容量,为数据传输的高效和可靠提供了强有力地保障。

()

相关文章:
© 2006   www.java-asp.net