红联Linux门户
Linux帮助

在FreeBSD 6上面怎么防DDOS攻击

发布时间:2007-08-19 00:00:28来源:红联作者:augset
anthony 写到:
两年前的办法现在怎么看这种办法
ipfw add check-state
ipfw add deny tcp from any to any established
ipfw add allow tcp from my-net to any setup keep-state
DDoS会让ipfw状态表迅速填满。
anthony 写到:
1,增加被攻击者自己的抵抗力,比如增大允许tcp同时连接进来的包(考验你的os的稳定性了,solaris和freebsd稳定性都不错),增加网卡的缓存,比如
网卡缓存如何增加?
anthony 写到:
net.inet.tcp.delayed_ack=0 //把这个设为0,这样浪费掉的是电信的带宽速率而不是你的处理时间。
打垮交换机对于防止[D]DoS恐怕没有什么大的好处……
anthony 写到:
net.inet.tcp.recvspace=65535
上面这两个值是比较好的最大化web性能的一个比例值(对付ddos来说,也是增加自己承受力的一方面)
对于HTTP而言,sendspace应该大于recvspace。
anthony 写到:
net.inet.udp.recvspace=65535
net.inet.udp.maxdgram=57344
net.local.stream.recvspace=65535
同上,这些完全要根据应用的性质来。
anthony 写到:
2。缩减tcp syn等待超时的时间,freebsd的我不太熟悉,不知是不是这个net.inet.tcp.syncache.bucketlimit: 30 //等待30秒?
这种方式有一定效果,一般现在的firewall,比如pix,cisco,checkpoint都是通过减小这个值来加快丢掉那些syn状态的攻击包,但是那些低带宽、高延时的moden用户可能会牺牲掉。
不是。应该是 net.inet.tcp.msl,单位是ms。目前的网络上出现几秒内无法建立连接的用户,你完全可以把他们丢掉,因为他们打开网页的时间显然要超过人的忍耐力。
anthony 写到:
3。现在有一些高端的硬件产品,比如耀腾的i810e,cisco的11000系列的cdn产品中的一部分。在这方面改进了不少,比如我用过i810e,他有两个特性,一个是支持每秒(还是每分钟?忘了)30万的tcp session连接数,支持七层过滤,当打开七层过滤和tcp代理的时候,i810e会代替你的server与攻击者完成tcp三次握手的动作,因为一台主机目前好像最多也只能建立65535个tcp连接,还不包括低位1024去掉,系统内核参数限制:
我个人认为所谓七层过滤产品就是互联网行业的“X白金”。*5:年轻态,健康品!
anthony 写到:
比如我freebsd上的
net.inet.ip.portrange.lowfirst: 1023
net.inet.ip.portrange.lowlast: 600
net.inet.ip.portrange.first: 1024
net.inet.ip.portrange.hifirst: 49152
net.inet.ip.portrange.hilast: 65535
基本概念错误。这个是你主动发起连接时的临时端口的范围。
anthony 写到:
你可以算算看看你的机器最多可有多少个tcp连接,(一个port number可以建立一个tcp连接),
这样攻击者就必须制造更多更大流量来冲击i810e,直到超过i810e的极限为止。
DDoS就是要用大流量来冲击服务器。流量整形和压缩有助于分担服务器负载,但简单地做连接代理在我看来不会有什么作用。
anthony 写到:
还有一个更有趣的特性,就是七层过滤,它可以分析数据包中的内容,看看有没有请求内容,如果没有的话,直接drop掉
FreeBSD内核内建了accept_filter(9)机制来实现这种功能。
anthony 写到:
现在大部分的ddos工具都是仅仅制造一个仅仅能完成tcp三次握手的包(无任何请求无内容)。
这种工具我们一般称为DoS工具。
anthony 写到:

这种方案目前是最有效的,但是是最昂贵的,一般都要几十万一台,如果攻击者只是偶尔有兴趣时找你玩玩,有点划不来。
一般这类设备最有用的是流量整形(将多个HTTP短连接请求重整为长连接)和压缩加速,当然,前提是设备不先被打死并且不把后面的服务器打死。
65535怎么来的?怎么看也看不懂么?
2^16=65536
2^32=4G
DDoS没有什么太好的办法,我只能说点我觉得还算管用的办法:
0. 改进应用。
攻击者不用做别的,只要找到你的网页刷的最慢的一页去发给几千个客户端,服务器立刻应声而倒。要做的第一件事情是让应用尽可能健壮。
1. 提高带宽/增加设备。
这个就不用说了,“抗”DDoS说白了就是拼带宽和处理能力。
2. 启用流量整形和负载分散的专用设备或服务器。
将来自用户的请求重整为长连接,将压缩/加密用专门的设备/服务器来处理,等等
在内核里面可以采取的防护措施能够解决很多问题,但很多DDoS表面上看并不是真正的攻击,就好比喊来1万人去一个小银行,每个人办理一笔小业务,那么别的人就别想干事了——解决方法是要么把喊人的人抓住,要么再多建一些营业窗口或者把人转到其他银行,而不是在银行门口增加警卫。
文章评论

共有 0 条评论