阻塞是攻击不同于侵入式攻击,是很难根除的。因为其主要来源是大量受黑客控制的肉鸡,而且可能是动态IP,所以没有办法通过封锁IP的方式彻底排除其影响,通常只能采取一定的措施减轻其影响,实在不行则只能加硬件防火墙。
如何减小SYN攻击的影响
1、扩大Backlog暂存数, 尽可能多的保留合法连接:
# sysctl -w net.ipv4.tcp_max_syn_backlog=2048 ( 默认:1024)
2、启用syncookies:
#sysctl -w net.ipv4.tcp_syncookies=1
启用syncookies可以大幅减小syn攻击带来的影响,但是却引入了新的安全缺陷
syncookie基本原理是:仔细处理连接的初始序列号而不是随机选择一个序列号。一旦server接收到SYN报文,将关键信息仔细编码并作为 state存储在SYN队列中。这种经过编码的信息是用一个秘钥进行加密hash,形成SYN-ACK报文中的序列号并发送给client。在合法握手的 第三个报文中,即从client返回给server的ACK报文中,在acknowledgment number字段中包含该序列号(加1). 这样,open双向连接所必须的所有信息又返回给server,而server在三次握手完成之前不必维护state。syn-cookies解决了 SYN的基本问题,但是随之带来一个新的问题,就是服务器需要对收到的ACK报文进行计算,提高了三次握手需要的系统资源。一种新的攻击方式随之而来,即 ACK攻击,发送大量的ACK数据报,导致服务器忙于计算最终导致服务器停止相应。Linux上的实际应用中,只有等待数被占满的时候才会启用 syncookies的方式
3、修改重试次数
#sysctl -w net.ipv4.tcp_syn_retries = 1 重传次数设置为1, (甚至设置为0, 即只要收不到客户端的响应,立即丢弃该连接) 默认设置为5次
4. 此外, 可以参考以下iptables的策略, 合并在一起控制并发连接数
减小ACK攻击影响
1. 使用iptables限制单个地址的并发连接数量:
#iptables -I INPUT -p tcp –dport 80 -m connlimit –connlimit-above 50 -j DROP
2. 使用iptables限制单个c类子网的并发链接数量:
#iptables -t filter -A INPUT -p tcp –dport 80 –tcp-flags FIN,SYN,RST,ACK ACK -m connlimit –connlimit-above 10 –connlimit-mask24 -j REJECT
限制并发ACK不大于50
可以按照C网来进行统计和封锁是connlimit模块非常独特的优势.
3.限制单位时间内的连接数:
#iptables -t filter -A INPUT -p tcp –dport 80 -m –state –state NEW -m recent –set –name access –resource#iptables -t filter -A INPUT -p tcp –dport 80 -m –state –state NEW -m recent –update –seconds 60 –hitcount 30 –name access -j DROP
由于connlimit模块还没有正式进入内核, 所以目前恐怕只有第三条比较实用.
减小CC攻击影响
普通的CC攻击特点是所有的连接都是正常的完整的连接,这样的连接一般的防火墙是很难预防的。但是既然是网络攻击必然也具有网络攻击的共同特点,也 就是每一个攻击源都会发起尽量多的连接,因此我们仍然可以使用限制单个地址并发链接数量的办法来实现对CC攻击的抵御。具体命令同上
webcc,想必之下似乎更加难以预防,但是由于所有的访问都是由相同的一个或几个网站中转而来,这些访问请求的http_reffer都会带有这 些中转站的地址。我们只要在web服务器上设置http_reffer过滤即可大幅减小webcc攻击的影响
[参考文章]
1. SYN攻击的原理,攻击工具,以及防护手段/使用iptables应对SYN攻击、CC攻击、ACK攻击
http://bbs3.chinaunix.net/thread-1627255-1-1.html
2. SYN Flood攻击、SYN Cookie防御和Linux/FreeBSD的内核参数修改
http://blog.csdn.net/JsuFcz/archive/2010/03/23/5407685.aspx
3. TCP SYN Flood攻击的原理机制/检测与防范及防御方法
http://hi.baidu.com/newrity/blog/item/76b6f8cec0e7250592457e0f.html
4. 一次dos事件的分析和处理办法 (Linux + iptables)
https://bbs.et8.net/bbs/showthread.php?t=671756
分享到:
相关推荐
TCP SYN ACK FIN RST PSH URG.doc
Synack代理代理应用
这篇博客描述了我在开始与 Synack 的 Red Team 进行渗透测试时编写的快速简单的 BASH 脚本。 我想在开始扫描目标之前编写一个简单明了的脚本。 一旦选择了一个项目,就会生成一个 VPN 配置并将其用于 VPN 进入 ...
Linux下基于SYN Cookie的防SYN Flood攻击的实现与改进.pdf
防syn 攻击优化配置 下载安装 查SYN: #netstat -anp |awk '{print $6}'|sort|uniq -c |sort -rn 172?ESTABLISHED 59?CONNECTED 589?SYN_RECV 15?STREAM 继续追查是那些ip发出的SYN # netstat -an | grep SYN ...
synflood源码,C语言实现原始套接字可以直接编译,执行./synflood ip
ICMP发现活动主机 TCP(SYN FIN ACK)端口扫描 UDP端口扫描 vs2008 Winpcap开发
这是我针对以前发出的两个工具做的一些优化和集成,增加了自动识别网卡mac等功能,优化了攻击时间的控制策略。如果大家只是学习用,建议下载以上的代码进行修改和自己编写。... 之后将发布集成cc攻击的3.0版本
SYN Flood攻击的影响也不容小觑,从攻击中可以看到,以SYN Flood为主的数十G流量,很容易就造成被攻击目标网络瘫痪。但TCP类的攻击远不止如此,本篇我们就来全面讲解基于TCP协议的各种DDoS攻击方式和防御原理。
SYN攻击详解,详细讲解syn攻击模式,简称洪水攻击,是一种常见的服务器攻击方式
SYN113和SYN115和SYN480和RFC433无线技术文档资料
防SYN攻击注册表.rar防SYN攻击注册表.rar
说明:SYN-Flood攻击输入IP地址上的输入特定端口。数据包源IP地址为一伪造地址,每一次攻击都不断变换源IP地址源端口也是随机变化的。程序没有做到教科书要求的 伪造的源IP地址可路由但是不可达。程序采用的几乎都是...
在最常见的SYN Flood攻击中,攻击者在短时间内发送大量的TCP SYN包给受害者。受害者(服务器)为每个TCP SYN包分配一个特定的数据区,只要这些SYN包具有不同的源地址(攻击者很容易伪造)。这将给TC
但如果有一个恶意的攻击者大量模拟这种情况,服务器端将为了维护一个非常大的半连接列表而消耗非常多的资源----数以万计的半连接,即使是简单的保存并遍历也会消耗非常多的CPU时间和内存,何况还要不断对这个列表中...
如果发动SYN攻击的源地址和物理地址不变,容易受防火墙拦截,不能实现真正意义上的SYN攻击。通过对程序的修改实现IP和MAC地址的同时改变从而可以通过防火墙实现攻击!!!
用python语言实现 syn flood攻击
可以模拟syn flood udp flood等泛洪攻击的一款小软件,360会报警。
技术文档分享。
awl-0.2.tar.gz TCP SYN洪水攻击 linux工具 多线程mac伪装SYN洪水攻击工具