1、前言
笔者想总结一些应对常见的网络攻击的方法,特参阅网络上的文档,以便整理出一套可以应对SYN、CC、ACK等攻击的方案。
2、理论基础
2.1、TCP/IP的三次握手理论
TCP/IP协议使用三次握手来建立连接,过程如下:
1)第一次握手,客户端发送数据包syn到服务器,并进入SYN_SEND状态,等待回复
2)第二次握手,服务器发送数据报syn/ack,给客户机,并进入SYN_RECV状态,等待回复
3)第三次握手,客户端发送数据包ACK给客户机,发送完成后,客户端和服务器进入ESTABLISHED状态,链接建立完成
2.2、TCP/IP三次握手服务器过程分析
1)三次握手协议中服务器维护一个等待队列
2)收到一个syn包就在队列中建立一个条目,并分配一定的资源
3)对应的每一个条目表示已经收到一个syn请求,并已经回复syn/ack
4)服务器上对应的连接已经进入SYN_RECV状态,等待客户端响应
5)收到客户端的响应包以后,该连接进入 ESTABLISHED状态,队列中对应的条目被删除。
2.3、TCP/IP三次握手相关参数
2.3.1、backlog
1)参数的作用:
设定等待队列的最大数目。
2)对应内核参数:
1
|
net.ipv4.tcp_max_syn_backlog = 1024
|
2.3.2、syn-ack
1)参数的作用:
重传次数,服务器发送syn/ack包,如果没有收到客户端的相应,就会重传syn/ack,超过一定时间之后会进行第二次重传,超过设定 次数以后将该条目从队列中删除。每次重传的间隔时间并不确定。
2)对应内核参数:
1
|
net.ipv4.tcp_synack_retries = 5
|
2.3.3、syn
1)参数的作用:
重传次数,概念和syn/ack重传次数类似
2)对应内核参数:
net.ipv4.tcp_syn_retries = 5
2.3.4、等待存活时间
指等待队列的条目存活时间,即从服务器收到syn包到确认这个包无效的最长时间,该时间是所有重传包请求的最长等待时间。
3、攻击类型与防御
3.1、DDOS攻击
3.1.1、DDOS攻击的概念
DDOS攻击又称流量攻击
一群恶霸试图让对面那家有着竞争关系的商铺无法正常营业,他们会采取什么手段呢?(只为举例,切勿模仿)恶霸们扮作普通客户一直拥挤在对手的商铺,赖着不走,真正的购物者却无法进入;或者总是和营业员有一搭没一搭的东扯西扯,让工作人员不能正常服务客户;也可以为商铺的经营者提供虚假信息,商铺的上上下下忙成一团之后却发现都是一场空,最终跑了真正的大客户,损失惨重。此外恶霸们完成这些坏事有时凭单干难以完成,需要叫上很多人一起。嗯,网络安全领域中DoS和DDoS攻击就遵循着这些思路。
3.1.2、一般的DDOS解决方法
1)设置方法1