(计算机应用技术专业论文)网络层内容过滤防火墙系统的研究.pdf_第1页
(计算机应用技术专业论文)网络层内容过滤防火墙系统的研究.pdf_第2页
(计算机应用技术专业论文)网络层内容过滤防火墙系统的研究.pdf_第3页
(计算机应用技术专业论文)网络层内容过滤防火墙系统的研究.pdf_第4页
(计算机应用技术专业论文)网络层内容过滤防火墙系统的研究.pdf_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

网络层内容过滤防火墙系统的研究 摘要 随着i n t e r n e t 的快速发展,网络安全问题日益突出,防火墙技术成为保障网 络信息传输安全的有效手段。但传统的防火墙系统难以高效地过滤内容信息, 易成为整个网络的性能瓶颈。因此,如何提高内容过滤的效率成为国内外研究 的热点。 本文首先阐述防火墙的研究现状,深入研究了网络级和应用级防火墙的内 容过滤机制,在此基础上,提出一种基于排队论的防火墙时延分析方法。该方 法分别在网络级和应用级两个层面上,建立网络级和应用级防火墙的内容过滤 时延模型,并基于排队论,导出相应的时延计算公式,定量分析比较了这两类 防火墙进行内容过滤的时延特性。分析结果表明,网络级内容过滤防火墙时延 特性明显优于应用级防火墙,为设计网络层内容过滤防火墙系统提供理论参考 依据。 从内核代码级,分析l i n u x 防火墙框架n e t f i l t e r 的核心函数和数据结构,深 入探讨n e t f i l t e r 框架五个钩子点的实现原理和运行机制,设计并实现了网络层内 容过滤防火墙原型系统。该系统具有流分类、包过滤、网页内容过滤和日志管 理等功能,以及使用q t 开发工具编写的人机交互图形界面。 最后,搭建测试环境,对网络层内容过滤防火墙系统的功能和性能进行了 有效的测试。测试结果表明,该防火墙系统不仅能有效过滤内容信息,而且具 有很高的过滤效率。 关键词:分层过滤;内容过滤;时延分析;排队论 t h er e s e a r c ho fn e t w o r k - l a y e rc o n t e n tf i l t e r i n g f i r e w a l ls y s t e m a b s t r a c t w i t ht h er a p i dd e v e l o p m e n to fi n t e r n e t ,n e t w o r ks e c u r i t yi s s u e sa r eb e c o m i n g i n c r e a s i n g l yp r o m i n e n t t h e f i r e w a l l t e c h n i q u e i sa ne f f i c i e n tm e t h o df o r g u a r a n t e e i n gt h es e c u r i t yo fn e t w o r ki n f o r m a t i o n h o w e v e r ,t h et r a d i t i o n a lf i r e w a l l s y s t e mc a nn o tf i l t e rt h ec o n t e n to fn e t w o r ki n f o r m a t i o ne f f e c t i v e l y ,a n db e c o m e e a s i l yt h eb o t t l e n e c ko ft h ee n t i r en e t w o r kp e r f o r m a n c e t h e r e f o r e ,h o wt oi m p r o v e t h ee f f i c i e n c yo fc o n t e n tf i l t e r i n gb e c o m e sah o tr e s e a r c ha th o m ea n da b r o a d t h i sd i s s e r t a t i o ni n t r o d u c e st h ep r e s e n tr e s e a r c ho ft h ef i r e w a l lt e c h n i q u ea t f i r s t t h e no nab a s i so fa n a l y z i n gd e e p l yt h ei m p l e m e n t a t i o np r o c e s so fc o n t e n t f i l t e r i n gi nn e t w o r k - l a y e ra n da p p l i c a t i o n l a y e r ,w ep r o p o s eal a t e n c ya n a l y s i s m e t h o do ft h ef i r e w a l lw h i c hb a s e so nq u e u i n gt h e o r y t h i sm e t h o ds e t su p r e s p e c t i v e l yl a t e n c ym o d e l sf o rm u l t i - c o r en e t w o r k - l a y e rf i r e w a l l sa n dm u l t i - c o r e a p p l i c a t i o n - l a y e r f i r e w a l l s ,a n db a s e so nt h eq u e u i n gt h e o r y ,d e r i v e s t h e c o r r e s p o n d i n gl a t e n c yf o r m u l a s f o rc o n t e n tf i l t r a t i o n ,a n a l y z e sa n dc o m p a r e s q u a n t i t a t i v e l yl a t e n c yc h a r a c t e r i s t i c so ft h e s et w ot y p e so ff i r e w a l l s t h ea n a l y s i s r e s u l t si n d i c a t et h a tt h el a t e n c yc h a r a c t e r i s t i co ft h en e t w o r k - l a y e rf i r e w a l li sb e t t e r t h a nt h eo n eo ft h ea p p l i c a t i o n l a y e rf i r e w a l lo b v i o u s l yi nc o n t e n tf i l t r a t i o n i t p r o v i d e sat h e o r e t i c a lr e f e r e n c ef o rd e s i g n i n gt h en e t w o r k l a y e rc o n t e n tf i l t e r i n g f i r e w a l ls y s t e m s e c o n d l y ,w ea n a l y z ec o r ef u n c t i o n sa n dd a t as t r u c t u r e so ft h el i n u xf i r e w a l l f r a m e w o r k n e t f i l t e r ,a n ds t u d yd e e p l y t h e i m p l e m e n t a t i o np r i n c i p l e a n d o p e r a t i o n a lm e c h a n i s mo ft h ef i v e h o o kp o i n t s t h e nan e t w o r k - l a y e rc o n t e n t f i l t e r i n gf i r e w a l lp r o t o t y p es y s t e mi sd e s i g n e da n di m p l e m e n t e d t h es y s t e mh a s g l o wc l a s s i f i c a t i o n ,p a c k e tf i l t e r i n g ,w e bc o n t e n tf i l t e r i n ga n dl o gm a n a g e m e n t f u n c t i o n s ,a sw e l l a st h eh c i ( h u m a n c o m p u t e ri n t e r a c t i o n ) g r a p h i c a li n t e r f a c e w h i c hi sw r i t t e nw i t hq t f i n a l l y ,at e s te n v i r o n m e n ti ss e tu pt ot e s tf u n c t i o na n dp e r f o r m a n c eo ft h e c o n t e n tf i l t e r i n gf i r e w a l l t h et e s tr e s u l t ss h o wt h a tt h ef i r e w a l ls y s t e mc a nn o to n l y f i l t e rc o n t e n ti n f o r m a t i o ne f f e c t i v e l y ,b u ta l s oh a v eag o o de f f i c i e n c y k e y w o r d s :h i e r a r c h i c a lf i l t e r i n g ;c o n t e n tf i l t e r i n g ;l a t e n c ya n a l y s i s ;q u e u i n gt h e o r y 插图清单 图2 1 防火墙在网络中的位置4 图2 2 状态检测防火墙工作流程图7 图2 3 电路级网关工作原理示意图9 图2 4 典型的u t m 网关功能架构1 0 图3 1 网络级防火墙的排队模型1 3 图3 2 应用级防火墙的排队模型1 5 图3 3 时延d ( d ) 的曲线图1 7 图3 4 时延增长率d 曲线图1 7 图4 1n e t f i l t e r 在内核中的位置1 9 图4 3 网络层内容过滤防火墙的体系结构2 3 图4 4a c 有限状态自动机2 7 图4 5 网页内容过滤流程图2 8 图4 6 网络数据包与模式串的长度比例图2 9 图4 7n e t l i n k 的数据传输流程2 9 图4 8 流分类处理数据包的过程3 0 图4 9 防火墙的主界面3 2 图4 1 0 流分类规则配置界面3 3 图4 1 l 流分类配置规则显示界面3 3 图4 1 2 网页关键字配置界面3 4 图4 1 3 网页过滤日志显示界面3 4 图5 1w e b s t o n e 工作原理图3 5 图5 2 防火墙测试环境3 7 图5 3 包过滤日志3 8 图5 4 浏览器的显示结果3 9 图5 5 网页过滤日志3 9 图5 6 负载与响应时间的关系4 0 图5 7 网页大小与响应时间的关系4 1 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的 研究成果。据我所知,除了文中特别加以标志和致谢的地方外,论文中不包含 其他人已经发表或撰写过的研究成果,也不包含为获得盒8 巴王些太堂 或 其他教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所 做的任何贡献均已在论文中作了明确的说明并表示谢意。 靴澈储辨:嘲 辩醐驯啤 蛐 学位论文版权使用授权书 本学位论文作者完全了解 金目巴三些友堂有关保留、使用学位论文的规 定,有权保留并向国家有关部门或机构送交论文的复印件和磁盘,允许论文被 查阅或借阅。本人授权金g 墨王些太堂可以将学位论文的全部或部分论文内 容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇 编学位论文。 ( 保密的学位论文在解密后适用本授权书) 学位论文作者签名:蟊布埠 签字同期:w 细年¥月醒同l 学位论文作者毕业后去向: 工作单位: 通汛地址: 铷签名:11 锡翻导师签名:1 。乞嘶 o ) 的p o i s s o n 分布;顾 客所需服务时间相互独立且服从参数的负指数分布。则称该系统为m m n n 混合排队系统【30 1 。 定义3 2 :损失率p 是指已经到达但无法进入系统接受服务顾客数占到达 系统顾客数的比例。 定义3 3 :等待时间凡是指从顾客进入系统到开始接受服务的时间间隔; 服务时间瓦是指顾客被服务的时间,即顾客从开始接受服务到离开系统的时间 间隔:逗留时间r 是指顾客在系统中的等待时间与服务时间之和。 定理3 1 :假定9 ) 表示f 时刻系统中的顾客数,p 为服务强度,p ,表示系 统顾客数为,的概率,即系统队列长度为,的概率,令 p = 州n a ,p ,= l i m 尸 ( f ) = - , i - - o o 则对一切p ,有 p j2孚风, 吲q 而1 万( p 玎) 肋,胛, ( 3 1 ) 其中p o = 【荟 q 五i 妒行j j 十白n 而万i ( 册) f 】- 1 当系统中顾客数为n 时,系统位置被全部占满,新到的顾客就自动离开。 因此系统的损失率p 可由下式计算: p = 所= 未岛( 刖胁 1 2 ( 3 2 ) 3 2 网络级防火墙的排队模型及其时延计算公式 网络级防火墙的数据包内容过滤仅对当前正在通过的单一i p 分组的内容 进行分析和过滤,即其内容过滤单元为i p 分组。 假定系统中有k 缓存、n 个独立且并行工作的物理处理器;当k 缓存都被 i p 分组全部占用时,新到的i p 分组就被丢弃。当系统中有空余缓存时,新到的 i p 分组就进入系统排队服务,即系统是一个先来先服务( f c f s ) 的系统【圳;i p 分 组按平均到达率兄( o ) 的p o i s s o n 流到达【3 2 】,每个i p 分组所需的处理时间独立 且服从平均处理速率( o ) 的负指数分布:i p 分组的平均长度为;系统能容纳 的i p 分组数为;平衡时到达的i p 分组看到的队列长度为z 。 由上述假设得 n = 纠上+ 玎( 3 3 ) 拟i p 分组为“顾客”,基于m m n n 混合制排队系统,构造网络级防火 墙模型如图3 1 所示。 处理器过滤时间瓦 图3 1 网络级防火墙的排队模型 由图3 1 模型可知,当忽略i p 分组的调度时间和转发时延时,网络级防火 墙过滤i p 分组的时延d 等于i p 分组在缓存的平均等待时间巧与i p 分组过滤所 需时间瓦之和。下面是计算平均时延d 的推导过程。 当f 0 时,进入系统的i p 分组等待时间n 的分布函数凡( f ) 可用下式表示。 r ( ,) = 尸 乙,) 2 以乙= o ) + p o 乙,) 因为 瞩叫= 驴n - i 川帅分组进入徜= 艺3 = 0 堑等镒掣= 芸尚 p o o ) 的负指数分布,且应用级防火墙和网络级防火墙处理相同长度数据所需时间相 等;m 。为系统支持的最大t c p 并发连接数,7 为某个时刻的t c p 并发连接数, 正为i p 分组自到达系统至形成报文所需的平均时间;报文的平均长度为l ;系 统能容纳的报文数为。 根据上述假设可得: n = k l 。+ 刀 ( 3 6 ) 旯:二l ( 3 7 ) l l 、 胪彘 ( 3 8 ) 拟应用级报文为“顾客”,基于m m n n 混合排队系统,应用级防火墙对 应的排队模型如图3 2 所示。 由图3 2 模型可知,当忽略应用级报文的调度时间、应用数据处理之后的 转发时延时,i p 分组在系统中的平均时延d 可用下式表示: d = z ,+ l + z 7 :该i p 分组对应报文的重组时间 i :该i p 分组对应报文的平均等待时间 瓦。:该i p 分组对应报文过滤所需时间 1 4 缓存k处理器过滤时间瓦。 应用级报文重组时间吖 一竺! 卜 拆分戍用级 为i d 分组的 a ) 等待时间l 调度 冈一 q d i p 泊松到达 i p 分组 a 3 时问 q d rd t o o + 斗a ) q z 3 a 等待队列 调度 q dq d规则 一堪d i 铷i - 转发 o t o o 图3 2 应用级防火墙的排队模型 令到达的i p 分组均匀分布于7 个t c p 连接中,则正可表示为: z i - :半岳l 7 m 缸 ( 3 9 ) i p 分组重组成报文后,系统对报文的处理过程仍是一个m m n n 排队过程。 根据式( 3 7 ) 、( 3 8 ) 得,网络级防火墙的通信量强度与应用级一致,即 p = 旯玎= 州n h 。因此应用级报文平均等待时间亏可根据式( 3 4 ) 来计算: 可= 薯等南 n l o ) 又因c = 1 ,所以平均时延d 可表示为: 肚半互+ 艺丘孚卫+ 1 (311)2五 急n h 1 一佩“ 、 3 4 网络级防火墙与应用级防火墙的时延比较 3 4 1 参数设置 为了有效利用上述模型对网络级防火墙和应用级防火墙的时延进行定量分 析,现以过滤网页内容为例,对所需参数假设如下: ( 1 ) i p 分组的平均长度l = 4 4 5 b y t e s t 3 3 1 。 ( 2 ) 应用级报文( 即一个网页) 的平均长度三= 3 1 2 k l j 4 。 ( 3 ) 每个物理处理器以速度v = l m b s 过滤网页内容。 ( 4 ) k = 1 g b ,n = 1 2 。 ( 5 ) t c p 并发连接数y 随着i p 分组到达率五的增大而增加,即厂与2 - 成正比 关系,y = 觑( r 为常量) 。在实际应用中,网络运营商给每个用户都限制了带宽 和最大并发连接数,同时,单个t c p 连接所能达到的吞吐量总是小于可用带宽, 而使用多个并发t c p 连接能获得更高的t c p 吞吐量【”】。 ( 6 ) 每条t c p 连接以速度u = 1 0 0 k b s 传输数据。 3 4 2 时延定量分析 根据3 4 1 所假设得 :兰:堕:2 8 1 个i p 分组s 。 三4 4 5 b y t e s 将上,三- 、n 、k 分别代入式( 3 3 ) 、( 3 6 ) 、( 3 8 ) ,得 n = 2 8 0 9 0 0 n ,= 3 2 0 5 = 3 2 个应用级报文s 又因,:觑,且每个t c p 连接的传输数据速度为u = 1 0 0 k b s ,所以 r = 羞= 击= 盖叭= 靠允 进而根据式( 3 9 ) ,得 z - 3 1 2 k 4 4 5 b y t e s 旦旯:1 5 6 s 1 a 2 5 0 0 - 2 将上述具体参数分别代入式( 3 5 ) 、( 3 11 ) ,得p 与d 、d 的关系式( 3 1 2 ) 、 ( 3 1 3 ) 。 。:厶一-lj-12+1面(p12ypo+面11=12 1 22 8 1 1 p n 厶一 一2 8 l 1 2 - 1 t 2 8 0 9 0 0 邝2【击p12)f+西爿尹p12y】。1i=oj = 1 2 - - 脚= 面1 而( 加) 2 踟岛 铂+岩亟121刍i-12(9一12)jpo,j=12 1 232 p , v + 土3 2 - 1 一 ( 3 1 2 ) ( 3 1 3 ) 1 2 - tf3 2 0 5t jpb=【去。12)j+瓦杀co12y】。1i=01 = 1 2 - - 珊= 嘉p 1 2 ) 3 2 0 5 p o f l d _ 2 式( 3 1 2 ) 、( 3 1 3 ) 可得通信量强度p 与网络级防火墙时延d 、应用级防 火墙时延d 的曲线,如图3 3 所示。 1 6 不o p 图3 3 时延d ( d ) 的曲线图 令时延增长率d :竽( 或_ 0 d ) ,可得p 与时延增长率a d 的曲线,如图3 4 所 o oo p d o 2o p o 。6o 8l 口 图3 4 时延增长率r i d ) 曲线图 ( 1 ) 当通信量强度p 较小( 0 6 ) 时,应用级防火墙时延远大于网络级防火 墙的时延( 如图3 3 所示) ,网络级防火墙在0 0 0 3 s 0 0 0 4 s 之间,而应用级在 1 8 s 一2 o s 之间,两者相差两个数量级以上。事实上,当p 0 6 之后,应用级防火墙的时延增长率d 迅速增加,但网络级 防火墙在p o 9 5 之前的时延增长率变化非常缓慢( 如图3 4 所示) 。因此,在重 负载( 即p 在【0 6 ,0 9 5 1 之间) 情况下,网络级防火墙的时延效果要远比应用级 的好。 ( 3 ) 当p 接近1 时,网络级和应用级防火的时延都非常大,在2 0 s 以上。 此时,i p 分组( 应用级报文) 排队的队长迅速达到最大长度( 即等待队列已满) ,系 统处理数据的速度已无法满足当前通信强度的需求。 3 4 3 结论 由3 4 2 小节理论分析可知,在系统负载平衡( p 1 ) 的情况下,网络级内容 过滤防火墙的时延远小于应用级防火墙的时延。特别是在重负载的情况下,网 络级内容过滤防火墙的时延特性明显优于应用级防火墙。下面将从宏观方面对 这一结论进行进一步分析。 ( 1 ) 网络级防火墙工作在i s o 模型的网络层,过滤单元是i p 分组,而应用 级防火墙工作于应用层,其过滤单元为报文。i p 分组比报文小,故其内容过滤 所需时间少。 ( 2 ) i p 分组是网络能识别的合法且独立的传输单元,因此网络级防火墙时 延不受网络好坏的影响。但报文由属于同一t c p 连接的多个i p 分组组成。这些i p 分组到达的快慢,决定着报文重组时间大小,进而影响应用级防火墙的时延。 特别在网络不好时,滞留在缓存的i p 分组就成倍增加,时延也随之迅速增大。 ( 3 ) t c p 并发数的多少对应用级防火墙时延有较大影响,而网络级防火墙 时延却与其无关。在t c p 连接多的情况下,应用级防火墙不仅要消耗相当的缓存 来保存这些链接,而且要花一定的时间来调度每个i p 分组至各个t c p 链接中,从 而增大了其时延。 由上所述,在网络层上实现内容过滤有着应用层无以比拟的优越性,这为 我们设计和实现网络层内容过滤防火墙提供了理论参考依据。 3 5 本章小结 本章基于排队论,分别建立了网络级防火墙和应用级防火墙的数学模型, 并推导出相应的内容过滤时延计算公式,定量地分析并比较了这两类防火墙的 时延特性。分析结果表明:网络级内容过滤防火墙的时延远小于应用级防火墙 的时延。 第四章网络层内容过滤防火墙的设计与实现 时延分析理论表明:网络级内容过滤的时延远小于应用级。本章设计并实 现了网络层内容过滤防火墙原型系统,以便进一步验证理论分析的正确性。 4 1n e t f i i t e r 框架 l i n u x 内核包含了一个网络子系统一一n e m l t e r ,它为i p t a b l e s 内核防火墙 模块提供有状态或无状态的包过滤服务,如n a t 、i p 伪装等,也可以根据高级 路由或连接状态管理的需要而修改i p 头信息。n e t f i l t e r 不是防火墙的具体实现, 而是用于扩展网络服务的结构化底层框架,位于l i n u x 网络层和防火墙内核模 块之间,如图4 1 所示。 图4 1n e t f i l t e r 在内核中的位置 为了利用n e t f i l t e r 结构,l i n u x 在i p v 4 协议栈中定义了5 个挂载点,以便 开发者对网络数据包进行自定义操作。挂载点的位置如图4 2 所示。 图4 2i p v 4 中挂载点的实现位置 各个挂载点的作用对象和功能如表4 1 所示。 1 9 表4 1n e t f i l t e r 框架挂载点的作用对象和功能 挂载点名称 作用对象实现功能 n f i p p r e r o u t i n g 刚进网络层的数据包源地址转换 n f i p f o r w a r d 需要转发的i p 数据包 过滤转发包 n f i p p o s t r o u t i n g 设备发出的i p 数据包目的地址转换 n f i p l o c a l i n 发往本机的i p 数据包 过滤输入包 n f i p l o c a l o u t 本地发出的i p 数据包过滤输出包 通过n e t f i l t e r 框架提供的a p i ,可在挂载点注册定义的函数来控制网络数 据包p6 | 。n e t f i l t e r 定义了一个二维的链表头数组s t r u c tl i s th e a d n fh o o k s n p r o t o n fm a xh o o k s 来表示所有协议族的各个挂接点。一维 为协议族,二维为上面提到的各个调用入口。每个嵌入n e t f i l t e r 中的模块都可 以为多个协议族的多个挂载点注册多个钩子函数( h o o k ) ,这些钩子函数将形 成一条函数指针链,每当有数据包经过该钩子点时,都会依次启动所有这些函 数,从而实现内核模块对数据包的处理。 每个注册的钩子函数经过处理后都将返回下列值之一,告知n e t f i l t e r 核心 代码处理结果,以便对报文采取相应的动作: n fa c c e p t :继续传送数据包: n fd r o p :丢弃数据包; n fs t o l e n :由钩子函数处理了该数据包,不要再继续传送; n fq u e u e :将数据包入队,通常交由用户程序处理: n fr e p e a t :再次调用该钩子函数。 4 2 基于n e t f i l t e r 的防火墙内核模块开发 n e t f i l t e r 本身没有提供任何过滤报文的代码,它仅仅是一个用于扩展网络 服务的框架。基于该框架下的开发无须改动内核协议栈,只须对一个或多个挂 载点挂载内核模块。当数据包通过挂载点时,挂载点调用相应的内核模块对这 些数据包进行过滤或修改,并向n e t f i l t e r 返回预定义的返回值。下面是防火墙 内核模块的开发过程。 ( 1 ) 防火墙内核模块的编写【3 7 1 内核模块的基本结构是固定的。每个内核模块都必须有两个函数,一是模 块被加载时执行的初始化函数i n i tm o d u l e ( ) ,二是模块被卸载时执行的结束函 数c l e a n u pm o d u l e ( ) 。除这两个函数之外,防火墙内核模块还需通过 n fu n r e g i s t e r 函数才能挂载到 的钩子点上,其函数原型为;h o o k n e t f i l t e r i n tn fu n r e g i s t e r h o o k ( n f _ _ h o o k _ o p sn f h o ) ; 参数n f h o 的类型s t r u c tn fh o o k 定义如下:ops s t r u c tn fh o o ko p s 2 0 s t r u c tl i s t h e a dl i s t ; n f h o o k f i a 乖h o o k ; i n t p f ; i n th o o k n u m ; i n tp r i o r i t y ; ) ; 其中l i s t 一般为 n u l l ,n u l l ) ;h o o k 为用户定义的处理函数;p f 为协议 族,一般为p f i n e t ;h o o k n u m 是注册的钩子( h o o k ) 点;一个h o o k 点可 能挂多个处理函数,其执行的顺序p r i o r i t y 决定。如果p r i o r i t y 一样,则先注册 先执行。 防火墙内核模块开发的主要工作是开发h o o k 处理函数,在该函数中过滤数 据包。h o o k 处理函数原型为: u n s i g n e di n th o o k f u n c ( u n s i g n e di n th o o k n u m , s t r u c ts k b u f f s k b , c o n s ts t r u c tn e t d e v i c e 木i n , c o n s ts t r u c tn e t d e v i c e 奎o u t , i n t ( 事o k f n ) ( s t r u c ts k b u f f 幸) ) ; 其中h o o k n u m 为选择的h o o k 点;s k b 为l i n u x 网络协议栈中数据包处理 的基本单位;i n 为接收数据包的网络设备名;o u t 为发送数据包的网络设备: o k f n 为回调函数指针,当该h o o k 点的所有登记函数调用完后,转而执行此回 调函数。返回值如4 1 所述。 h o o k 函数写好之后,填充到s t r u c tn fh o o ko p s 结构的实例中,并用 n f _ u n r e g i s t e r _ h o o k 将其注册在指定的h o o k 上。 防火墙内核模块开发模板如下: s t r u c tn f _ h o o k _ o p sn f h o 幸用于注册处理函数的数据结构+ 宰注册的h o o k 函数的实现 u n s i g n e di n th o o k f u n c ( u n s i g n e di n th o o k n u m , s t r u c ts k b u f f s k b , c o n s ts t r u c tn e t d e v i c e 幸i n , c o n s ts t r u c tn e t d e v i c e o u t , i n t ( 幸o k f n ) ( s t r u c ts k b u f f 幸) ) 对数据包的处理过程 i n ti n i t _ m o d u l e o 宰初始化程序宰 宰填充我们的h o o k 数据结构 n f h o h o o k = h o o kf u n c ; 处理函数枣 n f h o h o o k n u m = n fi pp r er o u t i n g ;枣第一个h o ok 幸 n f h o p f = p fi n e t ;幸协议族 n f h o p r i o r i t y = n f i pp r if i r s t ;奉让函数首先执行 n f _ r e g i s t e r h o o k ( & n f h o ) ;宰注册处理函数枣 ) v o i dc l e a n u p m o d u l e ( ) 拿结束程序 n f _ u n r e g i s t e r h o o k ( & n f h o ) ;幸卸载处理函数奉 ) ( 2 ) 编译内核模块 编译时需要提供一个m a k e f i l e 来隐藏大量的复杂操作。本文内核模块的 m a k e f i l e 文件模板如下: m o d u l e n a m e := 牛木木 o b j m:= $ ( m o d u l e _ n a m e ) 0 k e r n e l d i r 7 = l i b m o d u l e s $ ( s h e l lu n a m e - r ) b u i l d p w d := $ ( s h e l lp w d ) a l l : $ ( m a k e ) - c $ ( k e r n e l d i r ) m = $ ( p w d ) c l e a n : r m f r 幸k o 拿o 掌e m d 编译后获得可加载的模块文件+ k o 。 ( 3 ) 内核模块的加载与卸载 模块文件事k o 生成之后,加载入l i n u x 内核中就会立即生效。如需停止 模块的运行,直接卸载便可。下面是加载、卸载模块的系统命令: i n s m o d :加载内核模块,例如s u d oi n s m o d k o 。如何内核里已有相 同的模块名,则加载不成功。 r m m o d :卸载内核模块,例如s u d or m m o d 木k o 。如果还有其他程序或 模块正在使用该模块,则卸载不成功。 4 3 网络层内容过滤防火墙设计 4 3 1 网络层内容过滤防火墙设计思路 由上述章节可知,应用级防火墙虽然可以进行内容过滤,但效率低,灵活 性差,极易成为整个网络的性能瓶颈。本文将从以下两个方面来提高内容过滤 防火墙的效率。 2 2 ( 1 ) 对流经防火墙的数据包进行流分类。数据包分类之后,根据分类标志 对数据包进行区别处理,避免对所有的进出网络数据包进行同一行为的检测, 进而提高防火墙的性能。 ( 2 ) 对流分类出来的数据包,直接在网络层上进行深度内容检测,而无需 再分析上层协议。 4 3 2 网络层内容过滤防火墙的体系结构 通过上文一系列的分析和探讨,我们得到很多借鉴和启发,提出了一个在 网络层上实现深度内容检测的网络内容安全解决方案,图4 3 给出了该方案的 体系结构。 规5 翟耸藿掀态规产。j 叫面 键 则 目志模块字 配_ 1 嘞合 配 置。p e 和i曩蒿置o r t! ! :! 不合- 网页内容过滤模块i - 法:l 一 聃恒匣蠢根据分恒圆圈i o u : 1 鎏坌鲞墨皇塾塑堡垫j 根据分赛1 苎竺垫壁塾鲨堡竺卜一 标志分流 一一+j 图4 3 网络层内容过滤防火墙的体系结构 如图4 3 所示,本网络层内容过滤防火墙系统由流分类及包过滤模块、内 容过滤模块、日志模块、用户界面等组成。 流分类及包过滤模块主要负责对数据包的分类,是所有模块的基础。其他 模块都是根据该模块分出来的标识符对数据包进行区别处理。另外,由于流分 类算法一般都是根据i p 包头的信息对数据包进行分类,为了避免重复提取i p 包头而降低该系统的效率,该模块还植入了包过滤功能。 内容过滤模块无疑是该系统的核心,它需要在网络层上获取和识别数据包 的内容信息,并对这些内容信息进行有效过滤。此外,它还需考虑仅对单一数 据包进行内容匹配所产生的漏检问题、网络层与应用层之间的通信问题等。 日志模块主要功能是接收并处理非法的数据包,并实时地将过滤信息写到 日志文件中供用户查询和分析。 用户界面是一个人机交互的图形界面。系统启动、规则配置、日志查询等 操作都可以直接在该界面下完成,操作起来非常方便。 其他模块包括状态过滤模块、邮件过滤模块、病毒过滤模块等单项功能检 测模块以及这些单项功能模块的组合模块。这些模块由项目组的其他成员完成。 2 3 4 4 内容过滤模块 4 4 1 网络层内容过滤思想 目前,内容过滤一般采用应用代理技术来实现。这种技术的实现过程是: 代理服务器首先将w e b 服务器发往客户端的数据包缓存,再通过i p 去碎片化 和t c p “重新组装”,以获得完整的内容信息,然后调用相应的内容过滤算法 对这些信息进行扫描匹配,对于没有出现非法关键字的内容信息,重新封装成 i p 分组正常转发,否则直接丢弃,不再传输。这个过程所带来的时延非常大, 很难达到实用的要求。 因此,本文采用一种流式( s t r e a m i n g ) 网页内容过滤方法,即在网络层上 根据非法关键字集合检测每个数据包的内容信息,以确定该包是否含有非法关 键字。对于出现非法关键字的数据包直接丢弃,否则立刻转发。 该方法过滤的是当前正在传输的单一数据包,等待时延较小,效率较高。 与包过滤方法仅仅过滤包头信息不同的是,它过滤数据包里的内容信息。包头 信息格式固定、易于提取,而内容信息编码多样化,不易识别,且单一的数据 包因缺乏全局性的内容信息而易产生漏检问题,这无疑给设计网络层内容过滤 防火墙增加了难度。 4 4 2 内容过滤的实现 4 4 2 1 过滤算法分析 本文采用时间复杂度较低的多模式匹配算法一一a c ( a h o c o r a s i c k ) 算法【9 】 来实现网页内容的过滤。a c 算法是基于f s a ( 有限状态自动机) 的,它利用模式 串的公共前缀来降低查询时间,其时间复杂度为o ( n ) ,n 为需匹配的文本串的 长度,与模式串的数目无关。 ( 1 ) a c 算法思想 在预处理阶段,将模式串集合建立一个确定性的树形有限状态自动机,即 将多模式匹配问题转化为单模式匹配问题。在匹配阶段,以文本串作为该有限 状态机的输入参数,通过对文本串的一次性扫描实现所有关键字的匹配。 ( 2 ) a c 算法的实现 构造有限状态自动机 有限状态自动机的基本思想是根据输入和当前的状态决定下一个状态和输 出,接着再进行下一次输入。其构造过程就是将模式串集合变换成由转向函数 g o t o ,失效函数f a i l u r e 和输出函数o u t p u t 所组成的树型有限状态自动机。这三 个函数的构造分两个阶段:一是构造g o t o 转向函数,二是计算失效函数f a i l u r e , 而输出函数o u t p u t 的构造贯穿于这两个阶段中。 阶段一:构造转向函数和输出函数 转向函数g o t o 指的是状态之间的转向关系。g o t o ( p r e ,x ) = n e x t 表示:状态 2 4 p r e 在输入一个字符x 后将转换为状态n e x t 。如果在模式串中不存在这样的转 换,则n e x t = f a i l s t a t e 。构造转向函数的过程其实就是将模式串集合构建成一种 搜索树一一t r i e 树( 3 8 j 的过程。 输出函数o u t p u t 指的是状态和模式串之间的一种关系,其作用是在匹配过 程中输出已经匹配的模式串。如o u t p u t ( i ) = p i ,表示当匹配过程到达状态i 时, 模式串p i 已被成功匹配。 具体的构造过程如下: 输入:关键字集合p = p i ,p 2 ,p k 输出:转向函数g o t o 和输出函数o u t p u t 方法:n e w s t a t e = o ; f o ra l las u c ht h a tg o t o ( o ,a ) = f a i l s t a t e g o t o ( o ,a ) = 0 ;初始化g o t o ( o ,a ) = o 函数,a 表示任何字母 f o ri = lu n t i lk e n t e r ( p i ) ;将所有模式串插入t r i e 树中 e n t e r ( a l a 2 a m ) 1 1 模式串插入函数 s t a t e = o ;j = l : w h i l eg o t o ( s t a t e ,a j ) f a i l s t a t e 沿着已有的路径查询 s t a t e 2 9 0 t o ( s t a t e ,a j ) ; j - j + 1 ; ) f o rp - - - ju n t i lm 拓展新路径 n e w s t a t e = n e w s t a t e + 1 ; g o t o ( s t a t e ,a p ) 2 n e w s t a t e ; s t a t e = n e w s t a t e ; o u t p u t ( s t a t e ) = a l a 2 a m ) ; 阶段二:构造失效函数和更新输出函数 失效函数f a i l u r e 指的也是状态和状态之间一种转向关系,用来指明当某个 模式与文本匹配不成功时,应

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论