作者:hacker发布时间:2022-07-16分类:破解邮箱浏览:116评论:2
syn flood 半链接洪水,它属于TCP的体制漏洞,非常难防范,我也没有太好的办法,
1)可以把服务器的能力放大 需要400M的带宽
2)选折抵抗 可以用linux 加cookies
做法 echo 1 /proc/sys/net/tcp_syncookies
3)可以考虑购买硬件防火墙(如果资金允许)
syn攻击是利用TCP的3次握手,他只给你前两次的握手,你的内存就会分给他内存地址,他又不给你第3次握手,你的系统慢慢就会瘫痪
一般的方法就是用6次握手机制解决
前面的2,3都是这个原理
强烈鄙视楼上的,你懂不懂啊,SYN是攻击,不是病毒
补充: 80 http的端口,也就是攻击你的应该是互联的机器,能用SYN攻击的应该是高手,你要小心了
一,可缩短 SYN Timeout时间,可以通过缩短从接收到SYN报文到确定这个报文无效并丢弃该连接的时间,可以降低服务器负荷。
二,设置SYN Cookie,给每个请求连接的IP地址分配一个Cookie,如果短时间内收到同一个IP的重复SYN报文,则以后从这个IP地址来的包会被丢弃。
SYN洪水攻击 原理 SYN攻击 最近对SYN Flood特别感兴趣,看到一个关于SYN cookie firewall的文章,在google搜了一下,没中文的,翻译他一下 本文介绍了4个概念 一:介绍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 Flood是当前最流行的DoS(拒绝服务攻击)与DdoS(分布式拒绝服务攻击)的方式之一,这是一种利用TCP协议缺陷,发送大量伪造的TCP连接请求,从而使得被攻击方资源耗尽(CPU满负荷或内存不足)的攻击方式。
要明白这种攻击的基本原理,还是要从TCP连接建立的过程开始说起:
大家都知道,TCP与UDP不同,它是基于连接的,也就是说:为了在服务端和客户端之间传送TCP数据,必须先建立一个虚拟电路,也就是TCP连接,建立TCP连接的标准过程是这样的:
首先,请求端(客户端)发送一个包含SYN标志的TCP报文,SYN即同步(Synchronize),同步报文会指明客户端使用的端口以及TCP连接的初始序号;
第二步,服务器在收到客户端的SYN报文后,将返回一个SYN+ACK的报文,表示客户端的请求被接受,同时TCP序号被加一,ACK即确认(Acknowledgment)。
第三步,客户端也返回一个确认报文ACK给服务器端,同样TCP序列号被加一,到此一个TCP连接完成。
以上的连接过程在TCP协议中被称为三次握手(Three-way Handshake)。
问题就出在TCP连接的三次握手中,假设一个用户向服务器发送了SYN报文后突然死机或掉线,那么服务器在发出SYN+ACK应答报文后是无法收到客户端的ACK报文的(第三次握手无法完成),这种情况下服务器端一般会重试(再次发送SYN+ACK给客户端)并等待一段时间后丢弃这个未完成的连接,这段时间的长度我们称为SYN Timeout,一般来说这个时间是分钟的数量级(大约为30秒-2分钟);一个用户出现异常导致服务器的一个线程等待1分钟并不是什么很大的问题,但如果有一个恶意的攻击者大量模拟这种情况,服务器端将为了维护一个非常大的半连接列表而消耗非常多的资源----数以万计的半连接,即使是简单的保存并遍历也会消耗非常多的CPU时间和内存,何况还要不断对这个列表中的IP进行SYN+ACK的重试。实际上如果服务器的TCP/IP栈不够强大,最后的结果往往是堆栈溢出崩溃---即使服务器端的系统足够强大,服务器端也将忙于处理攻击者伪造的TCP连接请求而无暇理睬客户的正常请求(毕竟客户端的正常请求比率非常之小),此时从正常客户的角度看来,服务器失去响应,这种情况我们称作:服务器端受到了SYN Flood攻击(SYN洪水攻击)。
从防御角度来说,有几种简单的解决方法:
第一种是缩短SYN Timeout时间,由于SYN Flood攻击的效果取决于服务器上保持的SYN半连接数,这个值=SYN攻击的频度 x SYN Timeout,所以通过缩短从接收到SYN报文到确定这个报文无效并丢弃改连接的时间,例如设置为20秒以下(过低的SYN Timeout设置可能会影响客户的正常访问),可以成倍的降低服务器的负荷。
第二种方法是设置SYN Cookie,就是给每一个请求连接的IP地址分配一个Cookie,如果短时间内连续受到某个IP的重复SYN报文,就认定是受到了攻击,以后从这个IP地址来的包会被丢弃。
可是上述的两种方法只能对付比较原始的SYN Flood攻击,缩短SYN Timeout时间仅在对方攻击频度不高的情况下生效,SYN Cookie更依赖于对方使用真实的IP地址,如果攻击者以数万/秒的速度发送SYN报文,同时利用SOCK_RAW随机改写IP报文中的源地址,以上的方法将毫无用武之地。
SYN-Flood是目前最流行的DDoS攻击手段,早先的DoS的手段在向分布式这一阶段发展的时候也经历了浪里淘沙的过程。SYN-Flood的攻击效果最好,应该是众黑客不约而同选择它的原因吧。那么我们一起来看看SYN-Flood的详细情况.
Syn Flood利用了TCP/IP协议的固有漏洞.面向连接的TCP三次握手是Syn Flood存在的基础 .假设一个用户向服务器发送了SYN报文后突然死机或掉线,那么服务器在发出SYN+ACK应答报文后是无法收到客户端的ACK报文的(第三次握手无法完成),这种情况下服务器端一般会重试(再次发送SYN+ACK给客户端)并等待一段时间后丢弃这个未完成的连接,这段时间的长度我们称为SYN Timeout,一般来说这个时间是分钟的数量级(大约为30秒-2分钟);一个用户出现异常导致服务器的一个线程等待1分钟并不是什么很大的问题,但如果有一个恶意的攻击者大量模拟这种情况,服务器端将为了维护一个非常大的半连接列表而消耗非常多的资源----数以万计的半连接,即使是简单的保存并遍历也会消耗非常多的CPU时间和内存,何况还要不断对这个列表中的IP进行SYN+ACK的重试。实际上如果服务器的TCP/IP栈不够强大,最后的结果往往是堆栈溢出崩溃---即使服务器端的系统足够强大,服务器端也将忙于处理攻击者伪造的TCP连接请求而无暇理睬客户的正常请求(毕竟客户端的正常请求比率非常之小),此时从正常客户的角度看来,服务器失去响应,这种情况我们称做:服务器端受到了SYN Flood攻击(SYN洪水攻击)
一般来说现在的个人防火墙能够很好地应对当前的PC网络安全工作
若是服务器受到大量的DDos攻击,建议购置DDos硬件防火墙
很有可能是SYN Flood的攻击, [以2下h为4转贴] 剖析SYN Flood攻击(6) -------------------------------------------------------------------------------- 一b、SYN Flood的基本原理 SYN Flood是当前最流行的DoS(拒绝服务攻击)与mDdoS(分5布式拒绝服务攻击)的方0式之p一o,这是一i种利用TCP协议缺陷,发送大m量伪造的TCP连接请求,从3而使得被攻击方7资源耗尽(CPU满负荷或内7存不u足)的攻击方4式。 要明白这种攻击的基本原理,还是要从4TCP连接建立的过程开l始说起: 大h家都知道,TCP与hUDP不s同,它是基于v连接的,也i就是说:为4了v在服务端和客户1端之i间传送TCP数据,必须先建立一t个b虚拟电路,也l就是TCP连接,建立TCP连接的标准过程是这样的: 首先,请求端(客户0端)发送一g个r包含SYN标志的TCP报文4,SYN即同步(Synchronize),同步报文3会指明客户6端使用的端口i以2及jTCP连接的初始序号; 第二l步,服务器在收到客户7端的SYN报文2后,将返回一f个dSYN+ACK的报文2,表示1客户4端的请求被接受,同时TCP序号被加一c,ACK即确认2(Acknowledgement)。 第三l步,客户3端也d返回一l个y确认7报文8ACK给服务器端,同样TCP序列号被加一j,到此一m个hTCP连接完成。 以5上g的连接过程在TCP协议中1被称为7三l次握手4(Three-way Handshake)。 问题就出在TCP连接的三t次握手1中1,假设一h个f用户8向服务器发送了cSYN报文6后突然死机或掉线,那么k服务器在发出SYN+ACK应答报文4后是无b法收到客户6端的ACK报文0的(第三g次握手6无m法完成),这种情况下j服务器端一f般会重试(再次发送SYN+ACK给客户0端)并等待一v段时间后丢弃这个l未完成的连接,这段时间的长8度我们称为2SYN Timeout,一g般来说这个a时间是分2钟的数量级(大y约为170秒-8分4钟);一r个d用户7出现异常导致服务器的一y个i线程等待2分6钟并不n是什5么w很大n的问题,但如果有一z个q恶意的攻击者大o量模拟这种情况,服务器端将为7了d维护一c个d非常大r的半连接列表而消耗非常多的资源----数以8万e计8的半连接,即使是简单的保存并遍历p也g会消耗非常多的CPU时间和内4存,何况还要不k断对这个e列表中3的IP进行SYN+ACK的重试。实际上s如果服务器的TCP。IP栈不j够强大g,最后的结果往往是堆栈溢出崩溃 ---即使服务器端的系统足够强大v,服务器端也p将忙于g处理攻击者伪造的TCP连接请求而无h暇理睬客户1的正常请求(毕竟客户4端的正常请求比0率非常之p小o),此时从8正常客户4的角度看来,服务器失去响应,这种情况我们称作:服务器端受到了ySYN Flood攻击(SYN洪水7攻击)。 从7防御角度来说,有几a种简单的解决方3法: 第一w种是缩短SYN Timeout时间,由于rSYN Flood攻击的效果取决于h服务器上c保持的SYN半连接数,这个j值=SYN攻击的频度 x SYN Timeout,所以5通过缩短从8接收到SYN报文2到确定这个z报文1无f效并丢弃改连接的时间,例如设置为210秒以8下q(过低的SYN Timeout设置可能会影响客户8的正常访问),可以7成倍的降低服务器的负荷。 第二o种方5法是设置SYN Cookie,就是给每一y个s请求连接的IP地址分6配一k个fCookie,如果短时间内7连续受到某个jIP的重复SYN报文0,就认2定是受到了g攻击,以0后从5这个yIP地址来的包会被丢弃。 可是上n述的两种方7法只能对付比4较原始的SYN Flood攻击,缩短SYN Timeout时间仅7在对方3攻击频度不d高的情况下p生效,SYN Cookie更依赖于h对方3使用真实的IP地址,如果攻击者以4数万y。秒的速度发送SYN报文5,同时利用SOCK_RAW随机改写IP报文1中5的源地址,以7上w的方5法将毫无k用武之g地。 防止4SYN泛洪攻击 开a启路由器的TCP拦截 ------------------------------------------------------------------------------------------ TCP拦截即TCP intercept,大n多数的路由器平台都引8用了s该功能,其主要作用就是防止2SYN泛洪攻击。SYN攻击利用的是TCP的三q次握手1机制,攻击端利用伪造的IP地址向被攻击端发出请求,而被攻击端发出的响应报文2将永远发送不g到目的地,那么f被攻击端在等待关闭这个g连接的过程中0消耗了x资源,如果有成千r上u万r的这种连接,主机资源将被耗尽,从6而达到攻击的目的。我们可以6利用路由器的TCP拦截功能,使网络上k的主机受到保护(以7Cisco路由器为5例)。 开u启TCP拦截分0为1三e个e步骤: 1。 设置TCP拦截的工d作模式 TCP拦截的工t作模式分3为5拦截和监视。在拦截模式下p,路由器审核所有的TCP连接,自身的负担加重,所以5我们一a般让路由器工l作在监视模式,监视TCP连接的时间和数目,超出预定值则关闭连接。 格式:ip tcp intercept mode (intercept|watch) 缺省为0intercept 0。 设置访问表,以7开f启需要保护的主机 格式:access-list [400-506] [deny|permit] tcp source source-wildcard destination destination-wildcard 举例:要保护306。564。730。146这台主机 access-list 005 permit tcp any host 054。281。840。444 4。 开q启TCP拦截 ip tcp intercept list access-list-number 示0例:我们有两台服务器451。771。240。247和556。103。680。610需要进行保护,可以6这样配置: ip tcp intercept list 604 ip tcp intercept mode watch 。。。。。。。。 ip access-list 203 permit tcp any host 226。233。470。871 ip access-list 100 permit tcp any host 764。124。150。706 经过这样的配置后,我们的主机就在一u定程度上e受到了e保护。 g冤jy九▅b┿b┿qǖkptイv胜∏
标签:syn洪水攻击软件下载
已有2位网友发表了看法:
访客 评论于 2022-07-16 17:31:09 回复
接的IP地址分配一个Cookie,如果短时间内连续受到某个IP的重复SYN报文,就认定是受到了攻击,以后从这个IP地址来的包会被丢弃。可是上述的两种方法只能对付比较原始的S
访客 评论于 2022-07-17 04:03:11 回复
写IP报文1中5的源地址,以7上w的方5法将毫无k用武之g地。 防止4SYN泛洪攻击 开a启路由器的TCP拦截 ----------------------------------------------------