• 6690阅读
  • 0回复

【原创】dosnipe系列抗ddos防火墙 [复制链接]

上一主题 下一主题
离线dosnipe
 

只看楼主 倒序阅读 楼主  发表于: 2005-10-09
【上海遐迩网络】

我们的选择每一步都是深思熟虑的:
硬件架构部分:
我们采取了工业计算机(工控机),可以承受恶劣的运行环境,稳定性非常好.
操作系统核心部分:
我们研究了FreeBSD,OpenBSD,Linux,NetBSD等诸多OpenSouce的OS的核心代码以及其防火墙机制.
如:IPFW,IPFW2,Ipfilter,Netfilter,PF..
权衡了各个因素(如:bridge性能,中断机制,POLLing等等),再三研究,最后决定采用FreeBSD的核心,
然后取众家之所长.事实上,测试结果表明:
FreeBSD官方的申明绝非吹嘘之言:
FreeBSD offers advanced networking, performance, security and compatibility features today
which are still missing in other operating systems, even some of the best commercial ones.
有兴趣的朋友可以自行测试看看.或者跟我公司联系,索取测试方法,和一系列针对性优化的文档
心算法部分:
我们不是采用单一的SYNPROXY,SYNCOOKIES,或者所谓的等待重传机制.他们各自都有自己的优缺点.
我们研究了所有的传统防火墙的算法,也是取众家之所长,并且研发出了属于自己的专利算法:
单向一次性非法数据包识别方法
我们所有的Filter机制都是在挂在驱动级的.
至于说详细的原理,我大概提及一下:
我们采用了一系列的验证机制而形成的一套有机的体制,任何一项单一的机制都有其弊端
譬如说指纹验证等等.
业:我们的防火墙只做抗DDOS,
效率和通用是一对双刃剑,也是一对矛盾,在通用和效率面前,我们选择了后者

智能化防御系统,无需任何烦琐操作:自动识别所有主机,按协议类型给出流量报表
自动防护所有攻击,按攻击类型给出流量报表
自动调整核心参数,按优先级别给出用户接口
自动升级核心模块,按升级时间给出日志报表
测试目标:真实的得出本防火墙的各种性能数据

测试型号:DOSNIPE110

测试环境:LAN内、100M交换环境,测试所用报文皆为64字节大小的SYN报文

发包器配置

名称IP地址操作系统配置

发包器1192.168.1.111LINUX 2.6.12双X2.4/1G/36scsi
发包器2192.168.1.112LINUX 2.6.12双X2.8/2G/36scsi
发包器3192.168.1.113FreeBSD 4.10单P4 3.0/512M/80
发包器4192.168.1.114FreeBSD 4.10单P4 2.4/512M/80
网管控制台192.168.1.254Winodws 2kIbm r50e Notebook
受保护机器192.168.1.193FreeBSD 4.10P3 1.0G/128M/40G
交换机无DCS3926S(百M)

测试结果

SYN发送量连接丢失率新连接成功率Ping值
5288.89KB/s0%100%Minimum = 0ms, Maximum = 0ms, Average = 0ms
6599.29 KB/s0%100%Minimum = 0ms, Maximum = 0ms, Average = 0ms
8019.22 KB/s0%100%Minimum = 0ms, Maximum = 0ms, Average = 0ms
9500.22 KB/s1%99%Minimum = 1ms, Maximum = 6ms, Average = 4ms(此时发包交换机已经丢包,到达其物理极限)

注:4台发包器向192.168.1.193同时发起攻击,监控机器ping 192.168.1.193以确立其连通情况。
根据严格的算法,百M线速=148100pps左右, 换算成KB的话,也就是等于:148100*64/1024=9256.25左右.所以,上海遐迩网络作为直接的防火墙研发的专业机构,在此提醒广大用户,不要被一些纯粹的销售商 慌称的”可以防护30万个包”而欺骗,一切结论必须要建立在科学的依据上

附:

发包器部分代码:

tcp=(struct tcphdr *)(buffer +sizeof(struct ip));
tcp->dest=addr->sin_port;
tcp->ack_seq=0;
tcp->doff=5;
tcp->syn=1;
tcp->check=0;

while(1)
{

ip->ip_src.s_addr=random();
tcp->source=htons(random());
tcp->check=check_sum((unsigned short *)tcp,sizeof(struct tcphdr));
sendto(sockfd,buffer,head_len,0,addr,sizeof(struct sockaddr_in)); }

事实上,目前的很多案例来看,在我们的防火墙没有到极限的时候,上层的router已经开始丢包了.
99.99%的客户面临的不是流量的问题,流量不是真正的杀手.ddos攻击种类中,要以synflood最为典型,它之所以能够如此嚣张,就是因为他的半开式的"以小搏大"的优势以及socket raw的编程方式导致"socket的各个位可以任意填充"而使得追踪攻击源很麻烦的原因.
我们可以做出承诺:
假如说你有100M的带宽,这个时候有90M的攻击流量进来,那么,你的机柜我可以说基本不受影响,事实上,进来的往往都是syn等握手过程中的包.同时由于我们的防火墙的机制是单向不反追的算法,那么尽管有90M的攻击流量,你仍然可以正常使用下载服务.对流出的流量没有任何限制.


相关文档下载地址:http://www.sharesec.com/down.html

咨询电话: 021-58211660 / 021-58513931
  技术支持 QQ:56000204 / 453270817
  24小时技术咨询电话:13122444520 / 13122877082
  MSN: xiyang@sharesec.com / tonypys@sharesec.com
快速回复
限100 字节
 
上一个 下一个