SYN Flood (SYN洪水) 是种典型的DoS (Denial of Service,拒绝服务) 攻击,属于DDos攻击的一种。遭受攻击后服务器TCP连接资源耗尽,停止响应正常的TCP连接请求。尽管这种攻击已经出现了十多年,但它的变种至今仍能看到。虽然能有效对抗SYN洪泛的技术已经存在,但是没有对于TCP实现的一个标准的补救方法出现。今天小编将详述这种攻击原理以及对抗SYN洪水的方法~
攻击原理
正常的三次握手:
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
网页题目:你还在花钱防御DDoS?巧用iptables5招免费搞定SYN洪水攻击!
文章源于:http://www.csdahua.cn/qtweb/news18/413218.html
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网