网站大量收购独家精品文档,联系QQ:2885784924

基于Linux平台防止IP欺骗的SYN攻击防火墙的设计与实现.docVIP

基于Linux平台防止IP欺骗的SYN攻击防火墙的设计与实现.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Linux平台防止IP欺骗的SYN攻击防火墙的设计与实现   摘 要: 目前,SYN FLOOD攻击占70%~80%。IP欺骗是常用的方式,如何防止IP欺骗的SYN攻击成为研究热点。设计是以redhat 5.0 为平台,结合RED算法设计并实现一个抗SYN攻击的包过滤防火墙,该防火墙在轻度和中度攻击的情况下判断一个数据包的丢弃概率,当被丢弃则保存该数据包到哈希表中,主机等待客户机重传TCP连接请求,检测是否是真实性的IP地址,经过分析研究和实验的验证具有较好的吞吐量,同时正常数据包的通过率很高。当遭受的是重度攻击时,则直接采用的是RED中的随机丢弃数据包。   关键词: 防火墙; SYN攻击; RED算法; 哈希表   中图分类号: TN915.08?34 文献标识码: A 文章编号: 1004?373X(2014)09?0083?03   0 引 言   随着网络的发展,网络攻击的手段越来越多,其中以IP欺骗形式的SYN攻击所占的比例较大,众多的专家学者都致力于研究如何有效控制SYN攻击[1]。也提出了较多的方法,例如状态检测算法,该算法主要是利用TCP连接过程中的几个状态[2],判断是否是攻击性数据包,但是该算法存在一些缺陷,对每个数据包都要检测其状态,而且要保存较多的数据包信息,这对系统的吞吐量和内存都有较大的影响。因此,本实验防火墙致力于提高正常包的通过率,以及系统吞吐量。对于轻度和中度攻击时的系统性能有很大的提高。   1 系统相关知识   1.1 防火墙   防火墙是防止网络攻击的主要手段之一,目前的防火墙得到很大的发展,它防止外部网络对内部网络的攻击,一个防火墙的参考模型如图1所示。      图1 防火墙模型   1.2 RED算法   RED算法[3]利用当前队列的平均长度计算数据包的丢弃概率,如图2所示,具体由三个原则确定:   (1) 当平均队列长度[Lav]小于给定的数据包队列长度最小门限值minth时,数据包丢弃概率[P=0;]   (2) 当平均队列长度[Lav]大于给定的数据包队列长度最大门限值maxth时,数据包的丢弃概率[P=1;]   (3) 当平均队列长度在minth和maxth之间,数据包的丢弃概率在0~1之间。而且[P=max*][(Q-Min)(maxth-minth)。]      图2 数据包丢弃概率[P]和两个门限值的关系图   2 总体设计   因为IP欺骗形式的SYN攻击,是采用的伪造IP地址和端口,主机发送ACK数据包,攻击机器是不会做出回应的[4]。所以判断正常包就可以让客户机其超时重传,从而检测是否是真实IP。防火墙的设计主要是针对SYN请求数据包,利用RED算法计算当前的TCP连接请求数据包到来时的TCP缓冲区的平均队列长度[Q,]如果平均队列长度[Q]小于给定的最小队列门限值minth,则说明当前没有SYN攻击或者只有少数的SYN数据包,这种情况下不会影响本机性能,可以直接接收数据包。如果平均队列长度大于最大门限值maxth,说明当前遭受到较强的SYN攻击,则随机的丢弃数据包。如果平均队列长度在最小门限minth和最大门限值maxth之间,则计算当前数据包的随机丢弃概率[P,]如果[P]小于给定的阈值[Pm,]则接收数据包,如果[P]大于给定的阈值,则先到哈希表中查找是否存在相同数据包信息的元素(哈希表存放的是被丢弃的数据包的相关信息),如果找到则接收数据包到本机,如果没有找到则保存数据包相关信息到哈希表中,同时丢弃该数据包。总体设计如图3所示。   3 防火墙关键技术实现   3.1 包检测模块   采用RED算法实现对数据包的处理,判断进入到主机的TCP连接请求数据包的丢弃概率,首先要定义RED算法中用到的参数:   struct red_parms{   /* Parameters */   u32 limit; /*队列长度上限*/   u32 qth_min; /*算法需要的两个门限值*/   u32 qth_max;   u32 Rmask;   u32 Scell_max; /*最大空闲时间*/   unsigned char flags;   char Wlog; /*log(W)*/   char Plog; /*random number bits*/   char Scell_log;   u8 Stab[256];   unsigned long qave; /*平均队列长度*/   int qcount; /*上次丢弃分组后收到的分组个数*/   u32 qR; /*Cached random number*/   psched_time_t qidlest

文档评论(0)

小马过河 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档