本文主要介绍了SYNPROXY的相关原理、DDoS简述、LVS相关应用等内容。
上篇文章回顾: 容器进程Core Dump处理
SYNPROXY简述
SYNPROXY是防御DDoS攻击的有力手段。
SYNPROXY是一个TCP握手代理,原生支持是从Linux内核3.13开始的。当一个TCP请求从客户端发出时,首先与该握手代理进行三次握手,其采用SYNCookie技术,只有该请求通过cookie合法性校验,代理服务器才会与服务器进行真正的TCP三次握手,此时客户端和服务端之间的连接才真正建立,进入数据传输阶段。
DDoS简述
DDoS(Distributed Denial of Service,分布式拒绝服务)攻击源于DoS(Denial of Service,拒绝服务)攻击。DoS攻击又称洪水攻击,其攻击目的主要是使计算机的网络或系统资源耗尽,无法为正常请求建立连接,导致客户端无法正常访问。而当攻击者为两个及两个以上的被攻陷的计算机组成的“僵尸团”时,则为DDoS攻击,相比于DoS的“单挑”,显然“群殴”来得杀伤力和破坏力更大。
DDoS的攻击形式多样,按照攻击形式分为带宽消耗型攻击和资源消耗型攻击,按照攻击层级分为网络层DDoS攻击和应用层DDoS攻击。网络层DDoS攻击最为常见和杀伤力较大的攻击为SYNFlood攻击。
SYNFlood攻击利用TCP协议缺陷,发送大量伪造的TCP连接请求(SYN报文),使被攻击方的内存资源不足或者CPU超负载。即,建立TCP连接需要三次握手,被攻击方在收到攻击方SYN报文回复SYN-ACK报文,但是伪造的SYN报文一般源IP地址不存在或不可达,导致被攻击方为维护数以万计的SYN_RCVD状态(半开放状态)连接而消耗巨大的资源,产生频繁的超时重传动作,使得正常的连接请求无法建立,甚至于被攻击方的CPU资源被耗尽,服务器处于瘫痪状态。
DDoS让人头疼的地方在于,它就像普通感冒一样,只能防御,难以根治,并且攻