已阅读5页,还剩48页未读, 继续免费阅读
(通信与信息系统专业论文)基于linux和ipsec的vpn网关的设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
华中科技大学硕士学位论文 一一= _ 自# _ ;_ # # i _ 目_ _ i _ _ 一 摘要 f 、 一随着i n t e r n e t 卡h 关应用的不断发展,利用i n t e r n e t 资源绀建食、l k 的虚拟专用i 碉络, 凶为建嫂赞川低、组建贝活,正受到越来越多介业的火浊。作为组建虚拟川网的 主要组成部分v p n 网关,也得到广泛的研究。厂 本文在认真阅读相关文档和仔细研究f r e e s w a n 代码的基础上,对基于l i n u x 和 i p s e c 的v p n 网关进行了重新设计。该v p n 网关以l i n u x 操作系统为平台,利用l i n u x 提供的n e t f i l t e r 机制,使得i p s e c 能与m 协议栈无缝的结合。整个v p n 网关由 s a d ( 安全联盟数据库) 与s a d 引擎、s p d ( 安全策略数据库) 与s p d 引擎、i k e ( 网络 密钥交换) 守护进程、管理配置模块、p f _ k e y 套接字和i p s e c 引擎几部分组成。 对于安全联盟数据库采用哈希表进行构建。对于安全策略库采用r a d i x 树和哈希 衷联合的力式进行构建。对丁i k e ,首先深入分析了i k e 盼议,然后在此基础上捉 出了一个可行的i k e 实现方案。对于管理配鼹模块,提h 了一个可用于管理整个v p n 网关的具体框架,并能使管理者自由的定制所需的命令。对于p f _ k e y 套接字,提 h 了个统的组包和拆包框架结构用于封装或解封i 七较复杂的数据包,如p fk e y 套接宁巾的消息包和i k e 巾的协议包;并对p f _ k e y 套接宁进行了改进,使其更具 安全性。对于i p s e e 引擎,提出了一个通用的引擎架构,使其能向上层调用提供一个 统一的接口。 该v p n 网关建立在自主开发的操作系统上,比较完整的实现i p s e c 协议族,能 够和其它v p n 产品保持兼容,并具有比较完善的安全策略管理系统和友好的配置界 面。 关键词:v p n 网关,i p s e c , ( e ,聊i 二l 强丫套接字 华中科技大学硕士学位论文 一_ _ e _ = ;_ 日 日_ _ _ 目l _ _ _ _ _ 目i - l _ _ 目 a b s t r a c t w i t ht h ed e v e l o p m e n to fi n t e m e ta p p l i c a t i o n ,t h e c o n s t r u c t u r eo fv i r t u a l p r i v a t e n e t w o r ka t t r a c t sm o r ea n dm o r ee n t e r p r i s e sa t t e n t i o n ,f o ri t s l o wc o s ta n df l e x i b i l i t y a s t h em a i nc o m p o n e n to fv i r t u a lp r i v a t en e t w o r k ,v p ng a t e w a yg e t sw i d e l y r e s e a r c h b a s e do nt h ew i d e l yr e a d i n gr e l a t e dd o c u m e n ta n dc a r e f u l l ys t u d y i n g f r e e s w a nc o d e , an e w d e s i g no fv p ng a t e w a y b a s e do nl i n u xp l a t f o r ma n di p s e ci sp r e s e n t e d t h ev p n g a t e w a y m a k e su s eo fn e t f i l t e rm e c h a n i s mp r o v i d e db y l i n u x o p e r a t i o ns y s t e m t o c o m b i n et h ei p s e ca n di ps t a c ks e a m l e s s l y t h ew h o l ev p ng a t e w a y c o n s i s t so ff o l l o w i n g p a r t s :s a d ( s e c u r i t y a s s o c i a t i o nd a t a b a s e ) a n ds a de n g i n e ,s p d ( s e c u r i t yp o l i c y d a t a b a s e ) a n d s p d e n g i n e ,i k e ( i n t e r n e tk e y e x c h a n g e ) d a e m o n ,m a n a g e m e n t m o d u l e ,p f _ k e y s o c k e ta n dl p s e c e n g i n e t h es a di s o r g a n i z e db yh a s ht a b l e 7 f h cs i d i so r g a n i z e db yt h ec o m b i n a t i o no f r a d i xt r e ea n dh a s ht a b l e i k ei sf i r s t l ya n a l y z e d ,t h e naf e a s i b l ei m p l e m e n t a t i o no fi k e i s p r e s e n t e d f o rm a n a g e m e n t m o d u l e ,ad e t a i li m p l e m e n t a t i o ni sb r o u g h to u tt om a n a g e t h e w h o l ev p n g a t e w a y ,a n dl e tm a n a g e rf r e e l yc u s t o m sc o m m a n d s f o rp f _ k e y s o c k e t ,a c o m m o nf r a m eo fe n c a p s u l a t i n ga n dd e e n c a p s u l a t i n gp a c k e ti sp r e s e n t e dt od e a lw i t h c o m p l e xp a c k e t ,f o re x a m p l e :p f _ k e ys o c k e tm e s s a g ea n d1 k ep r o t o c o lp a c k e t s ,a n dt h e b e h a v i o ro fp f _ k e ys o c k e ti si m p r o v e dt om a k ei tm o r es e c u r i t y f i n a l l yag e n e r a le n g i n e i sp r e s e n t e dt oi m p l e m e n ti p s e ce n g i n e ,t h u sp r o v i d i n gau n i f o r mi n t e r f a c et ou p p e rl a y e r t h ev p ng a t e w a yi sb a s e do n s e l f - d e v e l o p p i n go p e r a t i o ns y s t e m ,i t b e t t e r i m p l e m e n t si p s e cp r o t o c o la n d c a nc o n n e c tw i t ho t h e rv p n p r o d u c t s a l s oi th a sag o o d p o l i c ys y s t e m a n d f r i e n d l ym a n a g e m e n t i n t e r f a c e k e y w o r d s :v p ng a t e w a y ,i p s e c ,i k e ,p f - k e y s o c k e t i i 华中科技大学硕士学位论文 l _ :_ i _ ;i 口t _ i _ - - - _ t _ _ i _ _ _ l _ - _ 一 1 绪论 近年来,随着i n t e r n e t 的广泛应用,如何利用i n t e r n e t 的资源组建企业的虚拟专 用网络( v i t u a lp r i v a t en e t w o r k 简称v p n ) ,已成为r r 业界的一个新热点。许多i s p 厂商已提供或正计划提供增值v p n 服务。v p n 是指依靠i s p ( i n t e m e t 服务提供者) 和其他n s p ( 网络服务提供者) 在公用网络中建立专用的数据通信网络的技术。v p n 可以使客户利用公众网的资源将分散在各地的机构动态的连接起来,使电信运营公 司,电信客户和最终用户三者都获利。通过向企业提供v p n 服务,i s p 丁以与企业 建立更加紧密的长期合作关系,同时充分利用现有网络资源,提高业务量。对于v p n 刚户而占,利川i n t e r n e t 组建私有网,将大笔的p 线赞j i j 缩减为少鼠的市话费用和 i n t e m e t 费用,无疑是非常有吸引力的,企业甚至可以不必建立自己的广域网维护系 统,而将这一繁重的任务交由专业的i s p 来完成。 1 1v p n 网关 根据不同需要,可以构造不同类型的v p n 。主要有三种不同类型的v p n : 1 内部网v p n ,用于公司总部的内部网与分支机构内部网之间通过i n t e m e t 进 行安全通信。具体的实施过程如下:在公司总部和分支机构各设置一个v p n 网关,由双方的v p n 网关通过i p s e c 等隧道协议来建立安全通道,保证双 方的通信安全。 2 迎槲t 方i 廿jv p n ,用十远檬用户或移动唐贝与公刘内部刚之恻通过i n t e r n e t 进 行安令通信。艮体的实施过秤如下:存公司内部网设霄一个v p n 、u 荚,h 远程用户的主机与v p n 网关通过i p s e c 等隧道协议来建立安全通道,保讦 远程片j 户与公司内部网之间的安伞通信。 3 外部网v p n ,用于在公司和商业伙伴、顾客、供应商、投资者之间通过i n t e r n e t 进行安全通信。具体的实施过程如下:在公司和商业伙伴之间各设置一个 v p n 网关,由双方的v p n 网关通过i p s e c 等隧道协议来建立书个诵道,保 证双方的通信安全。 如果将类型2 中远程用户的主机看成是只为自己服务的网关,则以上三种类型 的v p n 可以统一为如图1 1 所示的通信模型”1 : 华中科技大学硕士学位论文 图1 1v p n 通信模型 在图1 1 中,v p n 网关处于公用网( i n t e r a c t ) 和内部网之间,用于为内部网中的 主机通信提供安全服务,同时防止公用网中未经授权的用户访问内部网。v p n 网关 提供的安全业务要求主要有以下几种: 1 认证业务。即提供某个实体身份的确认或保证。 2 访问控制业务。即不同的用户拥有不同的访问权限。 3 保密业务。即保护信息不被泄漏或暴露给非授权的实体。 4 数据完整性业务。即保护数据以防止未经授权的增删、修改或替代。 5 不可否认业务。防止参与某次通信交换一方事后否认参与过本次交换。与认 证业务相结合,通过交换签名的方式可以实现对数据发送方和接收方的防抵 赖业务。 1 2l i n u x 操作系统 l i n u x 是一个遵循p o s i x 标准的免费的多任务、多用户操作系统,具有b s d 和 s y sv 的扩展特性,支持i n t e li 3 8 6 、a l p h a 、s p a r c 、p o w e r p c 等多种处理器【2 j 。虽 然诞生仅十年时间,但是借助于开放源代码的开发模式和i n t e r a c t 的推动,l i n u x 已 取得了迅捷的发展,其核心不断完善,功能不断增强。应用系统和操作系统日趋完 善,成为主流的网络操作系统之一。 与其它操作系统相比,l i n u x 主要具有以下一些优势: 1 开放性。l i n u x 是一个开放源码的操作系统,因此用户可以方便地根据需要 修改程序源码,以增加特定的功能。同时由于l i n u x 是一个免费的操作系统, 节省了开发成本。 2 稳定性。l i n t l x 脱胎于u n i x 操作系统,它继承了u n i x 操作系统的设计体系, 吸取了u n i x 系统的发展经验,因而具有功能强大、性能稳定的特点。同时 由于它的丌放性不同于其他u n i x 系统的独立封闭,也使得它的稳定性不 断加强。 华中科技大学硕士学位论文 3 安全性。由于l i n u x 开放源码,囚而可以全面剖析l i n u x 内核,发现和改止 内核中存在的后门和漏洞;其次,可以修改l i n u x 内核,以增强其安全性; 最后,可以重新配置l i n u x 内核,只编译最基本的内核,达到系统最简单的 原则。 4 有利于建设自主的操作系统。由于l i n u x 属于自由软件,任何组织和个人都 n r 以自由使用,对其进行研究与,f 发。在此基础上开发出新的操作系统,既 能保证所开发的系统具有自丰忭,又可以使很多荩于l i n u x 开发的廊用秤序 移干i i f 到本操作系统巾。, l i n u x 的以卜特点使其成为网络安伞产 i :发的弹慰平台,渊此本设计l | l 采川 l i n u x 作为v p n 网关的操作系统。 1 3i p s e c 协议族 对于构建v p n 来说,网络隧道( t u n n e l l i n g ) 技术是个关键技术。目前较为常见 的隧道协议主要有两类:第二层隧道协议和第三层隧道协议。第二层隧道协议主要 包括p p t p 、l 2 f 、l 2 t p 等,第三层隧道协议主要包括i p s e e 、g r e 等,二层和三层 隧道协议的区别主要在于用户数据在网络协议栈的第几层被封装。 i p s e c 侨议是由i e t f 制定的新一代因特网安全标准,它由安全协议( a h 、e s p 协议) 、密钥管理协议( i k e 协议) 、以及加密和认证算法组成。它在i p 层上对数据包 进行高强度的安全处理,提供数据源的验证、无连接数据完整性、数据机密性、抗 重播和有限业务流机密性等安全服务。目前t f 已制定了1 2 个r f c 用于定义i p s e c 的体系结构、基本安全协议、密钥管理、加密算法等,各协议之间的关系如图1 2 所 示。 i p s e c 体系定义了i p s e c 协议提供的安全服务以及如何在p 环境中使用这些服 务,并指定了用封装安全载荷协议( e s p ) 和验证头协议( a h ) 来实现这些服务,相应的 文档见r f c 2 4 0 1 。 e s p ( e n c a p s u l a t i n gs e c u r i t yp a y l o a d ) 定义了载荷头( e s p 头) 的格式和服务类型以 及包处理规则,但没有定义具体的加密算法和验证算法,这样当出现一种新的算法 时,就不用修改协议,相应的协议文档见r f c 2 4 0 6 。在r f c 2 4 0 6 的基础上,t f 制定了一些草案用于改进e s p ,最新的草案是d r a f t i e t f - i p s e c e s p v 3 - 0 3 t x t ,该草案 目前已过期。 华中科技大学硕士学位论文 _ _ _ _ _ _ e 口i l 口i _ _ _ 口- - _ _ _ _ - - l _ - 目_ - _ _ _ _ l l _ 一一一一高:磊一 封装是驯j 忑一 j 萨一一率一 f、 密钥管理k _ 一策略 图1 2m s e c 协议族结构 a h 【a u t h e n t i c a t i o nh e a d e r ) 定义j a h 头格式、服务类型村i 包处理规则,与e s p 协议一样,没有定义具体的验证算法,相应的协议文档见r f c 2 4 0 2 。在r f c 2 4 0 2 的 基础上,i e t f 制定j ,一些草案j i 爿于改进a h ,最新的草案是 d r a f t i e t f - i p s e c r f c 2 4 0 2 b i s 0 1 t x t ,该草案目前已过期。 加密算法,相应的文档是r f c 2 4 0 5 。该文档定义了用于e s p i j l l 密的算法d e s 。c b c 及其实现。 验证算法,相应的文档是r f c 2 4 0 3 和r f c 2 4 0 4 。r f c 2 4 0 3 定义了用于e s p 和 a h 验证的算法h m a c - m d 5 - 9 6 。r f c 2 4 0 4 定义了用于e s p 和a l l 验证的算法 h m a c - s h a - 1 - 9 6 。 密钥管理协议i k e ( i n t e r n e tk e ye x c h a n g e ) 用于在i p s e c 通信双方之间建立起共享 的安全参数及验证过的密钥,相应的文档是r f c 2 4 0 9 。i k e 协议是o a k l e y 和s k e m e 协议的一种组合,井在由i s a k m p 规定的一个框架内运作。i s a k m p ( i n t e m e ts e c u r i t v a s s o c i a t i o na n d k e ym a n a g e m e n tp r o t o c 0 1 ) 定义了整套加密通信语言如包格式、消息构 建等,o a k l e y 和s k e m e 定义了通信双方建立一个共享密钥所采取的步骤。i k e 利 用i s a k m p 语言对这些步骤进行表述。 i p s c c 解释域,相应的文档见r f c 2 4 0 7 。由于i k e 是一个通用的安全交换协议。 可以用于很多方面如s n m p v 3 、o s p f v 2 等,因此需要定义如何将i k e 用于i p s e c 中。 r f c 2 4 0 7 定义了在i p s e c 中,i k e 具体协商的内容。 4 华中科技大学硕士学位论文 策略址叫个实体问的通信舭则,它决定j ,通f 矗舣力所采川的协议、加密篼法币 认证算法等。日前还没有出现正式的r f c ,但i e t f 已制定了一些草案用于策略的规 范,如d r a f t i e t f - i p s p i p s e c p i b 定义了i p s e c 的策略信息库( p o l i c y i n f o r m a t i o nb a s e ) 等。 1 4 课题背景 本课题以与美国c o m b r i o 公司合作研制基于l i n u x 平台高速宽带路由器的项目 为背景,主要研究基于l i n u x 和i p s e c 的v p n 网关的设计与实现。该路由器建立在 自主开发的基于l i n u x 内核的操作系统上,采用专用集成电路( a s i c ) 进行路由识别、 计算和转发,主要定位于p 骨干网络、口城域核心网等。该路由器主要由四部分组 成,分别是路由处理板、数据包处理板、背板和i o 卡。具体结构如图1 3 所示: 路由处理板数据包处理板 图1 3 路由器体系结构 在图1 3 中,路由处理板的主要功能包括:1 ) 处理各种协议包,包括s n m p 、 i c m p 、r i p 、o s p f 、i g m p 、d v m r 等;2 ) 根据对各类协议包处理的结果更新数据 包处理板上c a m 和r a m 中的单播路由表、组播路由表和m a c 表等;3 ) 提供各类 网络应用服务,包括d n s 、t e l n e t s e r v e r 等;4 ) 对数据包处理板及各i o 卡进行 管理。 数据包处理板是整个路由器系统的核心,其主要组件包括:1 ) c a m 和r a m 存储单播路山灰、组播路由农和m a c 灰;2 ) 转发引擎,完成数据包的路山查 华中科技大学硕士学位论文 _ _ _ _ _ _ _ _ 目_ _ _ _ _ 目l 目目目j ;目= 目l = = _ - - = g = = = ; 转发等功能;3 ) 交换模块,采用a s i c 实现,提供各类数据和控制包在路由处理板、 数据包处理板以及各i o 卡之间的交换。 背板用于提供路由器内部控制包、协议包以及数据包的交换通道。 各i o 卡直接插在背板上,用于接收或转发数据包。 1 5 论文内容 论文由六章组成,分别是: 第一章绪论。首先分析了v p n 的发展趋势,然后简要介绍了v p n 网关、l i n u x 操作系统、i p s e c 协议族和课题研究的背景,最后介绍了论文的结构。 第二章v p n 网关的总体设计。首先对国内外的v p n 产品进行了比较,针对当 前国内v p n 产品存在的一些问题,提出了我们设计的v p n 产品的性能;然后给出 了v p n 网关的总体框架图,简要介绍了v p n 网关的各组成部分;最后讨论了在l i n u x 内核中i p s e c 的实现方案。 第三章v p n 网关在内核部分的具体设计与实现。主要包括s a d 与s a d 引擎、 s p d 与s p d 引擎和i p s o c 引擎。 第四章v p n 网关在用户部分的具体设计与实现。主要包括i k e 守护进程和管理 配置模块。 第五章p f _ k e y 套接字的设计与实现。 第六章结论。对v p n 网关的设计与实现进行了总结,探讨了课题下一步研究的 方向。 华中科技大学硕士学位论文 2v p n 网关的总体设计 目前,国内外厂商如华为、联想、c i s c o 、s h i v a 等都匕推出各自的v p n 产品, 但国外的产品在安全性、可扩展性、吣议实现的完整性、系统的配置、系统的管理、 日志及报表等方面均要成熟和优于国内产品。与国外产品相比,国内产品主要存在 以下问题: 1 所基于的核心操作系统都是国外的操作系统,其安全性完全控制在他人手 中。 2 大多是与防火墙整合在一起,重在防火墙功能,而对i p s e c 的实现相对较为 简单和不完善,因此几乎无法作为真正的v p n 网关使用。 3 安全策略系统实现并不完善。 4 箭理弓配置方而都比较复杂,缺乏友好、方便的配骨管理界而。 针对国内产品的以上问题,我们在设计的v p n 网关时,需要使其具有如下特性: 1 建立在自主开发的操作系统上,能够完伞保证其安全性。 2 比较完整的实现1 p s e c 协议族,能够和其它v p n 产品保持兼容。 3 具有比较完善的安伞策略管理系统。 4 具有友好的配拭界睡。 5 具有较高的性能,支持干兆网络的要求。 6 具有很好的扩展性。 2 1 v p n 网关的框架结构 荩于i p s e c 的v p n 网关丰露南以下几个部分组成m 1 : s a d ( s e c u r i t y a s s o c i a t i o nd a t a b a s e ,安全联盟数据席) 。s a ( s e c u r i t ya s s o c i a t i o n , 安全联盟) 是v p n 网关之间经过协商建立起来的一个安全通道,它规定了用来保护数 据包的安全协议、转码方式以及密钥等,这螳s a 存放在s a d 中。 s a d 引擎。用于管理和维护s a d ,主要负责s a 的添加、删除、修改等。 s p d ( s e e u r i t yp o l i c yd a m b a s e ) 。安全策略规定了对进出v p n 网关的数据包需要 进行的安令处理,这些安伞策略存放在s p d 中。,外出数据包和进入数据包的处理都 要书蒯s p d :对外数扣;包处:畦i ! 而寿,需要杏阅s p d ,判断这个数据包是否需耍安 全保护以及如何进行安全保护;刈进入数据包处理而言,需要查阅s p d ,削断为这 个数据包提供的安全保护足否和策略配置的安全保护相符。, 一。 l 华中科技太学硕士学位论文 一_ 目_ l _ # = _ _ _ _ _ _ _ 目_ _ _ _ _ _ _ _ _ - 口# s p d 引擎。用于管理和维护s p d ,主要负责安全策略的添加、删除、修改等。 i k e ( i n t e m e tk e ye x c h a n g e ,网络密钥交换) 守护遴程。这是一个用户级迸程,主 要受责爨钥的分怒以及s a 熬建立秘维护。 策略i y 护逃程。这魁一个刖户级进私,主受负炎从策路服务器通过 c o p s ( c o m m o no p e np o l i c ys e r v i c e ) 协议来获取安全策略。 管理配鼹模块。主要负责整个v p n 网关的管理、配置工作,如配置一条蜜全策 峨、醚程,繁友全驳氍等。, p fk e y 套拨。差璎j 珏腰p 夺豳的进程霹h q 拨进 i 逶l 文鲻i k e 勺二参 进程 与s a d 引擎之间的通信,策略守护进程与s p d9 1 擎之1 1 _ | 】的通像。 i p s e c 引擎。主要负责实现i p s e c 的其本狮议a h 和e s p ,处理进出v p n 网关的 数据包。它南疆部分绒成:协议弓l 擎、蕊街弓l 攀、翻密弓f 擎和算法岸组成。济议引 擎受蠢应用安全给淡a h 嚣| e s p ;翻密0 l 擎至逸炎应删棼泫j 荤t | ,豹赡辍努:泼;狳涎i l 擎负责应用算法艨中的验诞算法;算法库,主要包括加密算法d e s - c b c 等的实现与 验证算法h m a c m d 5 9 6 、h m a c s h a 一1 + 9 6 等的实现。 以上各部分的关系如图2 1 所示: 翻2 1v p n 网关的椴架结构 在图2 1 孛,策略守护进程、i k e 守护遴程、管瑾鬣置模块等楚在用户空褥实现 8 华中科技大学硕士学位论文 的,s a d 、s a d 引擎、s p d 、s p d 引擎、i p s e c 引擎等是在内核空间实现的,至于加 密算法与验证算法目前是通过软件实现的,但通过加密引擎与认证引擎,可以通过 硬件来实现。 2 2i p s e c 在l i n u x 下的实现方案 2 2 1 i p s e c 的三种实现方式 i p s e c 有三种实现方式: i o s 集成方式。将1 p s e c 与p 协议栈整合在一起,组成一个新的网络层。 2 堆栈巾的块( b i t s ) 方式。将i p s e c 协议模块作为“楔子”插入到网络层和数 据链路层中间。 3 线t i - 的块( b i t w ) 方式。j j 硬件实现i p s e c 队议。, m 于第种实现方式完伞巾硬件实现,不在本文讨论范同之内。前两种实现力 式如图2 2 所示: 应川层 传输层 网络层+ i p s e c 数据链路层 l应川j i i传输层 |网络层 i p s e c 数据链路层 n 。集成方式 耵找巾的块方代 罔2 2i p s e c 实现方式 第一种实现方式的优点是:处理效率高,将1 p s e c 处理与i p 处理融合到一越, 可以提高i p s e c 网关的处理效率。缺点是:实现较为困难,因为要修改内核代码,凼 此要熟知内核的网络模块代码,甚至要全脚的r 解操作系统的代码,这样就增加实 现的难度。 第二种实现方式的优点是:i p s e c 处理模块独立于内核,i p s e c 处理程序几乎对 内核没有进行任何修改。缺点是:多次重复地处理包,大大地增加了i p 包在舻 层的处理时间,极大地影响- 广l p 包处理的效率。 由于l i n u x 具有开放内核源代码的特性,考虑到实现的效率问题,本没计采用 第一利实j ! i l 山j = i = 在l i n u x 操作系统i | i 实现1 p s e c 队议。我们将利川l i n u x 操作系统所 一_ 。 9 华中科技大学硕士学位论文 提供的n e t f i l t e r 机制,通过改造l i n u x 的口协议栈源代码,使得i p 协议与i p s e c 协 议实现无缝的结合”“”。 2 2 2l i n u x 下的n e t f i l t e r 机制 n e t f i l t e r 址l i n u x 2 4 核为实现数据包过滤数据包处j ! t i n a t 等的功能所捉供的 一个抽象、通用化的框架。n e t f i l t e r 框架包含以下三部分“2 : 1 每种网络协议0 p v 4 、i p v 6 等) 都定义一套钩子函数( i p v 4 定义了5 个钩子函 数) ,这些钩子函数存数据包流过协议栈的几个关键点被调用。在这几个点巾, 协议栈将把数据包及钩子函数标号作为参数调用n e t f i l t e r 框架。 2 1 ,| 幺的任何模从鄙可以刈每种仂- 、义的个或多个佝了点i :进行佝了鬲数汁 册,实现挂接,这样当某个数据包被传递给n e t f i l t e r 框架u 、j ,内核能检测足 否有任何模块对该协议和钩子点进行j ,注册。若有,则调用该模块注册的钩 子函数,这样这些模块就有机会检查该数据包、修改数据包、丢弃该数据包 以及指示n e t f i l t e r 将该数据包传人用户空间的队列。 3 进入对队的数据包将被传递给用户空间异步地进行处理。用户进程能检查数 据包,修改数据包,甚至可以重新将该数据包注入到离开内核时的同一钩子 点处。 n e t f i l t e r 框架结构如图2 3 所示: 卜7 、卜卜 l ,l 陟 图2 3n e t f i l t e r 框架结构 从图2 3 中可以看到i p v 4 一共有5 个钩子点,分别为: 1 n f _ i p _ p r e _ r o u t i n g :进入系统的数据包,进行口校验后,通过此检查 点,原地址转换可以在此点进行。 2 n fi pl o c a l _ i n :经路由后,送往本机的数据包通过此检查点,进入包 过滤町在此点进行。 一 1 0 华q - 科技大学硕士学位论文 e:_ l | 目目j = ; i 口_ t i 目t _ t = e # 目| l 口日t # - - _ 目_ = j 目# 3 n fi pf o r w a r d :要转发的数据包通过此检测点,转发包过滤可往此点进 行。 4n fi pp o s tr o u t i n g :所有外m 的数据包通过此榆测点,内罱的日的地 址转换功能( 包括地址伪装) 可在此点进行。 5 n fi pl o c a l _ o u t :本机发出的数据包通过此检测点,外出包过滤可存 此点进行。 具体的处理流程是:数据报从左边进入系统,进行i p 校验以后,数据报经过第 一个钩子点n f _ i pp r e _ r o u t i n g 处的钩子函数进行处理。然后就进入路由处理, 若该数据包是发被本机的,则该数据经过钩子点n fi pl o c a l _ i n 处的钩子函数处 理以后然后传递给上层协议;若该数据包应该被转发则它被钩子点 n f _ i p _ f o r w a r d 处的钩子函数处理。经过转发的数摒报经过最后一个钩子点 n f _ i p _ p o s t _ r o u t i n g 处的钩子函数处理以后,再传输到网络上。本地产生的数据 经过钩子点n f 巳l o c a l _ o u t 处的钩子函数处理可以后,进行路由选择处理,然 后经过钩子点n f _ i p _ p o s t _ r o u t i n g 处的钩子函数处理以后发送到网络上。 钩子函数处理后的结果有如下几种:n f _ a c c e p t 继续正常传输数据报; n f _ d r o p 丢弃该数据报,不再传输;n f _ s t o l e n 模块接管该数据报,不要继续 传输该数据报;n f _ q u e u e 对该数据报进行排队( 通常用于将数据报给用户空间的 进程进行处理) ;n f _ r e p e a t 再次调用该钩子函数。 2 2 3i p s e c 的具体实现方案 利i t ll i n u x 内核n e t f i l t e r 机制l “i 提供的钩子点n fi pl o c a l _ i n ,进i ii p s e c 进入处理,具体的处理框架立幽2 4 所,j i 。 在图2 4q ,当v p n 网关的网卡接收到数据包时,通过i f l 断触发内核的叫1 断处 理程序,将网卡接收的数据包传送到内核空间。然后由疋层处理接收进来的数据包, 接着路由处理模块根据口头决定数据包是发往本机还是继续转发。对于发往本机的 数据包,首先检查是否为p 分片,如果是分片,则必须缓存分片,等所有的分片 到齐后,进行分片重组处理,将分片合成完整的伊包。然后利用钩子点 n f _ i p _ l o c a l _ i n ,将进人的l p 包送往i p s e c 进入处理模块进行处理,典体的处j ;! i ! 过程如下: 1 首先判断该i p 包是否为i p s e c 包,即i p 包中是否包含i p s e c 协议头。如果 是i p s e c 包,转向3 ;如果不是i p s e c 包,转向2 。 华中科技大学硕士学位论文 2 查阅s p d ,判断该如何刈这个i p 包进行处理。如果查找的策略是丢弃,那 么这个i p 包会被丢弃;如果是应用,何m 于不足1 p s e c 包,这个t p 包将会 被丢弃;如果是绕过,则这个口包会被传递给传输层作进一步的处理。 皿l o c a l , # _ i 一一姗 f p 一一【n 点 + 一一 1 ,b 。 ,b l ”!三9竺。li n f _ i p _ l o c a l0 u t 点 惹篓嘴i 一一f 一一i 策略库查找 r j i 嚣;啦 1i i 足否彳胀奁、垃 i r - 一_ 一_ 丽策略病r 、。i 幸申 i 尚丙占: l 根据s a 进行处理l 一 亍 匕 f 检查s 生存期、状态f f查找外出s a d + l 查找进人s a d 榆卉s 状态、牛存期 是t + - 一i ,。:_ 二_ 。* 、1 + 根据s 进行处理 - - 8 - - - 一一 i b b 1 分片重组处理 l 型旦一一j 。r 。 l + 1 r ,赢_ 、虫发 lt p 分片处瑚 l 章奉 图2 4i p s e c 处理的框架结构 3 首先将从i p 包中提取目的地址、下一协议、安全参数索引( s p d 信息,并根 据这些信息查找s a d ,找到对应的唯一的一个s a 。然后根据找到的s a 进 行:s a 状态处理、s a 生存期处理、重播窗口处理、模式处理、相关妒s e c 协议( a h 或e s p ) 处理。当处理完个s a 后,必须要标记处理过的s a ( 用t 后期的进入策略匹配) ,并检查是否存在s a 串( 即多个s a ) 。如果有,则循 一 1 2 华中科技大学硕士学位论文 一_ _ j t l j = _ l 目i | 1 日= 目目= 自- _ 目_ _ _ 口日_ _ t ;_ # 环处理s a 串,直到遇到传输层协议头或者非本机的i p 头( 表明s a 串上的 所有s a 都处理完毕) 。最后根据处理过的p 包的相关信息查找s p d ,找到 该i p 包所对应的进入策略( 该策略应该与发送端的外出策略是相同的) 。然后 榆杏该策略所指定的s a 串是含与处理过并标记的s a 串相同,从n i 判断是 否进行了所要求的i p s e c 处理。如果不相同,则丢弃该腰包,并进行日志 记录。 i p s e c 的外出处理函数挂在钩子点n f _ i p _ f o r w a r d 和n f _ i p _ l o c a lo u t 1 分别门1 丁处娜牟发的数掘也和从化输层发水i j 报义,具体的处瑚过程如i 下: 1 首先将根据伊包的相关信息杏找s p d ,找到该巾包对廊的外出策略。策略 将决定对该t p 也的几种处琊:丢弃、应用和绕过。绕过表示刘t p 包不做任 何i p s e c 处理,允许t p 包直接通过;麻用表示将对t p 包进行l p s e c 处琊; 丢弃表示将丢弃该p 包。 2 对于可以进行i p s e c 外出处理的包,根据策略提供的信息,查找s a d ,找到 该口包应该应用的s a 。如果没有找到s a ,则将通过i k e 守护进程进行s a 的协商,此时d 包被暂时保持,直到s a 创建;如果找到了s a ,则检查s a 的状态、生存期,然后根据s a 所指定的协议( a h 或e s p ) ,循环对i p 包进 行认证、加密等处理,最后将t p 包发送冉麦。 华中科技大学硕士学位论文 3 内核部分设计与实现 v p n 网火n :i ! l 核空问:卜要包括以下几个部分:s a d is a d 引擎、s p d 与s p d 引擎和1 p s e c 引擎,下而将详细捕述各部分的设计与实现。 3 1s a d 与s a d 引擎 3 1 1s a d 介绍 s a 址构成 p s e c 的拈砒,它定义了川术保护数川他。奠个f 门i p s e c 【办议、4 :# f i 5 力 式、密钥以及密钥的有效存在时问等等,v p n 网关通过它米提供安伞服务i l ”。 s a 足个巾m 连接。血采两个通信史休进行安个通f i ,那么傅个通信实体需要 两个s a :一个足外出s a ,用于处理外出的数据包;奶个足进入s a ,川j :处川进 入的数据包。另外一个s a 只能通过a h 和e s p 中的一种提供安全服务,如果需要 a h 和e s p 同时提供安全服务,那么应该创建两个或多个s a 。 s a 由一个三元组唯一标识:s p i ( s e c u r i t y p a r a m e t e ri n d e x ,安全参数索引) 、目 的地址和安全协议( a n 和e s p ) 标识符。其中,s p i 是s a 中一个很重要的元素,对于 两个通信文体建立起来的s a ,源端可以通过选择符( 包括源地趾、目的地址、源端i 、 目的端口等) 来标识s a ,但对于目的端而言,由于选择符的一部分已经被加密,因此 需要一个参数来标识对应的s a 。s p i 是一个长度为3 2 他的数槲实体,州十和h 的端 :标识s a ,它作为a h 或e s p 头的一部分随数据包一起发送。目的端利用这个值刑 进入s a d 进行检索,就可以提取出相应的s a 。 s a 有两种类型:传输模式和隧道模式。1 ) 传输模式s a 用于两台主 ! j l f h j 的安全 通信。在i p v 4 中,传输模式r 的i p s e c 头在心头( 或小选坝) 与岛层叭议头( 例如r l c i 或u d p ) 之问,女n t p 头 i p s e c 头 上层协议( 如t c p 或u d p ) 】;在i p v 6 环境中,i p s e c 头出现在基本妒头和扩展之后,高层协议头之前。如果在传输模式中采用e s p 时, 则仅为更高层协议安全服务提供,而不为i p 头或任何e s p 头以l j 订的扩展头提供服务; 如果采用a h 时,则这种保护也被扩展到妒头。2 ) 隧道模式s a 用于v p n 网关m 和v p n 嘲关与主机问安全通信,也就是既,只要s a 的任意一端足v p ni ) c ) 9 灭,s a 就必须是隧道模式。但是,如果v p n 网关以主机身份通信( 如s n m p 命令) ,则1 1 j 以 使用传输模式。对于隧道模式s a ,有外部i p 头,内j _ f f i p 头,外部i p 头定义了i p s e c 处理的h 的地,内部l p 头定义了包最终地址,i p s e c 头j n 现在外部i p 头和内部1 p 头 1 4 华中科技大学硕士学位论文 # # = = = = = = = = = # ;= = # z = = = = # = = = = = = 自| _ _ _ = j i ;_ = = _ _ _ 目= = _ _ - _ # ;_ = _ - - _ = 自口_ _ _ 之m j ,如 外部i p 头 i p s e
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026秋季国家管网集团华中公司高校毕业生招聘笔试备考题库(浓缩500题)含答案详解(b卷)
- 2026秋季国家管网集团云南公司高校毕业生招聘考试参考试题(浓缩500题)及参考答案详解(考试直接用)
- 2026秋季国家管网集团东部原油储运公司高校毕业生招聘考试备考试题(浓缩500题)有完整答案详解
- 2026秋季国家管网集团广西公司高校毕业生招聘笔试参考题库(浓缩500题)含答案详解(a卷)
- 2026国网湖北省电力公司高校毕业生提前批招聘笔试参考题库浓缩500题及1套完整答案详解
- 2026秋季国家管网集团广西公司高校毕业生招聘笔试备考试题(浓缩500题)附答案详解(基础题)
- 2025国网福建省高校毕业生提前批招聘(约450人)笔试模拟试题浓缩500题含答案详解(新)
- 2026秋季国家管网集团山东分公司高校毕业生招聘考试备考试题(浓缩500题)及参考答案详解
- 2026年双鸭山市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)参考答案详解
- 2026国家管网集团甘肃公司秋季高校毕业生招聘25人笔试参考题库(浓缩500题)附答案详解ab卷
- 小内容趋势报告2025-碎片化时代下的品牌新叙事
- 扦插吊兰课件
- 2025年铁路线路工技能竞赛考试题库(含答案)
- 第8课+溺水的预防与急救+课件+2025-2026学年人教版(2024)初中体育与健康七年级全一册
- 2025年入团考试试题库问答题部分及解析答案
- 2025中国银行考试试题及答案
- 2025管理学原理企业管理试题及答案
- 分拣标准化培训课件
- 2025至2030中国电容膜片真空计行业项目调研及市场前景预测评估报告
- 女装秋冬商品培训
- 2025年新团员入团考试试题及答案
评论
0/150
提交评论