巧用iptables五招免费搞定SYN洪水攻击

本文介绍了SYN Flood攻击的原理及其对服务器的影响,详细阐述了如何通过iptables配置规则来防御此类攻击,包括强制SYN检查、丢弃碎片包、XMAS和NULL数据包,以及其他的防御策略如SYN Cookie技术和限制SYN并发数。
摘要由CSDN通过智能技术生成

转载来源 :巧用iptables五招免费搞定SYN洪水攻击 :https://www.toutiao.com/i6772397997692027399/

摘要: SYN Flood是种典型的DoS攻击,属于DDos攻击的一种;遭受攻击后服务器TCP连接资源耗尽,最后停止响应正常的TCP连接请求。尽管这种攻击已经出现了十多年,但它的变种至今仍能看到。虽然能有效对抗SYN洪泛的技术已经存在,但是没有对于TCP实现的一个标准的补救方法出现。今天小聪将详述这种攻击原理以及对 …

SYN Flood介绍

SYN Flood是种典型的DoS攻击,属于DDos攻击的一种;遭受攻击后服务器TCP连接资源耗尽,最后停止响应正常的TCP连接请求。尽管这种攻击已经出现了十多年,但它的变种至今仍能看到。虽然能有效对抗SYN洪泛的技术已经存在,但是没有对于TCP实现的一个标准的补救方法出现。今天小聪将详述这种攻击原理以及对抗SYN洪水的方法分享给大家!

首先我们来看看SYN洪水攻击的攻击原理

正常的三次握手:

1.先发起一个SYN=1的包,并且带一个序列号(Seq);

2.服务器收到这个包以后,将这个数据放入到一个队列中,这个队列叫syn_table。并且发送一个返回包,作为响应,这个返回包有自己的序列号(Seq),以及一个Ack,Ack的值就是客户端发来的Seq值加一;

3.客户端收到返回信息以后,将服务器的Seq加一作为Ack又发给服务器;

4.服务器收到这第三个包,验证没问题以后,就将这个连接放入到request_sock_queue,三次握手完成。
在这里插入图片描述
SYN Flood 主要是利用了TCP协议的三次握手的缺陷,在这个攻击中,Flood带有一系列的syn数据包,每个数据包都会导致服务端发送SYN-ACK响应,然后服务器等待SYN+ACK之后的第三次握手ACK,由于客户端是软件生成的虚拟IP,永远不会再发送ACK响应服务端,服务端会利用从传机制直到超时后删除,整个系统资源也会被队列积压消耗,导致服务器无法对正常的请求进行服务。
在这里插入图片描述

那么如何判断自己是否遭受SYN攻击?

检测SYN攻击非常的简单,当你在服务器上看到大量的半连接状态时,特别是源IP地址是随机的,基本上可以断定这是一次SYN攻击。我们使用系统自带的netstat工具来检测SYN攻击:# netstat -n -p TCP

反馈如图
在这里插入图片描述
了解原理之后,我们来看看如何防御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 FIREWALL IP

# nmap -v -sX FIREWALL IP

# nmap -v -sN FIREWALL IP

例如:
在这里插入图片描述
其他防御方式:

除此之外针对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:增加backlog队列(默认是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
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值