(计算机软件与理论专业论文)linux防火墙设计与实现.pdf_第1页
(计算机软件与理论专业论文)linux防火墙设计与实现.pdf_第2页
(计算机软件与理论专业论文)linux防火墙设计与实现.pdf_第3页
(计算机软件与理论专业论文)linux防火墙设计与实现.pdf_第4页
(计算机软件与理论专业论文)linux防火墙设计与实现.pdf_第5页
已阅读5页,还剩78页未读 继续免费阅读

(计算机软件与理论专业论文)linux防火墙设计与实现.pdf.pdf 免费下载

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

文档简介

西南交通大学硕士研究生学位论文第l 页 摘要 在计算机网络技术飞速发展的今天,网络安全问题日益突出,防火墙技 术也越来越受到人们关注。在一些信息敏感场所,需要自行设计与开发符 合特定需求的防火墙系统。而l i n u x 提供了基于内核的n e t f i l t e r 框架, 具有通用性和可扩展性,使得开发人员可以结合不同的网络安全需求,设 计并实现所需的防火墙系统。 论文首先阐述了在l i n u xn e t f i l t e r 框架上构建防火墙的基本原理,接 着介绍了防火墙设计与实现中涉及的技术与理论基础,最后设计并实现了 一个拥有包过滤、防常见d o s 攻击、日志记录、事件通知、配置管理等功 能的高性能防火墙系统h i p f ( h i g hp e r f o r m a n c ef i r e w a l l ) 。h i p f 与传统 防火墙相比,具有以下特色: 1 、传统l i n u x 防火墙联动性较差,无法将内核态侦测到的事件通知用 户态进程。h i p f 实现了事件通知功能,防火墙在发现期望事件后,将消息 反馈给用户态进程,以达到应急、报警、联动的目的。 2 、传统l i n u x 防火墙缺乏对规则集的一致性诊断。规则集的非一致性 有可能降低防火墙的安全性。h i p f 提供对规则集的一致性诊断功能,提供 最优的规则移除步骤,使得规则集满足一致性。 3 、传统l i n u x 防火墙使用线性搜索算法实现数据包的分类,在庞大的 规则集与大流量的情况下分类速率很低。大多数状态防火墙使用h a s h 算法 实现高效分类,但是针对h a s h 算法缺陷的攻击会大大降低分类速率。h i p f 使用了基于计算几何的g e m ( g e o m e t r i ce f f i c i e n tm a t c h i n g ) 算法,实现了 在规则集庞大和高流量情况下,仍然保持极高的吞吐量。论文提出一种g e m 数据结构的构造算法,实验证明该构造算法具有时间与空间上的可行性。 论文介绍了测试环境的配置,开发了一个基于w i n p c a p 测试工具一 n e t t e s t ,该工具可以根据配置文件灵活的发送数据包,具有较稳定的发送 性能。最后使用n e t t e s t 测试g e m 与线性搜索算法的性能,测试证明g e m 算法具有较高的性能与实用价值。另外测试了事件通知功能,验证当防火 墙受到攻击时可以正确执行响应命令,实现报警、与其它系统联动等功能。 通过测试,证明了本防火墙达到了设计的目的。文中涉及的思路、设计 方法、算法对l i n u x 的防火墙开发有一定的参考价值。 关键字:l i n u x ;防火墙设计;一致性诊断;匹配算法 西南交通大学硕士研究生学位论文第1 i 页 a b s t r a c t n o w a d a y st h ec o m p u t e rn e t w o r kt e c h n o l o g yi sd e v e l o p i n gr a p i d l y , p e o p l e p a ym o r ea n dm o 佗a t t e n t i o nt of i r e w a l lt e c h n o l o g yw h i l et h en e t w o r ks e c u r i t y p r o b l e m sa r ei n c r e a s i n gp r o m i n e n t i ti sn e c e s s a r yt od e s i g na n dd e v e l o po u r o w nf i r e w a l ls y s t e mf o rs p e c i a lr e q u i r e m e n t si nt h es e n s i t i v ed e p a r t m e n t l i n u x p r o v i d e st h en e t f i l t e rf r a m e w o r kb a s e do nk e r n e lw i t hg e n e r i ca n ds c a l a b i l i t y f e a t u r e s t h ed e v e l o p e r sc a ni m p l e m e n tt h e i rf i r e w a l l s y s t e m sd e p e n d i n go n d i f f e r e n tn e t w o r k s e c u r i t yr e q u i r e m e n t s f i r s to fa l l , t h et h e o r yo fb u i l d i n gaf i r e w a l lb a s e do nl i n u xn e t f i l t e ri s p r e s e n t e di l lt h i st h e s i s t h e nt h et e c h n o l o g ya n dt h e o r yr e f e r r e di nd e s i g na n d i m p l e m e n t a t i o n o ft h ef i r e w a l li s i n t r o d u c e d f i n a l l y , t h ed e s i g n a n d i m p l e m e n t a t i o no fh i p f ( h i g hp e r f o r m a n c ef i r e w a l l ) w i t hf u n c t i o n so fp a c k e t f i l t e r i n g ,a n t i - d o s ( d e n i a l o fs e r v i c e ) a t t a c k s ,l o g g i n g , e v e n t n o t i f i c a t i o n , c o n f i g u r a t i o nm a n a g e m e n ta r ep r e s e n t e di nt h i st h e s i s h i p fh a st h ef o l l o w i n g f e a t u r e sc o m p a r e dw i t ht h et r a d i t i o n a lf i r e w a l l s : 1 t h et r a d i t i o n a ll i n u xf i r e w a l l sh a v el i t t l ea b i l i t yt oa s s o c i a t ew i t ho t h e r s y s t e m , i tc 柚t s e n dn o t i f i c a t i o nt o u s e r - s p a c ep r o c e s s e sf r o mk e r n e l - s p a c e p r o c e s s w h e n d e t e c t i n g e v e n t s t h ef u n c t i o no fe v e n tn o t i f i c a t i o ni s i m p l e m e n t e di nh i p eh i p fw i l ls e n dn o t i f i c a t i o nt ou s e r - s p a c ep r o c e s s e sw h i l e f m d m ge x p e c t e de v e n t st oa c h i e v ee m e r g e n c y , a l a r m , a s s o c i a t i o n 2 t h et r a d i t i o n a ll i n u xf i r e w a l l sh a v eal a c ko fd i a g n o s i s i n gc o n s i s t e n c yo f r u l es e t s t h es e c u r i t yo ff i r e w a l lm a yb er e d u c e db e c a u s eo fi n c o n s i t e n c yr u l e s e t s h i p fs u p p o r t sr u l ec o n s i s t e n c yd i a g n o s i sa n dp r o v i d e st h eb e s tp r o c e d u r e t or e m o v ec o n f l i c t i n gr u l e st om a k et h er u l es e tb ec o n s i s t e n t 3 t h ep a c k e t sa l ec l a s s i f i e di n e f f i c i e n t l yw h e nt h er u l es e th a sm a s sr u l e s a n df l o w su n d e rh e a v et r a f f i cb yl i n e a rs e a r c hi nt h et r a d i t i o n a ll i n u xf l r e w a l l s m o s tf i r e w a l l sm a k eu s eo fh a s ha l g o r i t h mt or e a l i z ef a s tc l a s s i f i c a t i o n b u t t h ea t t a c kt oh a s ha l g o r i t h mw i l lb r i n gt h ec l a s s i f i c a t i o nr a t ed o w n a p a c k e t c l a s s i f i c a t i o na l g o r i t h mn a m e dg e m ( g e o m e t r i ce f f i c i e n tm a t c h i n g ) b a s e do n c o m p u t a t i o n a lg e o m e t r yi si m p l e m e n t e di nh i p ft ok e e ph i g h t h r o u g h p u tu n d e r t h el o a do fm a s sr u l e sa n dh e a v yf l o w s ab u i l d i n ga l g o r i t h mf o rd a t as t r u c t u r e o fg e mi sp r o p o s e di nt h i st h e s i s ,t h et i m ea n ds p a c ec o m p l e x i t ya g ef e a s i b l e 西南交通大学硕士研究生学位论文第1 l i 页 t h r o u g ht h ee x p e r i m e n t s t h ec o n f i g u r a t i o no ft e s te n v i r o n m e n ti si n t r o d u c e di nt h i st h e s i s at e s tt o o l c a l l e dn e t t e s tb a s e d0 1 1w i n p c a pi sd e v e l o p e df o rt e s t i n g t h et o o lc a ns e n d p a c k e t sa c c o r d i n gt ot h ec o n f i gf i l e sf l e x i b l ya n di t ss e n d i n gp e r f o r m a n c ei s s t a b l e f i n a l l yt h eg e ms e a r c h i n ga l g o r i t h m sa n dt h el i n e a rs e a r c h i n ga l g o r i t h m a r et e s t e dw i t hn e t t e s t t h eg e mi sp r o v e dt oh a v eah i g h e rp e r f o r m a n c ea n d b e t t e rp r a c t i c a l i t y t h ef u n c t i o no fe v e n tn o t i f i c a t i o ni st e s t e dt ov e r i f yt h a tt h e f i r e w a l lw i l le x e c u t ec o r r e s p o n d i n gc o m m a n d sc o r r e c t l yt oa l a r mo rw o r kw i t h o t h e rs y s t e m su n d e ra t t a c k t e s tr e s u l t ss h o wt h a tt h ea n t i c i p a t i o no ft h ef i r e w a l lh a sb e e na c h i e v e d t h e i d e a s ,d e s i g nm e t h o d s ,a l g o r i t h m sm e n t i o n e di nt h i st h e s i s i sv a l u a b l ef o r d e v e l o p i n gf i r e w a l l so np l a t f o r mo fl i n u x k e y w o r d s :l i n u x ,f i r e w a l ld e s i g n , c o n s i s t e n c yd i a g n o s i s ,m a t c h i n ga l g o r i t h m 西南交通大学 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学 校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查 阅和借阅。本人授权西南交通大学可以将本论文的全部或部分内容编入有关 数据库进行检索,可以采用影印、缩印或扫描等复印手段保存和汇编本学位 论文。 本学位论文属于 1 保密口,在年解密后适用本授权书; 2 不保密彩使用本授权书。 ( 请在以上方框内打“) 学位论文作者聱属翘 日期:) n c l 坪 a 支日 ii 一i “1 指导老师签名:弓驴少厶、 日期:厶? 1 1 多惩必日 西南交通大学学位论文创新性声明 本人郑重声明:所呈交的学位论文,是在导师指导下独立进行研究工 作所得的成果。除文中已经注明引用的内容外,本论文不包含任何其他个 人或集体己经发表或撰写过的研究成果。对本文的研究做出贡献的个人和 集体,均已在文中作了明确的说明。本人完全意识到本声明的法律结果由 本人承担。 本学位论文的主要创新点如下: 1 、提出事件通知功能,通过向防火墙注册事件及响应命令,当事件发 生后,防火墙内核模块将主动通知用户态进程。用户态进程通过执 行响应命令,以达到应急、报警、联动的目的。 2 、提供对规则集文件进行一致性诊断的功能,并提出最佳解决方案。 3 、在数据包过滤方面,防火墙支持基于计算几何的g e m 报文分类算 法。论文提出了一种构造g e m 数据结构的算法,与搜索算法相结 合,极大的提高报文分类的效率。 盾哆 砷午牛绸 西南交通大学硕士研究生学位论文第1 页 第一章绪论帚一早珀下匕 1 1 课题背景与意义 随着计算机网络应用的日益广泛,企业和人们的日常生活对计算机网 络的依赖性越来越大。防火墙被用来保护计算机网络免受非授权人员的骚 扰与黑客的入侵,犹如一道护栏隔在被保护的内部网与不安全的非信任网 络之间。作为担任第一道安全防线的防火墙,正受到越来越多用户、企业、 安全人士的关注【1 1 。 1 2 防火墙技术发展现状 1 2 1 防火墙分类 防火墙技术从总体上可以分为:包过滤防火墙和应用代理两大类。包 过滤防火墙又可以分为简单包过滤和状态检测包过滤。应用代理又可以分 为:电路层网关和应用层网关【z l 。 简单包过滤防火墙是第一代防火墙技术,最早从c i s c o 的l o s 软件中 分离出来的,即对流经网络防火墙的所有数据包逐个检查。这类防火墙简 洁、速度快、费用低,并对用户透明。缺陷是由于只在i p 层检查,不深入 检测数据包的所有数据,对更高协议层的信息无理解力。 电路层网关代理技术是第二代防火墙技术,于1 9 8 9 年至1 9 9 0 年间由 美国电报公司贝尔实验室的d a v ep r e s o t t o 和h o w a r dt r i c k e y 提出。电路层 网关只是简单地中转用户目的服务器之间的连接,无法检查应用层的数据。 应用层网关代理技术是第三代防火墙技术,于1 9 9 0 年至1 9 9 1 年间由 美国电报公司贝尔实验室的b i l lc h e s w i c k 和m a r c u sr a n u m 在他们的论文中 第一次提到。代理防火墙可以深入检查每个连接的报文,可以做一些复杂 的访问控制。但是工作量大,效率低,而且也缺乏透明性。 状态包过滤技术又称动态包过滤,是第四代防火墙技术。1 9 9 2 年由u s c 信息科学院的b o bb r a d e n 开发了基于动态包过滤技术的防火墙,后来演变 为状态检测包过滤防火墙。目前的状态防火墙结合了n a t 防火墙,电路级 防火墙的代理防火墙的特性。这些防火墙最初过滤流量是基于报文特性, 就像报文过滤防火墙,同时也包括了用会话去检查被允许的特定会话。这 种防火墙通过检查应用层数据和使用特定的服务也实现了代理过滤的功 西南交通大学硕士研究生学位论文第2 页 能。最好的例子就是c i s c op i x 的应用检查能力,这种能力允许p i x 支持 f 】曙、s m t p 、h 3 2 3 和其它很多协议【3 1 。 1 2 2 当前l i n u x 防火墙发展状况 当前l i n u x 防火墙的开发主要基于n e t f i l t e r 框架。一般有两种开发方式, 分别是通过用户态的配置工具i p t a b l c s 配置n e t f i l t e r 与编写l k m ( l o a d a b l e k e r n e lm o d u l e ) 实现。因为n e t f i l t e r 本身就是一个功能完备的防火墙,所以 通过i p t a b l e s 配置n e t f i l t e r 能满足绝大多数情况下的要求。 文献【4 1 描述了一种基于l i n u x 内核与f p g a 的防火墙。该防火墙通过 驱动向f p g a 写入规则、更新路由表及n a t 表。同时使用了状态检测技术 及f p g a 的高速运算,使得防火墙达到了千兆级线速要求。 文献【5 】描述了一种数据包捕获之后的处理技术,即捕获到数据包后, 通过m y s q l 编程技术将过滤掉的数据包存入数据库。n e t f i l t e r l p t a b l e s 与 h i p f ( h i g hp e r f o r m a n c ef i r e w a l l ) 使用u l o g 方案,省去了编程的步骤。 文献【6 1 使用i x c h a r i o te n c p o i n t 测试n e t f i l t e r a p t a b l e s 与某商业防火墙的 性能,在百兆网络下随着规则数增大,n e t f i l t e r i p t a b l e s 性能表现突出,而 且占用c p u 等资源较少。 文献f 7 】使用编程的方式实现了s y nc o o k i e s ,使得l i n u x 防火墙能够抵 御一定流量下的s y n 泛洪攻击。该文并没有直接使用n e t f i l t e r i p t a b l e s 自带 的s y nc o o k i e s 模块的功能。事实上软防火墙抵御d d o s 攻击的能力有限。 文献8 】分析了b r t o t r e n t 的协议,通过n e t f l i t e r 的框架拦截b i t t 0 玎e m 数据包从而防止下载。该文突出的地方在于修改i p的结构,通过 编写实现与,扩展了e o n n t 的r a c 功k l k m m a t c h t a r g e tn e t f i l t e r i p t a b l e s 能。 文献1 9 】介绍了两种l i n u x 防火墙双机热备的方法,分别是通过h e a r t b e a t 和u c a r p 软件实现的功能。其中,使用h e a r t b e a t 实现双机热备测试显示 服务中断了5 秒。 文献f 1 0 1 介绍了l i n u x 下i p v 6 协议栈上的防火墙l p 6 t a b l e s n e t f i l t e r 6 。 该防火墙是通过内核已经实现的n e t f i l t e r 6 与用户态配置工具i p 6 t a b l e s 实现 的。该文一个特点就是通过编写w e b 服务实现防火墙的远程配置功能。 文献 1 q 介绍了使用c 语言为l i n u x 的i p c h a i n s 编写可视化规则配置界 面的方法。文献1 1 2 介绍一种基于w e b 的防火墙可视化配置方法,w e b 服 务器通过向防火墙后台的p e r l 解释器发送命令的方法配置防火墙。文献1 1 3 】 通过配置a p a c h 和编写p h p 页面实现w e b 方式配置j p c h a m s 。文献【1 4 】通 西南交通大学硕士研究生学位论文第3 页 过o td e s i g n e r 为n e t f i l t e r l p t a b l e s 设计图形配置界面,将命令生成为一个字 符串,最后通过s h e l l 脚本与s y s t e m 系统调用执行命令。h i p f 采用类似 n e t f i l t e f f l p t a b l e s 的方式使用命令行配置防火墙。 文献【1 5 】介绍了基于l i n u x 的智能内容过滤防火墙。该防火墙是基于 n e t f i l t e r 框架构建的,提供丰富的服务。但该防火墙仅使用设备驱动的方式 实现用户态与内核态通信,有一定弊端。 文献 1 6 1 介绍了在l i n u x 下将i d s ( i n t r u s i o nd c t e c t i o ns y s t e r a ) 系统与 基于n e t f i l t e r 的防火墙联动起来。 1 2 3 新型防火墙技术 新型的防火墙技术有深层检测防火期技术及流过滤技术【1 7 1 。 针对应用层攻击的特殊性和复杂性,n e t s c r e e n 公司成功地开发了一种 既发挥状态检测技术优势又整合主要入侵防护技术,并可以在周围实现应 用层攻击防护的新技术,称为深层检测技术。深层检测可以把多个数据报 关联到一个数据流中,在寻找攻击异常行为的同时,保持整个数据流的状 态。深层包检测要求以极高的速度分析、检测及重新组装应用流量,以避 免给应用带来延时【1 8 j 。 流过滤是东软集团提出的一个新型防火墙技术构架,在其产品中 n e t e y e 3 0 中实现1 1 9 】。它是融合了状态检测包过滤、深度检测和应用代理安 全性和优点为一体的全新的防火墙体系结构。 防火墙的发展方向之一就是高速化。从硬件使用的技术上看,目前市 场上存在分别基于x 8 6 架构的防火墙、n p ( 网络处理器) 、a s i c 专用集成电 路为构架的3 种防火墙【3 】。事实上,不仅是防火墙,很多中高端交换机、路 由器青睐a s i c 与n p 构架。 未来防火墙不仅朝高速发展,还朝模块化发展。企业可以根据需要定 制模块,安装到防火墙的机箱之内【捌。 1 3 主要研究内容 l i n u x 操作系统具有良好的网络性且开放源代码,在其上布置防火墙有 一个可靠的基石。l i n u x 遵循g p l 协议( 公共软件许可证) ,任何人可以得 到并且修改它的源代码,非常适于网络信息闸( 软路由或网关) 及防火墙 开发。l i n u x 内核自带的n e t f i l t e r 是一个十分优秀的防火墙框架。事实上, 不少公司的防火墙系统都是运行在一个裁剪的l i n u x 版本上或者使用l i n u x 西南交通大学硕士研究生学位论文第4 页 的功能子系统。本论文在结合最新的l i n u x2 6 内核的n e t f i l t e r 框架上,本 文主要做了以下工作: 1 ) 学习n e t f i l t e r 基本实现原理,防火墙基础知识等; 劲在n e t f i l t e r 上构建防火墙h i p f ( h i g hp e r f o r m a n c ef i r e w a l l ) ,实现 的功能有消息通信、事件通知、日志、防攻击、a c l 过滤等内容; 3 ) 研究了一个规则一致性诊断算法,通过使用不同的数据结构现实该 算法,并通过实验分析出了算法的瓶颈; 分析了一个基于计算几何的包分类算法g e m ( g e o m e t r i ce f f i c i e n t m a t c h i n g ) 。通过分析文献中的数据结构及搜索算法,不仅实现了 搜索算法,还实现了文献未涉及的构造算法( 构造数据结构) 。测 试证明,该算法使得h i p f 在1 0 0 0 0 条规则的负荷下,包过滤的速 率达7 0 0 0 0 p p s ( p a c k e tp e rs e c o n d ) 以上,极大提高了防火墙的性能。 5 ) 实现了h i p f 的配置管理。 国因测试需要,开发了n e t t e s t ,一个可以用于测试防火墙报文分类 算法的小程序。 注:本文中提到的“报文 严格意义上指代“数据包。 1 4 论文结构安排 整个论文分为五个部分: 第一章,绪论,介绍课题的选题、选题意义,相关技术研究现状,并 对本文的工作及结构安排进行概要介绍。 第二章,介绍了防火墙h i p f 开发的相关技术与理论基础。对于用到的 技术与算法都进行了分析,阐述了优缺点。 第三章,介绍了基于n e t f i l t e r 的防火墙h i p f 的开发过程。实现的功 能模块有消息通信模块、事件通知模块、防攻击模块、数据包过滤模块、 日志模块、规则一致性诊断模块、g e m 算法应用模块、配置管理模块。本 文分析了每个模块的详细设计并阐述了采取方案的理由。 第四章,对实现的防火墙进行测试。描述了测试的软硬件环境及正确 性验证原则。为了方便测试,开发了基于w i n p c a p 的n e t t e s t 测试工具并测 试了n e t t e s t 报文发送性能。最后使用n e t t e s t 测试了线性搜索算法与g e m 算法的正确性与性能。 总结,对论文所做的工作进行说明和总结,指出创新的地方与研究价值, 并对课题及相关技术的进一步研究提出建议。 西南交通大学硕士研究生学位论文第5 页 第二章防火墙的技术及理论基础 本章将介绍本防火墙使用到的理论与技术基础。技术基础包括防火墙 建立的框架基础n e t f i l t e r 、用户态与内核态消息交互技术,并分析了各种 技术的优缺点。理论基础主要有两个:基于图的规则一致性检查、报文分 类算法。 2 1 现有防火墙构建基础 目前防火墙可以被分为基于x 8 6 架构的软防火墙与基于n p a s i c 架构 的硬件防火墙两大阵营。h i p f 被定义为一款基于l i n u xn e t f il t e r 框架的 轻量级内核防火墙。所以,h i p f 是一种软防火墙,迄今为止,h i p f 只处理 网络层的数据报文。对于高层数据的处理可以采用文献 2 1 中提到的k m p 算法,在应用层进行关键字过滤。也可以使用l 7 - f i l t e r ,它可以识别如 h t t p 、f t p 等各种协议的数据包,从而进行过滤等操作【捌。 2 1 1 基于n e f fj lt e r 的防火墙解决方案 n c t f i h c r 是l m u x2 4 开始实现的防火墙框架,n c t f i h c r 比以前任何一版 l m u x 内核的防火墙子系统都要完善强大【1 1 。需要注意的是,从l i n u x2 6 开始,n c t f i k c r 结构和接口函数发生了较大的变化。 2 1 1 1 n e f f li t e r 框架的原理 i p v 4 协议为了实现对n c t f i h c r 框架的支持,i p 数据包在i p v 4 协议栈的 处理路径上,选择了5 个参考点。在这5 个参考点上,n e t f i l t e r 框架定义了 一系列钩子( h o o k ) 函数,这些钩子函数在数据包流过协议栈的几个关键点 时被调用。内核任何模块可以对每种协议的一个或多个钩子进行注册实现 挂接,当某个数据包被传给n c t f i h e r 框架时,内核能检测是否有任何模块 对该协议和钩子函数注册过。若有注册,则通过调用该模块注册时使用的 回调函数,这些模块就会有机会检查、修改该数据包、丢弃该数据包或者 将该数据包传入用户空间队列瞄j 。 n c t f i k c r 的框架如图2 1 所示: 西南交通大学硕士研究生学位论文第6 页 匿甲臣一万匾习 图2 1 t f ii t e r 框架图 图中的圆圈代表路由,方框代表钩子函数挂载点。 1 ) p r er o u t i n g :当防火墙收到一个数据包时,首先会调用 p r er o u t i n g 处注册的钩子函数。 2 ) l o c a li n :如果数据包的目的地址是本机,那么数据包会被传递 到l o c a li n 处注册的钩子函数。 3 ) f o r w a r d :如果数据包的目的地址不是本机,同时,发现存在通 往目的地址的路由,那么数据包将会传递到f o r w a r d 处注册的 钩子函数,否则数据包将被丢弃。 4 ) l o c a lo u t :当本地进程向外发送一个数据包时,数据包将会首 先通过l o c a lo u t 处的钩子函数。 5 ) p o s tr o u t i n g :当f o r w a r d 和l o c a lo u t 传递出来的数据 包经过路由之后,发现有通往目的地址的路由,数据包将被传递到 p o s tr o u t i n g 处注册的钩子函数。一般来说,p o s tr o u t i n g 与p r er o u t i n g 结合可以实现n a t 功能。 每一个钩子函数在处理完数据包可以有5 个返回值,这些返回值决定数 据包的命运,它们分别是: 1 ) n fa c c e p t :通知n e t f i l t e r 让数据包继续传递。 2 ) n fd r o p :通知n c t f i l t c r 将丢弃该数据包。 3 ) n fs t o l e n :通知n e t f i l t e r 忘记该数据包,不再继续传递。 4 ) n fq 唧e :将该数据包排队到用户空间去,由用户空间程序处理。 5 ) n fr e p e a t :继续在该钩子点进行规则匹配处理。 2 1 1 2 基于n e t l :i l t e r 防火墙实现方式 n e t f i l t e r 不仅仅是一个编程框架,更是一个已经实现内核态功能的防火 西南交通大学硕士研究生学位论文第7 页 墙模块。要实现基于n e t f i l t e r 的防火墙,目前有两种方式: 1 ) 一是使用用户态配置工具i p t a b l e s 直接配置内核态的n e t f i l t e x 。该方 法是目前实现l i n u x 防火墙较多的方式。从内核版本2 4 至2 6 , n e t f i l t e r i p t a b l e s 经受住了用户和时间的考验,得到了广泛的认可 【嬲l 。该方案在使用了3 张不同类型的规则表,分别是过滤表( i f i i t c o , 地址转换表( m 哪和数据处理表( m n g l c ) 2 9 1 。这3 张表被应用在以上 5 个钩子函数处,实现过滤、n a t 和数据修改的功能。 如果n c t f i l t e r 目前提供的功能不能满足用户要求,用户还可以通过 在h o o k 点上挂载自己的函数对过往的数据包进行处理。n e t f i l t e r 使用一个二维数组n fh o o k s n e r o t o n fm a xh o o k s 存储需 要调用的钩子函数。一维为协议族,目前协议族支持a fi n e t 及 a fi n e t 6 两类;二维是各个函数调用点入口,存储的是一个双向 链表指针。每个链表中的节点都是一个n fh o o ko p s 结构, n fh o o ko p s 实际存储了钩子函数的内容。 h i p f 采用第二种方式,通过注册钩子函数实现包过滤、防攻击等功能。 2 2 用户态与内核态数据交互方式 由于防火墙模块运行在内核态,而配置工具运行在用户态,所以必须解 决内核态与用户态数据交互问题。 一般地,在使用虚拟内存技术的多任务系统上,内核和应用进程有不同 的地址空间,因此,在内核和应用之间进行数据交换需要专门的机制来实 现。3 谳1 3 0 介绍了多种交互方式,例如内核启动参数、模块参数与s y s c t l 、 系统调用、n e t l i n k 、w o c f s 、字符设备文件和r e l a 心1 1 等多种数据交换方式。 下面重点介绍字符设备文件驱动与n e t l i n k 两种交互方式。 2 2 1 基于字符设备驱动与内核交互 字符设备驱动程序是l i n u x 系统最基本、最常用的驱动程序结构。设 备驱动程序实质上是一组完成不同任务的函数集合,通过这些函数所提供 的功能可以使得从设备接收输入和将输出送到设备像读写文件一样。用户 可以编写字符设备驱动为应用程序与内核之间提供交互渠道【3 到。 由于内核使用主次设备号来标识字符设备文件,而用户空间程序使用 文件名访问文件,这样用户空间必须先通过m k n o d 命令将设备文件名与主 次设备号关联起来,然后才可以读写设备文件。 西南交通大学硕士研究生学位论文第8 页 在l i n u x2 6 版本上,u d e v 是一个通用的内核设备管理器,它的主要功 能是管理d c v 目录下的设备节点。它以守护进程的方式运行于l i n u x 系统, 并监听在新设备初始化或设备从系统中移除时内核发出的u e v e n t 。我们可 以利用u d e v 在o e v 目录下动态生成设备文件,避免手工调用m k n o d 命令。 u d e v 中的类是一个设备的高层视图,它抽象了底层的实现细节,从而 允许用户空间使用设备所提供的功能,而不关心设备是如何连接和工作【3 扪。 使用字符设备驱动搭配u d e v 方式实现与内核的交互是较常见的方法。 2 2 2 基于n e t li n k 的方式与内核交互 n e t l i n k 全称是n c t l i n ks o c k e t ,它是一种可用于在内核态和用户态进程 之间进行数据传输的特殊i p c ( i n t e r - p r o c e s sc o m m u n i c a t i o n ) 。它为内核模块 提供一组特殊a p i ,并为用户程序提供了一组标准的s o c k e t 接口方式,实 现了一种全双工通讯连接。类似于t c 唧编程中使用a fi n e t 地址族一 样,n e t l i n k 使用地址族a fn e t l i n k 。内核头文件i n c l u d e l i n u x n e t l i n k h 中定义了很多已经实现的协议类型洲。 n e t l i n k 提供了一种异步的通讯方式。发送n e t l i n k 消息的系统调用在把 消息加入到接收者队列后会触发接收者处理函数,可以对任务进行响应。 n e t l i n k 支持多点传送,一个进程可以把消息传递一个n e t l i n k 组地址, 然后任意多个进程都可以监听那组地址。这种机制为消息的分发提供了一 种完美的解决方案【川。 系统调用和i o e t l 都属于单工方式的i p c ,如果内核有紧急消息要发送 给用户态进程时,直接使用这些i p c 是没有办法做到的。当然,应用程序 可以周期性的轮询内核以获得状态的改变,然而高频的轮询势必会增加系 统的负载。n e t l i n k 允许内核初始会话的方式解决了此问题,因此n e t l i n k 具 有双工特性。 n e t l i n ks o c k e t 最大的特点就是对中断过程的支持,n e t l i n k 通过软中断 调用用户事先指定的接收函刻3 5 j 。 西南交通大学硕士研究生学位论文第9 页 图2 - 2n e t l i n k 工作原理图 如图2 2 所示,n e t l i n k 使用软中断保证接收消息的实时性。 一般的短程任务可以在中断上下文中处理,但是处理长程任务时,中 断不能及时返回将影响系统调用的粒度。例如,h i p f 在执行g e m 的构造 算法时,可能需要长时间处理数据,如果不能及时返回的话后果不堪设想。 2 3 规则的一致性诊断算法 防火墙提供了建立网络安全的第一道防线。然而,防火墙的a c l 管;理却 面临着一些问题,在这些需要有效解决的问题当中,规则集的一致性问题就 是被研究的对象其中之一1 3 6 l 。规则集的错误配置将会降低网络的安全性。如 何发现和管理错误配置是个重要且复杂的问题1 3 7 1 。 文献【3 7 】演示了一个算法集用于管理那些冗余或被覆盖的规则。文i f i 定 3 8 】 提出了一种基于位向量的检测算法,对于集合的交集运算,使用位向量是一 种空间换时间的高效方式,但是需要预处理。文献【3 6 】展示了一个基于图的 一致性诊断算法。该算法在最差情况下使用简单的运算和较小的内存以实现 诊断功能,被认为是较大的改进。该文的作者使用j a v a 语言描述了算法的工 作过程,但是未对具体的数据结构进行详细描述。本节将介绍文献f 3 6 1 算法, 并采用c + + 对这两个算法进行详细的描述。 为了更好的理解算法,首先介绍一致性相关概念。 2 3 1 一致性相关概念 一般来说,规则间的关系可以归纳如下四种类型: 西南交通大学硕士研究生学位论文第1 0 页 覆盖( s h a d o w i n g ) :如果一条规则欲d e n y ( a c c e p t ) 的报文被它前面的一条 或多条规则a c c e p t ( d e n y ) ,称之为覆盖。覆盖通常是由不正确的配置引起的, 它被认为是一种“错误”。表3 - 1 中的r 2 将被r 1 覆盖。 泛化( g e n e r a l i z a t i o n ) :如果一条规则欲d e n y ( a c c e p t ) 的报文的子集被前面 的一条或多条规则a c c e p t ( d e n y ) ,称之泛化。泛化是覆盖的翻转,如果将前 后规则顺序置换,泛化也就成了覆盖。如果将表3 - 1 中的r 1 与r 2 互换位置, 那么r 】就是r 2 的泛化。 交叉( c o r r e l a t i o n ) :如果当前的规则的一些子属性( 规则条件域的分量) 是与前面的规则对应的子属性的子集,另一些子属性又是前面规则对应子 属性的超集,而他们的动作却不同,那么就称规则间交叉。在表3 1 中, 耻与r 5 是交叉( 又称相关、相交) 关系。 冗余( r e d u n a n c y ) :如果两条规则动作相同,如果一条规则的所有子属 性都是另一个条规则对应子属性的子集,那么就称这条规则是冗余的。在 表2 2 中,r 2 的所有子属性的集合都是r 3 子属性的子集,移除r 2 不会对整 个控制策略造成影响。 文献 3 9 1 认为覆盖是一种错误,而泛化和交叉仅是警告。本文认为虽然 有时候交叉能够给管理员配置规则列表带来方便,但在某种情况下相交将 带来很多麻烦,比如在应用几何算法解决报文分类问题时,算法并不是按 规则优先级顺序匹配报文,而是像在多维矩形群中定位一个点属于哪个矩 形,如果存在冲突,势必提高构造算法的复杂度。 但是,有一种情况除外,就是匹配任意报文的“s t e a l t hr u l e 【加】,i p t a b l e s 可以通过设定p o h c y 为a c c e p t 或d r o p 避免使用s t e a l t hr u l e 。 非一致性的定义可以被

温馨提示

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

评论

0/150

提交评论