你还在花钱去防御DDoS吗?使用iptables 5技巧免费获得SYN Flood攻击!

发布者:上海IT外包来源:http://www.lanmon.net点击数:1278

SYN Flood(SYN Flood)是典型的DoS(拒绝服务)攻击,是一种DDoS攻击。攻击发生后,服务器TCP连接资源耗尽,最后停止响应正常的TCP连接请求。虽然这种攻击已经存在了十多年,但它的变种仍然可以在今天看到。尽管已经存在可以有效对抗SYN泛洪的技术,但TCP实现没有标准的补救措施。今天的小编将详细介绍这种攻击原理以及对抗SYN洪水的方法〜
攻击原理
正常的三次握手:
首先启动带有序列号(Seq)的SYN=1数据包;
服务器收到数据包后,会将数据放入名为syn_table的队列中。并且发送一个返回包,作为响应,返回包有自己的序列号(Seq)和Ack,Ack的值是客户端发送的Seq值加一;
客户端收到返回消息后,将服务器的Seq添加为Ack,并将其发送给服务器。
服务器接收第三个包,并在验证没有问题后,将连接放入request_sock_queue,并完成三次握手。
你还在花钱去防御DDoS吗?使用iptables 5技巧免费获得SYN Flood攻击!
SYN Flood主要利用TCP协议三次握手的缺点。在此攻击中,Flood会携带一系列syn数据包,每个数据包都会导致服务器发送SYN-ACK响应,然后服务器等待SYN + ACK。第三次握手ACK,因为客户端是软件生成的虚拟IP,ACK响应服务器将永远不会再次发送,服务器将使用直通机制,直到超时被删除,整个系统资源将由队列积压,导致服务器。无法为正常请求提供服务。
你还在花钱去防御DDoS吗?使用iptables 5技巧免费获得SYN Flood攻击!
如何判断我是否患有SYN攻击?
检测SYN攻击非常简单。当您在服务器上看到大量半连接状态时,特别是如果源IP地址是随机的,您基本上可以断定这是SYN攻击。我们使用系统附带的netstat工具来检测SYN攻击:#netstat -n -p TCP
反馈如图所示
你还在花钱去防御DDoS吗?使用iptables 5技巧免费获得SYN Flood攻击!
防御SYN Flood攻击
配置iptables规则
iptables防火墙可以理解为Linux系统下的访问控制功能,我们可以使用Iptables配置一些规则来抵御这种攻击。强制进行SYN数据包检查以确保传入的tcp链接是SYN数据包,如果不是则丢弃。
#iptables -A INPUT -p tcp --syn -m state --state NEW -j DROP
强制检查碎片数据包并丢弃带有传入片段的数据包。
#iptables -A INPUT -f -j DROP
丢弃格式错误的XMAS数据包。
#iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
丢弃格式错误的NULL数据包。
#iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
当Iptables配置完成后,我们可以使用nmap命令对其进行验证。
#nmap -v -f防火墙IP
#nmap -v -sX防火墙IP
#nmap -v -sN防火墙IP
例如:
你还在花钱去防御DDoS吗?使用iptables 5技巧免费获得SYN Flood攻击!
其他防御方法:
除了SYN攻击外,我们还可以使用以下处理方法:
方法1:减少SYN-ACK数据包的重传次数(默认为5次)
Sysctl -w net.ipv4.tcp_synack_retries=3
Sysctl -w net.ipv4.tcp_syn_retries=3
方法2:使用SYN Cookie技术
Sysctl -w net.ipv4.tcp_syncookies=1
方法3:增加积压队列(默认为1024):
Sysctl -w net.ipv4.tcp_max_syn_backlog=2048
方法4:限制SYN并发数量:
Iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT --limit 1/s
IT外包
>
400-635-8089
立即
咨询
电话咨询
服务热线
400-635-8089
微信咨询
微信咨询
微信咨询
公众号
公众号
公众号
返回顶部