减少SYN, ACK和CC攻击的影响

阻塞是攻击不同于侵入式攻击,是很难根除的。因为其主要来源是大量受黑客控制的肉鸡,而且可能是动态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

你可能感兴趣的:(.net,linux,应用服务器,防火墙,FreeBSD)