1 什么是SYN Flood攻击

  在TCP三次握手时,服务器接收客户端的SYN请求,操作系统将为该请求分配一个TCP(Transmission Control Block),服务器返回一个SYN/ACK请求,并将处于SYN_RCVD状态(半开连接状态)。

  从以上过程可以看到,如果恶意的向某个服务器端口发送大量的SYN包,则可以使服务器打开大量的半开连接,分配TCB,从而消耗大量的服务器资源,同时也使得正常的连接请求无法被相应。而攻击发起方的资源消耗相比较可忽略不计。

  SYN Flood是当前最流行的DoS(拒绝服务攻击)与DDoS(分布式拒绝服务攻击)的方式之一。

2 怎样发现自己处于被攻击状态

  (1)服务端无法提供正常的TCP服务。连接请求被拒绝或超时;

  (2)通过 netstat -an 命令检查系统,发现有大量的SYN_RECV连接状态。  

3 防御措施

  (1)使用TCP Wrapper,服务端只处理有限来源IP的TCP连接请求,其它未指定来源的连接请求一概拒绝。

  (2)缩短SYN Timeout时间,由于SYN Flood攻击的效果取决于服务器上保持的SYN半连接数,这个值=SYN攻击的频度 x  SYN Timeout,所以通过缩短从接收到SYN报文到确定这个报文无效并丢弃改连接的时间,例如设置为20秒以下(过低的SYN Timeout设置可能会影响客户的正常访问),可以成倍的降低服务器的负荷。

  (3)设置SYN Cookie,就是给每一个请求连接的IP地址分配一个Cookie,如果短时间内连续受到某个IP的重复SYN报文,就认定是受到了攻击,以后从这个IP地址来的包会被一概丢弃。

  (4)使用SYN Proxy防火墙

      Syn Cache技术和Syn Cookie技术总的来说是一种主机保护技术,需要系统的TCP/IP协议栈的支持,而目前并非所有的操作系统支持这些技术。因此很多防火墙中都提供一种 SYN代理的功能,其主要原理是对试图穿越的SYN请求进行验证后才放行,下图描述了这种过程:

从上图(左图)中可以看出,防火墙在确认了连接的有效性后,才向内部的服务器(Listener)发起SYN请求,在右图中,所有的无效连接均无法到达内 部的服务器。而防火墙采用的验证连接有效性的方法则可以是Syn Cookie或Syn Flood等其他技术。
采用这种方式进行防范需要注意的一点就是防火墙需要对整个有效连接的过程发生的数据包进行代理,如下图所示:

因为防火墙代替发出的SYN ACK包中使用的序列号为c,而服务器真正的回应包中序列号为c’,这其中有一个差值|c-c’|,在每个相关数据报文经过防火墙的时候进行序列号的修改。

SYN Flood应如何应对的更多相关文章

  1. TCP洪水攻击(SYN Flood)的诊断和处理

    TCP洪水攻击(SYN Flood)的诊断和处理   SYN Flood介绍 前段时间网站被攻击多次,其中最猛烈的就是TCP洪水攻击,即SYN Flood. SYN Flood是当前最流行的DoS(拒 ...

  2. 用iptables抗御SYN Flood攻击

    1         引 言 网络安全是各种网络应用面临的一个首要问题.从网络普及的那天开始,网络犯罪就没有停止过,相反有愈演愈烈之势.研究发现,现今的网络攻击以分布式拒绝服务攻击(DDOS)为主 .其 ...

  3. Syn Flood 攻击

    什么是SYN Flood攻击? SYN Flood (SYN洪水) 是种典型的DoS (Denial of Service,拒绝服务) 攻击.效果就是服务器TCP连接资源耗尽,停止响应正常的TCP连接 ...

  4. 什么是SYN Flood攻击?

    SYN Flood (SYN洪水) 是种典型的DoS (Denial of Service,拒绝服务) 攻击.效果就是服务器TCP连接资源耗尽,停止响应正常的TCP连接请求. 说到原理,还得从TCP如 ...

  5. SYN Flood测试

    由于工作需要对公司进行SYN Flood测试,在网上查了些资料,Youtube上找到最多的方法就是hping3工具来实现, 该工具已经预装在Kali下,具体操作用一条命令即可实现. hping3 -S ...

  6. 浅谈iptables防SYN Flood攻击和CC攻击

    ------------------------本文为自己实践所总结,概念性的东西不全,这里粗劣提下而已,网上很多,本文主要说下目前较流行的syn洪水攻击和cc攻击------------------ ...

  7. Cisco 防止SYN Flood 攻击原理

    DoS(Denial of Service拒绝服务)和DDoS(Distributed Denial of Service分布式拒绝服务)攻击是大型网站和网络服务器的安全威胁之一.2000年2月,Ya ...

  8. 扯谈网络编程之Tcp SYN flood洪水攻击

    简单介绍 TCP协议要经过三次握手才干建立连接: (from wiki) 于是出现了对于握手过程进行的攻击.攻击者发送大量的SYN包,server回应(SYN+ACK)包,可是攻击者不回应ACK包,这 ...

  9. 浅谈原始套接字 SOCK_RAW 的内幕及其应用(port scan, packet sniffer, syn flood, icmp flood)

    一.SOCK_RAW 内幕 首先在讲SOCK_RAW 之前,先来看创建socket 的函数: int socket(int domain, int type, int protocol); domai ...

随机推荐

  1. The Web server is configured to not list the contents of this directory.

    部署一个ASP.NET MVC网站至一个全新的服务器Windows Server 2008 R2, 数据为MS SQL Server 2014 64bit Expression版本. 运行时,它第一次 ...

  2. 使用html和css的一些经验

    1.注释须知:html中注释不能这样写: <div></div><!--------这是错误写法-------> <div></div>&l ...

  3. linq 实现动态 orderby

    class Pet { public string Name{get;set;} public int Age{get;set;} } void Main() { Pet[] pets = { }, ...

  4. Castle ActiveRecord框架学习(一)

    一.Active Record(活动记录)模式 Active Record是业务逻辑层中(<企业应用架构模式>将该模式归为数据源模式)常用的一种框架模式,尤其在底层数据库模型匹配业务模型时 ...

  5. 不可或缺 Windows Native (13) - C++: 标准输入, 标准输出, 字符串内存流

    [源码下载] 不可或缺 Windows Native (13) - C++: 标准输入, 标准输出, 字符串内存流 作者:webabcd 介绍不可或缺 Windows Native 之 C++ 标准输 ...

  6. Maximum length of a table name in MySQL

    http://dev.mysql.com/doc/refman/5.7/en/identifiers.html The following table describes the maximum le ...

  7. form表单及其中元素

    <form method=get/post action="提交路径"> 单行文本域:<input type="text" name=&quo ...

  8. PyCharm不能自动import解决方法_PyCharm cannot auto import package troubleshooting

    本人起初是用Eclipse+Pydev学习python的,其实也觉得挺好用.不过后来因为同事推荐去试了下PyCharm,就一发不可收拾的爱上了. 严格来说,题目上的问题其实对于很多人都不算是问题,但是 ...

  9. eclipse新建maven项目(2)

    本篇博文是继续之前的博文eclipse新建maven项目(1),那篇博文不在随笔在文章中.首先按照之前那篇博文进行创建maven项目操作,一系列操作下来之后发现刷新项目后会报错: 别急哈,可以解决. ...

  10. 几个简单的js正则验证

    //校验身份证,身份证分为15位和18位 function checkIdCard(obj) { if ((/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.tes ...