什么是SYN包?SYN包是什么意思?
  TCP连接的第一个包,非常小的一种数据包。SYN***包括大量此类的包,由于这些包看上去来自实际不存在的站点,因此无法有效进行处理。
   当两台计算机在TCP连接上进行会话时,连接一定会首先被初始化。完成这项任务的包叫作SYN。一个SYN包简单的表明另一台计算机已经做好了会话的准 备。只有发出服务请求的计算机才发送SYN包。所以如果你仅拒绝进来的SYN包,它将终止其它计算机打开你计算机上的服务,但是不会终止你使用其它计算机 上的服务,如果它没有拒绝你发送的SYN包的话。
  SYN***
  最近对SYN Flood特别感兴趣,看到一个关于SYN cookie firewall的文章,在google搜了一下,没中文的,翻译他一下
  一:介绍SYN
  二:什么是SYN洪水***
  三:什么是SYN cookie
  四:什么是SYN cookie防火墙
  C=client(客户器)
  S=Server(服务器)
  FW=Firewall(防火墙)
  一:介绍SYN
   SYN cookie是一个防止SYN洪水***技术。他由D. J. Bernstein和Eric Schenk发明。现在SYN COOKIE已经是linux内核的一部分了(我插一句,默认的stat是no),但是在linux系统的执行过程中它只保护linux系统。我们这里只 是说创建一个linux防火墙,他可以为整个网络和所有的网络操作系统提供SYN COOKIE保护你可以用这个防火墙来阻断半开放式tcp连接,所以这个受保护的系统不会进入半开放状态(TCP_SYN_RECV)。当连接完全建立的 时候,客户机到服务器的连接要通过防火墙来中转完成。
  二:什么是SYN洪水***?(来自CERT的警告)
  当一个系统(我们叫他客户端)尝试和一个提供了服务的系统(服务器)建立TCP连接,C和服务端会交换一系列报文。
   这种连接技术广泛的应用在各种TCP连接中,例如telnet,Web,email,等等。首先是C发送一个SYN报文给服务端,然后这个服务端发送一 个SYN-ACK包以回应C,接着,C就返回一个ACK包来实现一次完整的TCP连接。就这样,C到服务端的连接就建立了,这时C和服务端就可以互相交换 数据了。下面是上文的图片说明:)
  Client Server
  ------ ------
  SYN-------------------->
  <--------------------SYN-ACK
  ACK-------------------->
  Client and server can now
  send service-specific data
   在S返回一个确认的SYN-ACK包的时候有个潜在的弊端,他可能不会接到C回应的ACK包。这个也就是所谓的半开放连接,S需要耗费一定的数量的系统 内存来等待这个未决的连接,虽然这个数量是受限的,但是恶意者可以通过创建很多的半开放式连接来发动SYN洪水*** 。通过ip欺骗可以很容易的实现半开放连接。***者发送SYN包给受害者系统,这个看起来是合法的,但事实上所谓的C根本不会回应这个 。
  SYN-ACK报文,这意味着受害者将永远不会接到ACK报文。
   而此时,半开放连接将最终耗用受害者所有的系统资源,受害者将不能再接收任何其他的请求。通常等待ACK返回包有超时限制,所以半开放 。连接将最终超时,而受害者系统也会自动修复。虽然这样,但是在受害者系统修复之前,***者可以很容易的一直发送虚假的SYN请求包来持续***。在大多数 情况下,受害者几乎不能接受任何其他的请求,但是这种***不会影响到已经存在的进站或者是出站连接。虽然这样,受害者系统还是可能耗尽系统资源,以导致其 他种种问题。
  ***系统的位置几乎是不可确认的,因为SYN包中的源地址多数都是虚假的。当SYN包到达受害者系统的时候,没有办法找到他的真实地址,因为在基于源地址的数据包传输中,源ip过滤是唯一可以验证数据包源的方法。
  三:什么是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洪水***。
  下面是SYN cookie防火墙的原理
  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洪水***。

转载于:https://blog.51cto.com/hukunlin/240157

什么叫SYN包,什么是SYN包***?相关推荐

  1. TCP包的类型 (SYN, FIN, ACK, PSH, RST, URG)

    http://blog.csdn.net/season_hangzhou/article/details/9161969 在TCP层,有个FLAGS字段,这个字段有以下几个标识:SYN, FIN, A ...

  2. TCP第三次握手失败的处理(Server端超时重传机制、RST包响应、SYN攻击)

    面试题: 在 TCP 建立连接的三次握手连接阶段,如果客户端发送的第三个ACK包丢了,那么客户端和服务端分别进行什么处理呢? 相信了解 tcp 协议的人,三次握手的过程肯定很了解了.第三次的 ack ...

  3. 以太网数据包、IP包、TCP/UDP 包的结构(转)

    源:以太网数据包.IP包.TCP/UDP 包的结构 版本号(Version):长度4比特.标识目前采用的IP协议的版本号.一般的值为0100(IPv4),0110(IPv6). IP包头长度(Head ...

  4. tcpdump - 数据包进行截获的包分析工具

    From:http://www.cnblogs.com/ggjucheng/archive/2012/01/14/2322659.html 30 分钟掌握 tcpdump:http://zhuanla ...

  5. 转载:tcpdump抓包和Wireshark解包

    转自:https://www.cnblogs.com/domestique/p/8028405.html 简介 用简单的话来定义tcpdump,就是:dump the traffic on a net ...

  6. http抓包实战 pdf_抓包实战 | 浏览器里的HTTP请求到底是如何完成的?

    来源丨木木匠 my.oschina.net/luozhou/blog/3003053 文中很多细节就是面试时关于"网络"这一块所常问的,还是得多积累一点 概   览 上一篇文章&l ...

  7. 【Wireshark系列十】wireshark怎么抓包、wireshark抓包详细图文教程

    wireshark怎么抓包.wireshark抓包详细图文教程 wireshark是非常流行的网络封包分析软件,功能十分强大.可以截取各种网络封包,显示网络封包的详细信息.使用wireshark的人必 ...

  8. 计算机网络协议——OSI、TCP数据、IP数据包、Ethernet 数据包

    计算机网络 欢迎关注公众号二月鸟的博客. 1.协议体系介绍 1.1 五层协议 应用层 :为特定应用程序提供数据传输服务,例如 HTTP.DNS 等.数据单位为报文. 传输层 :为进程提供通用数据传输服 ...

  9. Wireshark抓包以及tcpdump抓包

    tcpdump抓包命令 tcpdump 的抓包保存到文件的命令参数是-w xxx.cap 抓eth1的包 tcpdump -i eth1 -w /tmp/xxx.cap,.cap文件可以用wiresh ...

  10. Wireshark下载、Wireshark使用、Wireshark抓包、ARP抓包、ICMP抓包、TCP抓包、HTTP抓包

    Wireshark下载.Wireshark使用.Wireshark抓包.ARP抓包.ICMP抓包.TCP抓包.HTTP抓包 Wireshark下载 Wireshark抓包即快速定位数据包技巧 常见协议 ...

最新文章

  1. SAP MM MIGO过账报错 - 用本币计算的余额 - 之对策
  2. java 能不能回收 文件流_Java文件流关闭和垃圾回收机制
  3. Docker仓库搭建
  4. 火车头如何才能设置发布的时候,如果是有html代码就直接的转换掉,互联网上笑话抽取及排重---火车头采集器的使用和MD5算法的应用...
  5. 使用transforms.Compose套件做图像数据变换
  6. Docker部署微服务应用的架构设计
  7. MySQL引擎详解(二)——MyISAM引擎特性
  8. Mediator(中介者)
  9. 【转】 Linux中的工作队列
  10. Ubuntu下局域网内+花生壳远程调试程序
  11. 文件对比软件 Beyond Compare 4 破解
  12. Unity中Text中首行缩进两个字符和换行的代码
  13. TalkingData
  14. vue回到顶部(常用)
  15. 【离散】画哈斯图--最好理解绝不会出错
  16. stm32 GPIO_Write
  17. 在ubuntu下烧写映像文件到nand--基于三星210开发板
  18. 出租车从业资格证什么时候换证?
  19. es7版本数据备份与恢复(生产环境)
  20. Android6.0 蓝牙搜索不到设备原因,MIUI权限申请机制

热门文章

  1. ipv6看电视的链接
  2. 企业终端安全应该包括哪几部分?
  3. 公开说说别人看不到_为什么我在QQ空间里面发表说说别人看不到
  4. c语言数据结构与算法参考文献,数据结构论文参考文献
  5. [wp] HITB CTF 2017 website
  6. 代码动态改变view的大小
  7. 树莓派安装python3.5_一树 - 神奇宝贝百科,关于宝可梦的百科全书
  8. 正确模仿别人的php项目,一个模仿oso的php论坛程序(之一)第1/2页
  9. 浅析Java的线程和Golang的协程
  10. mysql where 小于_MySQL-过滤数据(WHERE语句)