简介:

SYN Flood 是 DoS( 拒绝服务攻击 )与 DDoS( 分布式拒绝服务攻击 )的方式之一,这是一种利用 TCP 协议缺陷,发送大量伪造 TCP

连接请求,从而使得服务器资源耗尽( CPU 满负载或内存不足 )的攻击方式。

TCP 三次握手:

1、客户端发送一个包含 SYN 标志的 TCP 报文到服务端,报文指明客户端使用的端口及 TCP 连接的初始序列号。

2、服务器在收到客户端的 SYN 报文后,将返回一个 SYN+ACK 报文,表示接受请求,同时 TCP 序列号加一,ACK确认。

3、客户端收到后,返回一个确认报文 ACK 给服务器,同时 TCP 序列号加一,到此建立连接完成。

SYN Flood :

当客户端将 TCP 连接请求发给服务器后,自己死机或掉线无法收到服务器发回的 SYN+ACK 应答报文,这时服务器会隔一段时间去重新发送

应答报文,重试次数上限后,如果客户端还没有响应,即丢弃这个未完成的连接。如果恶意的模拟这种情况,服务器将使用很多资源去维护这个

半连接表,还需去重试这些恶意的半连接请求,从而对正常的访问请求失去响应或变的非常缓慢,这就是 SYN Flood 攻击。( TCP 洪水攻击 )

如何确认是否为 SYN Flood 攻击:

通常情况,服务器负荷突然升高甚至失去响应,使用 netstat -ant 可以看到大量的 SYN_RCVD 的半连接,数量大于 500 或超过总连接数的

10% ,系统日志 messages 中有 SYN Flooding 字样等,则可认定为遭到 SYN Flood 攻击。

防范一、更改内核参数(只能有效降低)、临时封源 IP 地址

net.ipv4.tcp_synack_retries =  ( 默认  )

## TCP 连接三次握手中第二次握手请求次数,每次等待 30 ~ 40 秒,如果对方没有回应第三个握手包(ACK),即:重试。

面临 SYN Flood 即 TCP 洪水攻击时,可以将此参数改为 0 ,即:回应第二个握手包给客户端后,如果收不到客户端回应的第三个握手包,

不进行重试,加快半开连接的回收,防止系统资源被耗尽。弊端:当网络状态很差时,有可能客户端没有收到服务器发出的第二个握手包,那

么连接服务器可能会失败。但是问题并不大,客户端也有第一次握手重试次数。

net.ipv4.tcp_syncookies =  ( 默认  )

## 开启 SYN Cookies ,当半连接队列溢出时,向请求连接的 IP 分配 Cookies ,短时间内连续收到某 IP 的重复 SYN 报文,即认为受到攻击,

之后收到此 IP 地址来的包都会被丢弃,可阻止少量 SYN 攻击。

net.ipv4.tcp_max_syn_backlog = 

## SYN 队列长度,可容纳更多的半连接数,最大限度接受客户端请求。(这个取值范围没弄明白,现在是按一倍内存取的)

netstat -ant | grep 'SYN_RECV' > SYN.txt 分析 IP 地址,使用 iptables 干掉它。

防范二、使用硬件防火墙来抵挡(成本高)

可以让客户端先跟硬防建立 TCP 连接,连接成功后才转发到后端服务器。

SYN Flood 防范的更多相关文章

  1. SYN Flood应如何应对

    1 什么是SYN Flood攻击 在TCP三次握手时,服务器接收客户端的SYN请求,操作系统将为该请求分配一个TCP(Transmission Control Block),服务器返回一个SYN/AC ...

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

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

  3. SYN Flood攻击及防御方法 (转)

    原文连接:http://blog.csdn.net/bill_lee_sh_cn/article/details/6065704 一.为什么Syn Flood会造成危害      这要从操作系统的TC ...

  4. 用iptables抗御SYN Flood攻击

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

  5. TCP SYN flood洪水攻击原理和防御破解

    简介 TCP协议要经过三次握手才能建立连接: 于是出现了对于握手过程进行的攻击.攻击者发送大量的SYN包,服务器回应(SYN+ACK)包,但是攻击者不回应ACK包,这样的话,服务器不知道(SYN+AC ...

  6. SYN Flood测试

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

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

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

  8. Cisco 防止SYN Flood 攻击原理

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

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

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

随机推荐

  1. python(六):面型对象--类的特殊方法

    一.跟实例创建和执行有关的 __new__.__init__.__call__. 类加括号调用了__init__方法来创建一个实例对象.这一过程分成了两步: 类调用__new__来创建实例对象,__n ...

  2. pat甲级 1152 Google Recruitment (20 分)

    In July 2004, Google posted on a giant billboard along Highway 101 in Silicon Valley (shown in the p ...

  3. 《DSP using MATLAB》示例Example 8.28

    %% ------------------------------------------------------------------------ %% Output Info about thi ...

  4. {Notes}{Latex}{multirow}

    这个文章写的真的太牛比了! ============================================================ 在latex文件最前面用这个包\usepackag ...

  5. 实例-QPSK的fpga实现

  6. java 并发synchronized使用

    从版本1.0开始,java中每个对象都有一个内部锁,如果一个方法用synchronized修饰,那么对象的锁将保护整个方法,也就是说要调用该方法,线程必须获得内部的对象锁 换句话说 public sy ...

  7. cocos2dx调度器(scheduler)

    调度器(scheduler) http://cn.cocos2d-x.org/article/index?type=cocos2d-x&url=/doc/cocos-docs-master/m ...

  8. Centos用yum升级mysql到(5.5.37) (转)

    http://www.cnblogs.com/ikodota/p/use_yum_update_mysql.html 1. Change root user su - ## OR ## sudo -i ...

  9. 1.JMeter===添加响应断言

    断言即Lr中的检查点,我们在进行测试时,需要对每次请求测试的返回做检验 1.以百度做案例,添加线程组==添加HTTP请求==添加查看结果树 2.在HTTP请求下添加响应断言 注:模式匹配规则,比较常用 ...

  10. Android 从上层到底层-----hal层

    CPU:RK3288 系统:Android 5.1 功能:上层 app 控制 led 亮灭 开发板:Firefly RK3288 led_hal.c path:hardware/rockchip/fi ...