(计算机应用技术专业论文)linux下vpn网关及其网络管理系统的研究与实现.pdf_第1页
(计算机应用技术专业论文)linux下vpn网关及其网络管理系统的研究与实现.pdf_第2页
(计算机应用技术专业论文)linux下vpn网关及其网络管理系统的研究与实现.pdf_第3页
(计算机应用技术专业论文)linux下vpn网关及其网络管理系统的研究与实现.pdf_第4页
(计算机应用技术专业论文)linux下vpn网关及其网络管理系统的研究与实现.pdf_第5页
已阅读5页,还剩55页未读 继续免费阅读

(计算机应用技术专业论文)linux下vpn网关及其网络管理系统的研究与实现.pdf.pdf 免费下载

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

文档简介

中文摘要 中文摘要 i n t e m e t 提供的互联性和开放性使信息的交换与共享成为现实,为社会带来 了巨大的利益。同时,i n t e m e t 也为黑客和计算机犯罪提供了可乘之机。保护网 络安全、保证信息安全成为人们日益关注的核心问题。因此作为一种网络安全设 备,v p n 网关被广泛的应用。而随着越来越多的v p n 网关被部署到网络中,人 们对于一个快速、易用的v p n 网络管理系统的需求也目益增加。 科学技术的发展应当满足人们生产生活的需要,所以我们针对这种需求提出 开发一个v p n 网关和与之配套的网络管理系统。本文首先介绍了一些v p n 网关 及其网络管理系统的背景知识,然后分为两部分分别介绍了v p n 网关的实现过 程和网络管理系统的设计。我们选择具有开放源代码的l i n u x 系统作为v p n 网 关的实现平台即操作系统,利用l i n u x 系统自身对于口包的处理过程来进行v p n 处理。网管系统则应用目前流行的b s 结构,应用j 2 e e 中间件技术来实现。随 后,在理论实现与设计的基础上,应用实际的网络环境进行了测试实验。通过分 析试验结果,找出了v p n 网关中存在的问题。最后,对我们的工作进行了总结 并提出了下一步工作的方向。 通过我们的工作,我们首先实现了一个运行在l i n t l x 系统上的v p n 网关, 这就为今后研究开发运行于嵌入式操作系统上的v p n 网关提供了一个很好的基 砸,因为可以将l i n u x 内核进行裁减。其次,我们设计了一个网络管理系统,应 用这个系统现有的框架今后只要进行少量的修改就可以对其他的网络设备以至 于任何有网络连接的设备、终端进行远程管理。具有一定的通用性。 关键字:l i n u x ,v p n ,i p s e c ,网络管理系统 a b s t r a c t a b s t r a c t i n f o r m a t i o ne x c h a n g i n ga n ds h a r i n gb e c o m em u c he a r l i e rw i t ht h er a p i d l y p r o g r e s so fi n t e r a c t o nt h eo t h e rh a n d ,i n t e r a c ta l s og i v e sag r e a tc h a n c et oh a c k e r a n dn e t w o r kc r i m i n a l n e t w o r ka n di n f o r m a t i o ns e c u r i t yp r o t e c t i o nb e c o m e saf o c u s v p ng a t e w a yw a sw i d e l yu s e da sn e t w o r ks e c u r i t ye q u i p m e n t s i n c em o r ea n dm o r e v p n g a t e w a y sa r ed e p l o y e dt oi u t e r n e t ,aq u i c ka n ds i m p l en m s i sa l s on e e d e d t h ed e v e l o p m e n to fs c i e n c ea n dt e c h n o l o g ys h o u l dm e e tt h er e q u i r e m e n tf o r p e o p l el i v i n ga n dw o r k t om e e tt h er e q u i r e m e n ti nt h ea b o v ep a r a g r a p h ,w ed e c i d et o d e v e l o pav p ng a t e w a ya n dac o r r e s p o n d i n gn e t w o r km a n a g e m e n ts y s t e m i nt h i s t h e s i s ,w ef i r s ti n t r o d u c et h et e c h n o l o g y , w h i c hi su s e di nt h ev p ng a t e w a ya n dn m s t h e nw eu s et w os e c t i o n se x p l a i nt h ei m p l e m e n t a t i o no ft h ev p ng a t e w a ya n dt h e d e s i g no ft h en m s w ec h o o s et h eo p e ns o u r c eo s l i n u xa st h eo so ft h ev p n g a t e w a ya n dl e v e r a g et h el i n u xi pp a c k a g ep r o c e s sm e c h a n i s mt oi m p l e m e n tv p n f o rt h en m s ,w eu s ej 2 e ef r a m e w o r kf o rb - si n f r a s t r u c t u r e o nt h eb a s i so ft h e t h e o r yi m p l e m e n t a t i o na n dd e s i g n ,w eu s et h er e a ln e t w o r ke n v i r o n m e n tt ot e s to u r s y s t e m i nt h el a s ts e c t i o n w eg i v es o m ea d v i c ea b o u t 1 r m e rr e s e a r c hb a s e do no u r t e s tr e s u l t w i t ho u rw o r k ,w ef i r s ti m 【p l e m e n tal i n u xv p n g a t e w a yw h i c h i sag o o db a s e o f t h ee m b e d d e do sv p n g a t e w a y a n dw ea l s od e s i g nan m s w ec a nm a n a g eo t h e r n e t w o r ke q u i p m e n t sb yd ol i t t l em o d i f yt ot h ec u r r e n tn m s k e y w o r d s :l i n u x ,v p n ( v i r t u a lp r i v a t en e t w o r k ) ,i p s e c ( i ps e c u r i t y ) ,n m s m e t w o r km a n a g e m e n ts y s t e m ) 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作和取得的研究成果, 除了文中特别加以标注和致谢之处外,论文中不包含其他人已经发表或撰写过的研究成果, 也不包含为获得苤鲞盘芏或其他教育机构的学位或证书而使用过的材料。与我一同t 作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。 学位论文作者签名签字日期: j 叩f 年;2 - - , e l 彦日 学位论文版权使用授权书 本学位论文作者完全了解苤鲞盘茔有关保留、使用学位论文的规定。特授权 苤鎏! 盘堂可以将学位论文的全部或部分内容编入有关数据库进行检索,并采用影印、缩 印或扫描等复制手段保存、汇编以供查阅和借阅。同意学校向国家有关部门或机构送交论文 的复印件和磁盘。 ( 保密的学位论文在解密后适用本授权说明) 学位论文作者签名: 故障管理:接受故障报告以及自动发现网络的故障,经过特定的程序解决故 障,将所有网络设备的故障相互联系起来,对故障进行隔离并采取恢复措施; 配置管理:提供跟踪变化的能力,为网络上的所有设备配置、安装和分配软 件; 性能管理:提供一个连续的、可从中监视网络性能和资源位置的功能: 服务级别管理:在用户与服务提供者之间定义服务级别协议,并检查用户所 要求的服务是否被满足。 通常,网管系统主要是由管理者( s e r v e r ) 和管理代理( a g e n t ) 两种实体组 成。网络管理员通过管理者与管理代理之间的交互通信而达到对网络进行管理的 目的。为了保证管理者与管理代理之间能正确地交换管理信息,需对管理信息做 出定义和在两者之间达成一致协议。前者即是管理对象,有时简称为对象;后者 就是网管协议。 1 3 国内外的研究现状 s o n i c w a l l 公司开发的s o n i c w a l l v p n 使用数据加密和公共互联网,在站 点和拨号用户之间提供经济的、高性能的安全通讯,而无需租用专用线路。通过 结合s o n i c w a l l 强大的验证功能,可向已验证的远程用户提供网络资源,保证 正确的用户访问正确的资源。而s o r t i c w a l lg l o b a lm a n a g e m e n ts y s t e m ( s o n i c w a l lg m s ) 则是与之对应的网络管理系统,它使分散的企业和服务提供 商能够从中心位置管理和监视上百个s o n i c w a l l v p n 互联网安全设备。 国外其他的同类产品还有c i s e op i x 及其网络管理系统,h p 的o p e nv i e w 网 络管理系统等等。由于国外产品的同类研究起步比较早,所以在功能、可靠性等 各方面比较完善,但价格却十分昂贵,一般的中小企业无力购买。 国内同类产品的研究起步较晚,但是由于起点较高并且通过对国外产品的借 鉴发展很快。目前,国内同类的产品主要有华为公司开发的q u i d w a y 系列设备 第一章绪论 以及由华为3 c o m 开发的q u i d v i e w 网管软件中的v p nm a n a g e r 进行v p n 业务 的管理。但由于q u i d w a y 系列设备的主要功能并不是v p n ,所以如果只是用来 实现v p n 的话,性价比不是很高。 除此以外,国内也有一些公司在开发v p n 设备如华盾、冰峰和创明等,但 都没有与之相应的网管系统并且市场占有量很小。至于网管系统则有神褂 数码的 l i n k m a n a g e r 网管软件以及u t s t a r c o m 的n e t m a n 2 0 2 0 网络管理系统等等,但是 这些网络管理系统又不是专门针对v p n 设备进行来管理的。所以国内的产品总 的来说还不能提供完整的能令人比较满意的解决方案。 值得注意的是我国台湾省在这方面的产品很全面而且档次较高。像合勤的 z y w a l l 系列和d l i n k 的d i 系列的产品线都很丰富能满足不同客户群的需求。 并且像国外的厂商一样他们也在积极开发与其v p n 设备配套的网络管理系统, 像合勤的v a n t a g ec n m 网管系统已经在欧洲开始发售。 1 4 本系统的应用前景 由于我们的研究在能力、资金和规模等各方面的限制,所以我们开发的产品 在功能上不可能与国外的产品甚至于国内的产品进行竞争。但是我们的优势在于 低成本,所以我们可以锁定我们的客户群在低端中小企业或s o h o 一族,从而 避开与其他产品的竞争。当然即使是这样,还需要进一步的研究和工作,从各个 方面提高我们的产品,应该说我们还有很长的一段路要走,有很多的工作要做。 但是没有关系,我们现在只是一个开端,我们只要朝着正确的方向前进并不断地 进行积累,相信会取得成功。 1 s 论文的主要工作 本文首先对与论文内容相关的l i n u x 内核机制进行了分析研究,提出了在 l i n u x 下实现i p s e c 的基本思路? 然后又详细地讲述了在l i n u x 下实现i p s e c 型 v p n 网关的具体流程,以及各个模块的算法描述并具体的用代码加以实现。关 于网管系统,首先针对v p n 网关的网络管理系统提出了总体构想,包括应用何 种体系结构,应用何种技术框架。然后以此为基础,对各个功能模块进行了设计 和算法描述。实践是检验真理的唯一标准。因此我们又采用真实的网络环境进行 了试验。在本文的最后,根据试验结果有提出了改进意见以及今后进一步工作的 方向。 第二章l i n u xfv p n 网关的设计与实现 第二章l i n u x 下v i p n 网关的设计与实现 实现v p n 有多种方法,我们在绪论中已有所阐述。鉴于i p s e c 协议是最重 要的隧道协议,并且作为网络层的安全标准,i p s e c 一经提出,就引起计算机网 络界的注意,几乎世界上所有的计算机公司都宣布支持这个标准,并且不断推出 自己的产品,所以我们也采用i p s e c 来在l i n u x 下实现我们的v p n 网关。下面 我们就具体介绍在l i n u x 下如何实现i p s e cv p n 网关。 2 1 设计日标 2 1 1 设计原则 系统要完整实现i p s e c 协议族,完全支持v p n 的要求; 系统一定要建立在安全性完全由我们自己控制的内核操作系统之上; 系统要确保自身的安全、协议的安全和信息通道的安全: 系统的设计与实现要采用先进的软件技术和开发方法: 2 1 2 硬件系统规格 c p u :i m e lp 41 8 g 内存:5 1 2 m 硬盘:8 0 g 网卡:1 0 0 m 全双工( 两块) 2 1 , 3 软件系统规格 操作系统:r e d h a t9 0 内核版本:2 4 2 0 罐 2 2 晚在l i n m t 下的实现 2 2 1 实现思路 i p s e c 协议文档提供了三种实现模型: 与1 p 协议栈整合。该模型需要对操作系统的i p 协议栈源代码进行修改。 实现效率高。 堆栈中的块( b i t s ) :i p s e c 协议模块作为“楔子”插入到网络层和数据 链路层中间。该模型不需要修改操作系统内核。实现效率较低。 线中的块( b i t w ) :用硬件来实施i p s e c 协议。实现效率最高。 因为l i n u x 具有开放内核源代码的特性,并考虑到实现的效率问题,我们采 6 第二章l i n u x 下v p n 网关的设计与实现 用第一种模型在l i n u x 操作系统中实现i p s e c 协议。我们将利用l i n u x 操作系统 所提供的n e t f i l t e r 机制,通过改造l i n u x 的i p 协议栈源代码,使得i p 协议与 i p s e c 协议实现完全整合。 2 2 2l i n u xn e t f d t e r 机制介绍 n e t f i l t e r 是l i n u x 2 4 内核实现数据包过滤数据包处理n a t 等功能的抽象、 通用化的框架。n e t f i l t e r 框架包含以下三部分: 1 为每种网络协议( i p v 4 、1 p v 6 等) 定义一套钩子函数( i p v 4 定义了5 个钩子函 数) ,这些钩子函数在数据报流过协议栈的几个关键点被调用。在这几个点中, 协议栈将把数据报及钩子函数标号作为参数调用n e t f i l t e r 框架。 2 内核的任何模块可以对每种协议的一个或多个钩子进行注册,实现挂接,这 样当某个数据包被传递给n e t _ f i l t e r 框架时,内核能检测是否有任何模块对该 协议和钩子函数进行了注册。若注册了,则调用该模块的注册时使用的回调 函数,这样这些模块就有机会检查( 可能还会修改) 该数据包、丢弃该数据包 及指示n e f f i l t e r 将该数据包传入用户空间的队列。 3 那些排队的数据包是被传递给用户空间的异步地进行处理。一个用户进程能 检查数据包,修改数据包,甚至可以重新将该数据包通过离开内核的同一个 钩子函数中注入到内核中。 图2 - t :n e t f i l e r 机制中h o o k 点位置示意图 i p 层的五个h o o k 点的位置如图2 1 所示:0 p v 4 ) 1 n fi pp r er o u t i n g :刚刚进入网络层的数据包通过此点( 刚刚进行完版 本号、校验和等检测) ,源地址转换在此点进行; 2 n fi pl o c a li n :经路由查找后,送往本机的通过此检查点,i n p u t 包过 滤在此点进行; 7 第二章l i n u x 下v p n 网关的设计与实现 3 n fi pf o r w a r d :要转发的包通过此检测点,转发包过滤在此点进行; 4 n fi pp o s tr o u t i n g :所有马上便要通过网络设备出去的包通过此检测 点,内置的目的地址转换功能( 包括地址伪装) 在此点进行; 5 n fi pl o c a lo u t :本机进程发出的包通过此检测点,o u t p u t 包过滤在 此点进行。 4 】 2 2 3i p s e c 网关对口包的处理过程 t 辘聪控收赴理传转j 未发送娃璋 陆输堪+ 芭特包处 + i v s 删4 住进入址避 1 本过i p 位妊网! 商找s 库 誊班外出毡 i p _ b _ 瑚一s m i ! 1 p i m j i x m l l 1r 辁蠢s 状淼、煎播窗| 期l 弧谭 | 拥辩l 1 1 生存船 利用l l o o k 点;l o 【1 l ,l 、 “m , i p 酷由 搬姑s i 挂行妊珲 授据s a 进f j 娃爱 , 1 l p 鲫c 蒯= 琏 r1 按破s a 状拳,翁措宙 辩龠| l 认诳j 木帆埘l p 乜处理 刺凄o n k 点: 门、生存期 ij1 划n “。“m7 f 爵 b 魁八包 、芝: 一7 釜山鲫住 鸯拽s a 厚 一厂石i 。一 转发娃埋 f j p 一如r w a 州j 审 审烈尝然, t 进凡,筑略鞲蠢拽 p s 眦毡斡舣娃蠖卜( 外出) 最略瘁_ 蠹拉 莉刷”帅- 点: w w 一附儿、t :小书毡 处理 进 i l 崖籁姓理 疑堪处理 ( i p r r 、 l p s r r 仳让群 fj 虐捌接f f 私动物坶茫f 1 ( 捌丰,物理j 叠f jf 厝卡j墟粒接r j 翟础 箍喧数捌般础拉收数据始动麓送数据麓迷数据 j l 路腱j 链5 层接收处琏链垮曩垃送处理 图2 - 2 :i p s e c 网关对l p 包的接收、转发和发送处理示意图 第二章l i n u x 下v p n 网关的设计与实现 i p s e c 网关对i p 报文的接收、转发和发送处理的整个过程如图2 2 所示。当 网关的网卡接收的数据报时,通过中断触发内核的中断处理程序,将网卡接收的 数据报传送到内核空间,然后再通过p 层预处理程序将数据报转换为i p 包。此 时,我们将利用内核的n e t f i l t e r 机制提供的h o o k 点p r er o u t i n g ,将i p 包 传送到i p s e c 进入策略处理模块。该模块将决定哪些包可以进入安全网关,哪些 包需要丢弃。对于允许进入网关的i p 包,将送回到路由处理模块。路由处理根 据口头决定i p 包是发送到本机还是继续转发。 对于发送到本机的i p 包,首先经过内核对i p 包的处理,如:分片重组、选 项处理等等。然后利用h o o k 点l o c a li n ,将重组的i p 包传送到i p s e c 进入 处理模块。i p s e c 进入处理模块将对i p s e c 包和非i p s e c 包进行区分,对于发往 本机的非i p s e c 包将直接传送到传输层处理模块;对于i p s e e 包将进行认证或解 密等i p s e c 处理,并剥去i p s e c 头。处理完后,将重新组装成i p 包发回到i p 层 预处理模块。这样该i p 包将重新通过路由来决定发往何处。 对于转发的i p 包,首先进行转发处理,如:决定下一跳、减少1 v r l 、对某 些特殊情况发送i c m p 包。然后,利用h o o k 点i pf o r w a r d ,将i p 包传送 到外出i p s e c 外出处理模块。i p s e c 处理将根据策略区分i p s e c 包、非1 p s e c 包以 及包发往何处。对于i p s e c 包将丢弃。对于发往内部网的非i p s e c 包,直接将包 传送给发送处理模块,发往内部网。对于发往外部网的i p 包,将根据策略进行 认证或加密等i p s e c 处理,然后重新发回到路由处理模块,最后将处理过的i p 包传送到发送处理模块。 对于从网关传输层发送的报文,首先进行本地的i p 包处理,构建i p 包。然 后对i p 包进行路由,决定i p 包的出口。路由之后将利用h o o k 点 l o c a lo u t p u t ,将i p 包传送到i p s e c 外出处理模块。i p s e c 外出处理将根据 策略决定哪些包需要进行i p s e c 处理。对于不需要处理的i p 包,直接传送到发 送处理模块。对于需要进行i p s e c 处理的i p 包,将根据策略进行认证或加密等 i p s e c 处理,然后将i p s e c 包重新发回到路由处理模块,决定i p s e c 包将发往何 处。当再次经过h o o k 点时,i p s e c 外出处理将通过策略将处理过的i p 包直接 传送到发送处理模块。发送处理模块将进行分片等处理,最后将包发送到网卡。 2 2 4i l l ? s e e 网关中各功能模块之间关系 9 第二章l i n u x 下v p n 网关的设计与实现 配置飘务嚣 用户空问:粤用最序 _ ! :一,j ! :一 l 黧篡麓算1 k 动e 杏d n 泣c m 入o 。 l 手二i = 注入接ull;拳遘箍 翮岛# 是娄:繁荨li 安全毓喀嗥l| 户群序 魁黼、率计li 安全毓喀嗥l| ”忖 砸辩出瑁l 啦接l j 壹窀策略 梭 s a d 管璞 p 靳c 进a 管j 鹫 a l l 娃瑗 e r i ,鲑理 i p s c c 抖出管理 安全笑联库 a 处理 e s i 处理 认证、加密算法 算j 害摩 接设备霹动 镀鼎层 图2 3 :l p s e c 网关各功能模块关系不意图 各功能模块之间的关系如图2 3 所示。安全策略库存放了由用户或系统管理 员所制定的策略,策略将决定通讯的双方是否采用i p s e c 处理,以及决定采用何 种i p s e c 协议、模式、算法和嵌套需求。安全关联库由一系列安全关联项组成。 安全关联是两个通讯实体经过协商建立起来的一种协定。它们决定了用来保护数 据包安全所需的各种参数:序号计数器:抗重播窗口;a h 验证算法及其密钥; e s p 加密、认证算法、密钥;安全关联的生存期;1 p s e c 协议模式。算法库存放 了多种可选的认证和加密算法,在处理时将通过安全关联中的算法项来指明所需 要使用的算法。面向应用的接口提供了管理安全策略库,以及配置网关,处理日 志、统计、审计信息的接口。用户或系统管理员可通过配置服务器关联全策略库, 还可以进行手工注入安全关联或者启动i k e 动态协商安全关联,以及对日志、 统计、配置、审计信息的提取和处理。 2 3 各个模块详细设计 2 3 1 处理模块功能说明及算法描述 2 3 1 1n e t f i l t e r 钩子函数 o 第二章l i n u x 下v p n 网关的设计与实现 1 功能说明: 利用l i n u x 提供的n e t f i l t e r 框架,并在n e t f i l t e r 框架提供的h o o k 点上注册 并实现i p s e c 相关处理函数,使得i p s e c 处理能加入到i p 包接收或发送处理过程 的适当位置。 2 算法描述: l i n u x 内核的n e t f i l t e r 框架在i p v 4 中提供了5 个h o o k 点( 图2 1 ) ,在每 个h o o k 点上都可以通过一个注册函数n fr e g i s t e r _ h o o k ( s t r u c tn f _ h o o k _ o p s * r e g ) 将自己实现的处理函数挂接到h o o k 点上。这样在每一次h o o k 点被激活时, 都将查询并执行该h o o k 点所注册的处理函数。然后在处理结束时返回相关的 信息来决定被处理的包是丢弃、拒绝,还是继续进行h o o k 点后面的处理。 因此我们的工作便是生成个s t r u c tn fh o o ko p s 结构的实例( 结构如下) : s t r u c tn f _ h o o k _ o p s s t r u c tl i s t _ h e a dl i s t ; n f _ h o o k f n + h o o k ; i n t p f ; i mh o o k n u m ; i m p r i o r i t y ; ; 并将该结构中的一个相关处理函数n fh o o k f n ( 定义如下) 实现为我们所需 的相关i p s e c 处理函数: u n s i g n e di mn f _ h o o k f n ( 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 l l 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 + ) ) ; 并用n f _ r e g i s t e r _ h o o k 将该实例注册到由h o o k n u m 所指定的h o o k 点上。这 样,当h o o k n u m 指定的h o o k 点被激活时( 如在i p _ r c v q b i 鬟j :n f _ h o o k ( p f _ i n e t , n f i p p r er o u t i n gs k b ,d e v , n u l l ,i pr c v _ f i n i s h ) ) ,将根据p r i o r i t y 所指定的 优先级,依次执行在该h o o k 点注册的函数,因此我们所实现的相关i p s e c 处 理函数将得到执行。 n e t f i l t e r 还提供了一系列返回信息( 如下) : n fa c c e p t 继续正常传输数据报 第二章l i n u x 下v p n 网关的设计与实现 n fd r o p 丢弃该数据报,不再传输 n f _ s t o l e n 模块接管该数据报,不要继续传输该数据报 n f _ q u e u e 对该数据报进行排队( 通常用于将数据报给用户空间的进程 进行处理) n fr e p e a t 再次调用该钩子函数 在处理结束后将通过返回信息来决定被处理的数据报在h o o k 点之后应该 怎样处理。 2 3 1 2 进入i p 层预处理 1 功能说明: 从网卡传来的数据报在进入i p 层处理之前先进行一些检查,并在此时激活 第一个h o o k 点:n f i p - p r e _ r o u t i n g ,对进入本机的包进行进入前预处理。 我们实现的1 p s e c 进入策略处理模块也在此时通过h o o k 点被调用执行。 2 算法描述: 该模块首先对传入的i p 包进行必要的检查: 1 ) 通过包类型标志p k t _ t y p e 检查i p 包是否是其他机器 ( p a c k e to t h e r h o s t ) 的,如果是就丢弃。 2 ) 检查i p 包的长度是否合法。 3 1 检查i p 版本。 4 ) 检查校样和。 最后激活h o o k 点:n f _ h o o k ( p f _ i n e t , n f - i pp r er o u t i n g , s k b ,d e v , n u l l ,i p _ r c v _ f i n i s h ) 。然后将依次调用在该h o o k 点上注册处理函数,其中包 括我们实现的i p s e c 进入策略处理模块。 2 3 1 3i p s e c 进入策略处理 1 功能说明: 该模块将根据i p 报文的相关信息构造选择符。然后通过选择符查询进入安 全策略库,找到第一个匹配项( 策略) 。再根据策略对i p 包进行策略检查和处理: 1 ) 对于外部网的进入包 d r o p :( 增强型包过滤) 不允许某些外部网的包进入;不允许某些外部网的 不加密包进入;不允许某些网应该加密却未加密的包进入;不允许某些外部网的 加密包进入。 r e j e c t :类似于d r o p ,不过要对i c m p 包进行特殊处理。 a c c c p h 对某些外部网的不加密包或加密包允许通过,对已经经过i p s e c 处 理的包( 用于i p s e e 嵌套的情况) 允许通过。 2 ) 对于内部网的进入包 1 2 第二章l i n u x 下v p n 网关的设计与实现 d r o p :对某些内部网机器的i p 包不允许通过 a c c e p t :允许内部网的i p 包通过 最后对于通过的包,传回到i p继续处理_ r c v f i n i s h 2 算法描述: 1 ) 从i p 包中提取源目的i p 地址、源目的端1 :3 、下一层协议等信息。 2 ) 根据这些提取的信息查询进入安全策略库,找到匹配的策略项。 3 ) 根据策略项所指定的策略进行处理: 丢弃:返回n fd r o p ,n e t f i l t e r 机制将丢弃该数据包,不再传输。并将该 事件记录到日志中。 拒绝:返回n fs t o l e n ,n e t f i l t e r 机制将接管该数据包,不再继续传输。 并将该事件记录到日志中。 接收:返回n fa c c e p t ,n e t f i l t e r 机制将正常传输该数据包:将该包传送 给i pr c vf m i s h 。其中对于i p s e c 包需要作上标记( 利用标记变量n m a s k ) , 表明该包需要在以后进行i p s e c 处理。 2 3 1 4i p 路由 1 功能说明: 根据i p 包的源地址、目的地址和服务类型( t o s ) 等信息查找路由表,找到 该i p 包对应的路由项,并记录该项。在路由项中指出了i p 包接下来该如何处理: 对于本地i p 包,将交给本机的i p 处理模块i p;对于非本机接收包,_ l o c a l d e l i v e r 适合转发的将交给转发处理模块i p,其他情况将作特殊处理。forward 2 算法描述: 1 ) 将从i p 包中提取的源地址、目的地址和服务类型值,通过适当的散列算 法产生散列值。 2 ) 根据散列值在路由缓存散列表中查找散列位置 3 ) 迸一步根据源地址、目的地址、输入接口、服务类型在散列链中找到正 确的路由项。 4 ) 根据路由项中指定的输入处理函数,调用适当的函数:对于本地i p 包调 用i rl o c a ld e l i v e r ;对于其他i p 包调用i rf o r w a r d 。 2 3 1 5 本机对l p 包处理 1 功能说明: 对经过路由传送来的i p 包,首先检查是否存在分片。如果存在分片,必须 缓存i p 分片包。等所有的分片到齐时,进行分片重组处理,将分片合成完整的 i p 报文。然后激活h o o k 点:n fi pl o c a li n ,对进入i p 包进行相关处理。 我们实现的i p s e c 进入处理模块也在此时调用。 第二章l i n u x 下v p n 网关的设计与实现 2 算法描述: 1 ) 检查i p 包的3 位标志字段,当i p 包片偏量( f r a g _ o 母第1 4 位( i p _ m f ) 为1 时,表示该i p 包有后继分片。这时将进行分片重组处理i p _ d e f i a g 。 2 ) 分片重组处理: 根据分片包的1 6 位标识、源地址、目的地址、协议字段计算分片包 的散列值。 根据散列值,定位该包在分片链中的位置。 如果有分片链,说明已有其他分片到达。将该分片插入到对应的分 片队列中。 检查该分片是否是最后一个分片,分片是否都到齐了。如果都满足, 则将分片重组为一个完整的i p 包。 返回新的i p 包。 3 ) 激活h o o k 点:n f _ h o o k ( p f _ r n e t , n f i p l o c a l i n ,s k b ,s k b 一 d e v , n u l l 。i el o c a ld e l i v e r 。然后将依次调用在该 点上注册处_fmish)hook 理函数,其中包括我们实现的i p s e c 包进入处理模块。 2 3 1 6i p s 卵包进入处理 1 功能说明: 首先检查n m a s k 标记,判断该l p 包是否是一个i p s e c 包。如果不是,则将 利用返回值n fa c c e p t ,继续正常传输该数据报到i p。如_ l o c a l d e l i v e r f i n i s h 果是,则将进行i p s e c 进入处理,并在处理完后通过虚拟接口调用i p将ip_rcv 包传送回进入i p 包预处理模块,此时应该返回n fd r o p ,使该包不再向上传输。 i p s e c 进入处理首先将从i p 包中提取目的地址、下一协议、安全参数索引 ( s p i ) 信息,并根据这些信息查找安全关联库( s a d ) ,找到对应的唯一的一个 s a 。然后根据找到的s a 进行:s a 状态处理、s a 生存期处理、重播窗口处理、 模式处理、相关i p s e c 协议处理( a h 或e s p ) 。当处理完一个s a 后,必须要标 记处理过的s a ( 用于后期的进入策略匹配) ,并检查是否存在s a 串( 即多个 s a ) 。如果有,则循环处理s a 串,直到遇到传输层协议头或者非本机的i p 头( 表 明s a 串上的所有s a 都处理完毕) 。 最后根据处理过的i p 包的相关信息查找安全策略库( s p d ) ,找到该i p 包 所对应的进入策略( 该策略应该与发送端的外出策略是相同的) 。然后检查该策 略所指定的s a 串是否与处理过并标记的s a 串相同,从而判断是否进行了所要 求的i p s e c 处理。如果不相同,则丢弃该i p 包,并进行日志记录。 2 算法描述: 1 ) 检查n m a s k 标记( 该标记在进入策略处理时被设置上) 。如果不是i p s e c 4 第二章l i n u x 下v p n 嗣关的设计与实现 包,返回n fa c c e p t :如果是,继续进行i p s e c 进入处理。 2 1 提取i p 头中的目的地址、下一协议,通过下一协议字段信息,提取i p s e c 头中的安全参数索引( s p i ) 信息。 3 ) 根据 = 元组查找安全关联库( s a d ) 。如果没找到对应 的s a ( 或s a 串) ,则将该i p 包丢弃,并记录日志信息;如果找到了对 应的s a ( 或s a 串) ,则将根据s a ( 或s a 串) 对i p s e c 包进行下面的 处理。 4 ) 检查s a 的状态:对于幼稚( s a d bs a s t a t e 和死亡_larval) ( s a d b 5 1 检查s a 的生存期。生存期分为以下几种:字节数、包数、使用时间、 增加时间,并且对于每种生存期还有软硬之分。如果是硬生存期过期 了,则将激活i k e 模块动态协商一个新的s a ,将过期的s a ( 或s a 束) 删除,并将i p 包丢弃,并记录日志信息:如果是软生存期过期了,同样 要激活i k e 模块动态协商一个新的s a ,但此时并不删除s a ( 或s a 束) , 而是将s a 的状态标记为正在死亡( s a d bs a s t a t ed y i n g ) 。而且不 丢弃该数据包,继续进行处理。 6 1 检查重播窗1 :3 :检查时将判断到达的i p s e c 包的序列号是否小于该网关 所记录的处理过的最大i p s e c 包的序列号。如果小,则再检查序号的差 值是否超过了窗口的大小。如果没有超过,则检查窗口,判断该1 p s e c 包是否已经到达过,如果已经到达过,则将该包丢弃;如果没到达,则 接收。如果到达的i p s e c 包的序列号大于处理过的最大序列号,则接收, 并继续处理。 7 ) 根据s a 指定的i p s e c 协议( a h 或e s p ) 、算法和密钥进行认证或( 和) 解密处理。 8 1 更新重播窗口:此时检查如果被处理的i p s e c 包的序列号大于网关处理 过的最大序列号,并且序号的差值小于窗口大小,则更新窗口,标记该 到达并处理过的包。最后将网关处理的最大序列号更新为该被处理i p s e c 包的序列号。 9 、更新s a 的生存期:字节数、包数、使用时间。 1o ) 记录下该s a 信息,以便与以后进行进入策略检查。 1 1 ) 提取i p s e c 头指出的下一协议:如果还是i p s e c 协议,说明有多个s a ( s a 串) 对该数据包进行了处理,则需要利用原i p 头和处理过的数据区组成 新的i p 包,进行循环处理;如果是i p 协议,说明s a ( 或s a 串) 已经 处理完毕,则需要根据内部的i p 头信息组建新的i p 包,并跳出循环进 第二章l i n u x 下v p n 网关的设计与实现 入后继的处理。 1 2 ) 进行进入策略匹配:根据新的i p 包信息( 源地址目的地址、源端口 目的端口、协议) 查找安全策略库( s p d ) ,找到该包所对应的第一个进 入处理策略( 可能匹配多个) 。检查该策略所指定的s a ( 或s a 串) 即 其应用的顺序是否与1 0 中记录过的s a ( 或s a 串) 以及顺序相同。如 果相同,则说明满足进入策略允许该数据报进入安全网关;如果不相同, 则将再次查找策略库( 遍历策略库) ,直到匹配成功。如果最后还没有找 到正确的进入策略,则将丢弃该数据报,并记录日志信息。 1 3 ) 最后通过虚拟接口调用i p 包预处理模块( i pr o y ) ,重新对新生成的i p 包进行处理。 1 4 ) 返回n fd r o p ,说明i p 包不从该h o o k 点返回。 2 3 1 7 转发处理 1 功能说明- 对于非本地的i p 包,需要将它进行转发。转发处理首先要检查i p 头的t t l 字段不能小于1 ,否则将向该i p 包的发送者发送i c m p 超时差错包。减小1 v r l 值。接下来提取该i p 包的路由信息( 在转发前已经记录) ,根据路由信息获得该 i p 包的外出设备。然后根据外出设备的m t u 和i p 头的分片标志,判断允许分 片,如果需要分片且不允许分片( d f 位设置为1 ) ,则发送 i c m pd e s tu n r e a c h 目的不可达1 c m p 报文。最后激活h o o k 点: i pf o r w a r d ,对转发i p 包进行相关处理。我们实现的i p s e c 外出处理模块也 在此时调用。 2 算法描述: 1 1 检查i p 头的t t l 字段:如果小于1 ,则向该t p 包的发送者发送i c m p 2 1 3 ) 4 1 生存期超时差错包,丢弃该包 减少该i p 包的1 v r l 值。 提取转发前记录的路由信息,找到外出设备。 根据外出设备的m t u 和i p 头的分片标志,判断允许分片,如果需要分 片且不允许分片( d f 位设置为1 ) ,则发送1 c m pd e s tu n r e a c h 目 的不可达i c m p 报文。 激活h o o k 点:n fh o o k ( p f ,_inet,nf i pf o r w a r ds k bs k b d e v , d e v 2 ,i pf o r w a r df i n i s h ) ;调用我们实现的i p s e c 外出处理模块 2 3 1 8 本地i p 包处理 1 功能说明: 对于本地传输层( t c p u d p ) 产生的包,首先将其组装成i p 包,然后进 第二章l i n u x 下v p n 网关的设计与实现 行路由,最后包激活h o o k 点5 :n fi pl o c a lo u t 。在这个h o o k 点上将 调用我们实现的i p s e c 外出处理模块。 2 算法描述: 1 ) 查找路由 2 ) 填充i p 头,组装i p 包 3 1 激活h o o k 点5 :n fi pl o c a lo u t , 对于t c p :n fh o o k 口l i n e t , n fi pl o c a lo u t ,s k b , n u l l ,r t - u d s

温馨提示

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

评论

0/150

提交评论