TCP标志位学习资料收集
TCP首部有6个标志比特。
SYN是其中之一,它是个同步序号,当TCP连接建立时会把SYN置1。
一般请求端会发送一个报文,其中包含这样的字段SYN 1415531521:1415531521(0)。
然后服务端收到后会返回一个ack 1415531522,ack表示确认收到。
SYN,ACK是标志位。
SEQ,AN是数据包序号。
SYN=1, ACK=0, SEQ=200 的意思是:发送的为一个SYN请求,发送端的初始数据包序号为200
SYN=1, ACK=1, SEQ=4800, AN=201 的意思是:接收端的确认信息,且接收端的初始数据包。序号为4800。
SYN,ACK是标志位
SEQ,AN是数据包序号
SYN=1, ACK=0, SEQ=200 的意思是:发送的为一个SYN请求,发送端的初始数据包序号为200
- 利用SYN缺陷发动SYN洪水攻击
TCP连接的第一个包,非常小的一种数据包(用于发出请求)。SYN 攻击包括大量此类的包,由于这些包看上去来自实际不存在的站点,因此无法有效进行处理。每个机器的欺骗包都要花几秒钟进行尝试方可放弃提供正常响应。 - SYN攻击属于DDoS攻击(DDOs攻击简单地说就是**占着茅坑不****)的一种,它利用TCP协议缺陷,通过发送大量的半连接请求,耗费CPU和内存资源。SYN攻击除了能影响主机外,还可以危害路由器、防火墙等网络系统,事实上SYN攻击并不管目标是什么系统,只要这些系统打开TCP服务就可以实施。服务器接收到连接请求(syn= j),将此信息加入未连接队列,并发送请求包给客户(syn=k,ack=j+1),此时进入SYN_RECV状态。当服务器未收到客户端的确认包时,重发请求包,一直到超时,才将此条目从未连接队列删除。配合IP欺骗,SYN攻击能达到很好的效果,通常,客户端在短时间内伪造大量不存在的IP地址,向服务器不断地发送syn包,服务器回复确认包,并等待客户的确认,由于源地址是不存在的,服务器需要不断的重发直至超时,这些伪造的SYN包将长时间占用未连接队列,正常的SYN请求被丢弃,目标系统运行缓慢,严重者引起网络堵塞甚至系统瘫痪。
- 判断是否出现SYN Flood
TcpMaxPortsExhausted域值
TCPMaxHalfOpen 域值
TCPMaxHalfOpenRetried域值
-
SYN Flood攻击防范
一类是通过防火墙、路由器等过滤网关防护,利用防范DDOs的那一套就行 -
通过隐藏真实IP方式可以实现,前提是要先找一个高防的盾机,再把IP隐藏起来,盾机要是都被打崩了,那就凉了。(最有效方法)
-
加固TCP/IP协议栈
通过设置注册表项SynAttackProtect如果出现 SYN 攻击,连接响应的超时时间将更短