(管理科学与工程专业论文)基于网关的网络监控系统的设计与实现.pdf_第1页
(管理科学与工程专业论文)基于网关的网络监控系统的设计与实现.pdf_第2页
(管理科学与工程专业论文)基于网关的网络监控系统的设计与实现.pdf_第3页
(管理科学与工程专业论文)基于网关的网络监控系统的设计与实现.pdf_第4页
(管理科学与工程专业论文)基于网关的网络监控系统的设计与实现.pdf_第5页
已阅读5页,还剩58页未读 继续免费阅读

(管理科学与工程专业论文)基于网关的网络监控系统的设计与实现.pdf.pdf 免费下载

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

文档简介

摘要 本课题的目标是研究基于l i n u x 网关的网络监控系统的设计与实现。为此,该 课题首先基于l i n u x 防火墙内核接口设计了一个通用监控网关。在这个通用监控网 关中封装了底层的调用,并且做了优化处理,程序开发人员可以通过这个通用监 控网关直接在内核中捕获和控制数据包,而不需再用底层的调用来编写代码捕获 和控制数据包。因此,该通用监控网关在包过滤型防火墙、基于用户的访问控制 和审计以及入侵检测等方面都具有很篁要的应用价值。 本文以一个小型网络监控系统为例,分析研究了基于上述l i n u x 通用监控网关 的网络监控系统的设计思想及实现方法。网络监控系统利用通用监控网关,在操 作系统内核层上采集数据,分析数据,同时控制i p 包的拒绝或转发,并把采集到 的数据包通翅q t p r o c 文件发送给应用层接口模块。在应用层接口模块中,对这个砰 包进行入侵检测分析,如果有入侵行为发生,则立即拒绝转发该口地址的数据包; 最后将数据包信息存入数据库,待网管用户进一步查询、分析。同时,用户还可 通过p r o c 文件向l i n u x 内核接口传送用于访问控制的配置数据。本系统为网管用 户提供w e b 服务,使网管用户通过浏览器来使用本网络监控系统,包括查询网络 数据信息、设置配置数据以及入侵规则等。 在理论基础部分,本文首先介绍了t c p i p 基本原理,接着,对l i n u x 内核编 程技术以及自l i n u x 内核2 4 版本之后引入的n e t f i l t e r 防火墙框架体系结构进行了 详细的介绍。 随后,本文重点讲解了基于l i n u x 防火墙内核接口的通用监控网关的设计与实 现,并介绍了通用监控网关在相关领域的应用。最后,讨论了基于通用监控网关 的网络监控系统是如何实现的。 关键词:网络监控系统;通用监控网关;内核接口;p r o c 文件 d e s i g na n di m p l e m e n t a t i o no fn e t w o r km o n i t o rs y s t e m b a s e do nt h eg a t e w a y a b s t r a c t t h er e s e a r c h f u la i mo ft h i sd i s s e r t a t i o ni sd e s i g na n di m p l e m e n t a t i o no fn e t w o r k m o n i t o rs y s t e mb a s e do nt h el i n u xg a t e w a y t h e r e f o r e ,i nt h i sd i s s e r t a t i o n ,o n eg e n e r a l m o n i t o rg a t e w a yi sf i r s td e s i g n e d ,w h i c hi sb a s e do nt h ek e r n e li n t e r f a c eo fl i n u x f i r e w a l l t h eg a t e w a ys e a l sr o c k - b o t t o mt r a n s f c ra n dm a k e sp r o c e s s i n go p t i m i z e d t h e p r o g r a md e v e l o p e rm a yd i r e c t l yc a p t u r ea n dc o n t r o ld a t ap a c k a g ei nk e r n e lt h r o u g ht h e g e n e r a lm o n i t o rg a t e w a y , b u td o e sn o th a v et o u s er o c k - b o t t o mt r a n s f e rt oc o d et o c a p t u r ea n dc o n t m ld a t ap a c k a g e t h e r e f o r e ,t h i sg e n e r a lm o n i t o rg a t e w a yh a st h ev e r y i m p o r t a n ta p p l i c a t i o nv a l u ei np a c k a g ef i l t e r i n gf i r e w a l l ,v i s i t , c o n t r o la n da u d i tb a s e do n u s e r s 踮w e ua si n t r u s i o nd e t e c t i o n i nt h i sd i s s e r t a t i o n 。o n es m a l ln e t w o r km o n i t o rs y s t e mi st a k e na sa ne x a m p l e i ti s a n a l y z e da n ds t u d i e dt h a tt h ed e s i g nt h o u g h ta n dr e a l i z a t i o nm e t h o do fn e t w o r km o n i t o r s y s t e mb a s e do na b o v eg e n e r a lm o n i t o rg a t e w a yo f l i n u x t h en e t w o r km o n i t o rs y s t e m u s e sg e n e r a lm o n i t o rg a t e w a yt oc a p t u r ea n da n a l y z ed a t ao nk e r n e ll e v e lo fo p e r a t i o n s y s t e m s i m u l t a n e o u s l y , t h eg a t e w a yc o n t r o l st h er e j e c t i o no rr e t r a n s m i t so fi pp a c k a g e s , a n dt r a n s m i t st h ed a t ap a c k a g ec a p t u r e dt ot h ei n t e r f a c em o d u l eo fa p p l i c a t i o nl e v e l t h r o u g h p r o cf i l e i nt h ei n t e r f a c em o d u l eo fa p p l i c a t i o nl e v e l ,i n t r u s i o n d e t e c t i o n a n a l y s i sa b o u tt h i si pp a c k a g ei sc a 仃i e do u t i ft h ei n t r u s i o nb e h a v i o ro c c u r s ,t h e nt h e f i r e w a l lw i l lr e f u s et or e t r a n s m i tt h ed a t ap a c k a g et h a th a st h es a m ei pa d d r e s sa to n c e s u b s e q u e n t ly ,t h ed a t ap a c k a g ei ss t o r e dt od a t a b a s e ,a n dw a i t sf o rf u r t h e ri n q u i r ya n d a n a l y s i sf r o mn e t w o r ka d m i n i s t r a t o r a tt h es a m et i m e ,t h eu s e rm a yt r a n s m i tc o n f i g u r e d a t at ol i n u xk e r n e li n t e r f a c et h r o u g h p r o cf i l e t h i ss y s t e mp r o v i d e st h ew e b s e r v i c e f o rn e t w o r ka d m i n i s t r a t o r , a n dc a u s e sn e t w o r ka d m i n i s t r a t o rt ou s et h en e t w o r km o n i t o r s y s t e mb yt h eb r o w s e r , t h es e r v i c ei n c l u d e si n q u i r i n gn e t w o r kd a t ai n f o r m a t i o n ,s e t t i n g c o n f i g u r ed a t aa sw e l la ss e t t i n gi n t r u s i o nr u l ea n ds oo n i nt h eb a s i ct h e o r yp a n s ,t h eb a s i cp r i n c i p l ef o rt c p i pi si n t r o d u c e d s u b s e q u e n t l y , i ti si n t r o d u c e dd e t a i l e d l yt h a tp r o g r a m m i n gt e c h n o l o g y o fl i n u xk e r n e la n d t h e f r a m e w o r ks y s t e ms t r u c t u r eo fn e t f i l t e rf i r e w a l lt h a ti su s e ds i n c el i n u xk e r n e l2 4 a f t e rt h a t ,i ti se x p l a i n e dw i t he m p h a s i st h a td e s i g na n di m p l e m e n t a t i o no fg e n e r a l m o n i t o rg a t e w a yb a s e do nt h ek e r n e li n t e r f a c eo fl i n u xf i r e w a l l ,a n da c t u a la p p l i c a t i o n o fg e n e r a lm o n i t o rg a t e w a yi ni n t e r r e l a t e dd o m a i ni si n t r o d u c e d f i n a l l y , i ti sd i s c u s s e d t h a th o wt oi m o l e m e n tt h en e t w o r km o n i t o rs y s t e mb a s e do ng e n e r a lm o n i t o rg a t e w a y k e yw o r d s :n e t w o r km o n i t o rs y s t e m :g e n e r a lm o n i t o rg a t e w a y :k e r n e l i n t e r f a c e ;,p r o ch i e 大连海事大学学位论文原创性声明和使用授权说明 原创性声明 本人郑重声明:本论文是在导师的指导下,独立进行研究工作所取得的成果, 撰写成博士,硕士学位论文 :基王豳羞数鲤堡堕撞丕缠的遮让生塞迅:。 除论文 中已经注明引用的内容外,对论文的研究做出重要贡献的个人和集体,均已在文 中以明确方式标明。本论文中不包含任何未加明确注明的其他个人或集体已经公 开发表或未公开发表的成果。 本声明的法律责任由本人承担。 论文作者签名:耋殳家年岁月巧日 学位论文版权使用授权书 本学位论文作者及指导教师完全了解“大连海事大学研究生学位论文提交、 版权使用管理办法”,同意大连海事大学保留并向国家有关部门或机构送交学位论 文的复印件和电子版,允许论文被查阅和借阅。本人授权大连海事大学可以将本 学位论文的全部或部分内容编入有关数据库进行检索,也可采用影印、缩印或扫 描等复制手段保存和汇编学位论文。 保密口,在年解密后适用本授权书a 本学位论文属于:保密口 不保密d ( 请在以上方框内打“”) 论文作者张毒炙矗节繇寥中 r 期:u o 峰;月落日 第1 章绪论 1 1 课题背景 在迈进2 1 世纪之后,网络的应用变的越来越广泛,已经覆盖了我们曰常生活 中的方方面面,熬个世界已快步跨入了信息时代。信息时代的一。个重要特征就是 信息共享,数以百万计的计算机终端通过网络连接在一起,共同分享信息资源。 每台终端连接到了 n t e r n e t 上面,它的用户就可以访问外部世界并与之通信。 但同肘,外部世界也同样可必访问该网络并与之交互。正是由于互联网的这种特 性,诸多安全相关的问题应运而生。黑客、入侵、垃圾邮件也伴随着网络的发展 而出现。因此,对到达自己内部网络上的数据实施有效的监控,从而保护内部网 络数据的安全,及时发现外部网络的攻击并及时阻止这些攻击变得至关重要。 目前,国内外市场上出现了许多用于网络监控的商业软件,如i b m 公司的 n e t v i e w 、h p 公司的o p e n v i e w 或者s u n 公司的s u nn e t m a n a g e r 等,它们都提供 了网络监控功能。尽管这些网络监控软件的功能很强大,但从某种意义上来说, 它们就如同操作系统一样,提供的是一个通用的网络监控平台,只有在这个平台 上,结合各个厂商的网络监控软件,构筑满足具体要求的网络监控应用系统时, 这个平台对于网络监控来说才有实际的意义。这些网络监控系统和产品大部分都 是基于s n m p 协议设计的。 另外,这些网络监控产品主要采用集中式管理模式,它们大多是采用基于单一 主机的m a n a g e r - - a g e n t 模式,由运行网络管理软件的m a n a g e r 从各a g e n t 收集网 络信息,在随管主机上完成对信息的分检和处理、网络各项参数的绘制与显示等 操作,其相关参数的绘制与显示也要依赖于相应的网管平台,没有一个统一而高 效的监控界面,这给网络管理员的操作和使用带来了一定的不便。 1 2 课题的实际意义 目前国内外在入侵检测方面已有些成形的软件,但对于入侵信息的检测方 法、入侵信息的分析等方面还有很多需要研究的地方。在入侵检测方面,目前流 行的有两种方法:一种是将网卡设置为混杂模式采集网络数据;另一种是通过 s n m p 采集网络数据。这两种方式实现起来比较容易,但实时性差,而且只有检 测能力不具备控制能力,是一种滞后的被动检测。吲内外很多用于网络监控的软 件,如i b m 公司的n e t v i e w 、h p 公司的o p e n v i e w 或者s u n 公司的s u nn e t m a n a g e r 等,都是基于s n m p 协议设计的。它们的实时性差,检测效率低,并且检测部分 和控制部分的连动性不是很好。 本文提出韵基于网关方式实现网络监控,在网络监控领域是个创新。它是 在操作系统网络协议栈中直接截取l p 数据包,既可实时分析,又可实时控制,是 一种同时实现网络信息监测与控制的比较理想的方法。它的实时性高,并且检测 和控制部分的连动性能好,即一旦检测出入侵行为,系统会立即丢弃该i p 地址的 数据包。 基于网关实施有效的网络监控,对于保护内部网络数据和资源的安全、有效 阻止内部网络用户对一些敏感网站的访问以及防止外部网络的攻击,都具有十分 重要的意义。另外,本课题中设计的通用监控网关提供了一个采集数据包和控制 ( 转发或拒绝) 数据包的通用接口。在这个通用虢控网关中封装了底层的调用, 并且做了优化处理,程序开发人员可以通过这个通用监控网关直接在内核中采集 和控制数据包,而不需再用底层的调用来编写代码捕获和控制数据包。因此,该 通用监控网关在包过滤型防火墙、基于用户的访问控制和审计以及入侵检测等方 面具有很重要的应用价值。 1 3 论文的主要工作 本文的主要工作在于研究基于网关的方法实现网络监控。笔者先是设计和实 现了个基于l i n u x 防火墙内核接口的通用监控网关,然后在此基础上,设计并完 成了一个基于该网关的网络监控系统。该网关具有在操作系统的内核中采集数据 包和控制( 转发或拒绝) 数据包的功能。笔者还在这个通用监控网关中注册了l i n u x 内存文件系统( p r o c ) ,这样就可以实现内核空间和用户空间的数据交换a 另外,在这个基于网关的网络监控系统中,设计了入侵检测功能模块,它可 以对从内核中采集到的网络数据进行入侵检测分析。为了实现w e b 服务,笔者还 自行设计了嵌入式w e b 服务器和嵌入式c g i 程序,这样做的好处是既可以不依赖 于提供w e b 服务的主机是否装有w e b 服务器,又可以显著的提商c g i 程序的响应 速度。 1 4 论文主要内容及结构安排 本文设计并实现了一个基 二l i n u x 防火墙内核接口的通用监控网关,分析研究 了基于该网关的网络监控系统的设计思想及实现方法。 全文共分六章,具体安排如下: 第1 章是概述部分。介绍了课题的来源及选题的实际意义。 第2 章价缀了课题相关的理论基础。首先,介绍了t c p i p 的基本原理,随后, 对l i n u x 内核编程技术和l i n u x 防火墙技术进行了详细的说明。 第3 章讲解了基于l i n u x 防火墙内核接口的通用监控网关的设计与实现。本章 是全文的重点。 第4 章介绍了上述l i n u x 通用监控网关在包过滤型防火墙、基于用户的访问控 制与审计以及网络入侵检测等领域的应用。 第5 章详细讲解了基于网关的网络监控系统的设计思想与实现方法,包括网 络监控系统的总体框架以及各个模块的设计与实现。 第6 章是结论部分。对本文的主要工作进行了总结,并对后续工作做了展望。 第6 章是结论部分。对本文的主要工作进行了总结,并对后续工作做了展望。 第2 章课题理论基础 2 1t o p i p 基本原理 t c p f l p 协议( t r a n s m i s s i o nc o n t r o lp r o t o c o la n d n t e m e tp r o t o c 0 1 ) 称为传输控制 与网际协议,它是美国国防部建议的互联网协议,相当于o s i 七层模式中的传输 层和网络层。t c p p 是多台计算机进行信息交换的一套通信协议。协议是通信双 方一致同意并严格遵守的规程,它规定计算机怎样通信,并给出连接网络和通过 这些连接进行路由选择和信息传输的协定。t c p i p 协议族的准确名称应该是 i n t e m e t 协议簇,t c p 和口是其中的两个协议。事实上,t c p i p 包括与这两个协 议有关的其它协议及网络应用;其中典型的其它协议是用户数据报协议( u o p ) 、地 址转化协议p ) 、和互联网控制报文协议( i c m p ) ,典型的应用远程终端程序 t e l n e t ,文件传输协议兀l p 和远程拷贝程序r c p 。通常i n t e r a c t 由若干个物理网络 组成,通过种称为路由器( r o u t e r ) 集成为一个大的虚拟网。世界上最大的i n t e r n e t 叫做i n t c r n c t 。由于t c p i p 是i n t e m e t 采用的协议族,所以人们通常将t c p i p 体系 结构称作i n t c m e t 体系结构。 2 1 1t c p f p 概述 1 t c p i p 的功能和特性 t c p i p 协议已经成为建设计算机局域网、广域网、特别是互联网的最重要的 通信协议,受到了广泛的应用和重视。t c p i p 协议之所以能被广泛采用和流行是 由于其具有以下的特征和功能。 ( 1 ) 健壮的客户朋艮务器结构 t c p i p 是良好的客p ) i 艮务器应用平台,特别是在广域网环境中。适应大型网 络结构。 t c p i p 特别适应网际环境下的大型网络结构,形成联网的公共平台,具有很 强的异机种联网功能,节点间的通信对路径是完全透明的,用户只需给出节点的 源地址和目标地址,所有路径及网间连接器选择均对用户透明a ( 2 ) 信息共享 成千上万的教育单位、防卫部门、科研和商业机构等都使用t c p i p 连接的 i n t e m e t 共享数据、传送电子邮件和其它公共服务。 ( 3 ) 通用性 t c p i p 几乎在每一种流通的计算机操作系统上都能实现。不仅用于异机种互 连,而且用于不同体系结构的异机种互连。不仅可以用于广域网,而且可以用于 局域网,以及局域网与广域网的互连。此外,网桥、路由器和网络分析程序的销 售商也都在他们的产品中为t c p f l p 协议提供支持。 2 。t c p ,口分层模型 网络模型一般都分为若干个层次,每一层负责通信的不同方面。一个协议族, 是备层不同协议的集合体。t c p i p 一般被认为是一个四层系统【l 】o ( 1 ) 链路层:有时也称为数据链路层或网络接口层,一般包括操作系统中的 设备驱动程序以及计算机中相应的网络接口卡。 ( 2 ) 网络层:处理网络中的分组移动。 ( 3 ) 传输层:为应用层提供了两主机问的数据流服务。 ( 4 ) 应用层:处理特定的应用细节。例如:t e l n e t 、f 1 甲、s m t p 、s n m p 。 物理介质 图2 1t c p i p 协议族的四层模型 f i g 2 1f o u rl e v e lm o d e lo ft c p i p 应用堪 2 1 2i p :因特网协议( i n t er n e t 协议) i p 是t c p i p 协议族中至关重要的组成部分,所有的t c p ,u d p ,i c m p 和i g m p 数据都通过口数据报传送。i p 提供的是一种不可靠的、无连接的数据报传输服务。 i p 协议数据报格式如图2 2 所示: 4 位 首部 版本长度 服务类型数据报总长 3 位 标识1 3 位片偏移 标志 生存时间协议首部棱验和 源p 地址 目的l p 地址 选项( 若有) 数据 图2 2i p 协议数据报格式 f i g 2 2d a t af o r m a to fi pp r o t o c o l - 版本:口协议在收到一个数据包时,首先检查这个域,以保证版本相同。 一 首部长度:指定心数据包首部的长度,这个长度以4 个字节为单位。 一 服务类型:规定对这个数据包的处理方式,例如是否提供更高的优先权。 - 数据包总长:指定整个i p 数据包的长度,这个长度以字节为单位。 标识:标识这个数据包,在i p 数据包碎片重组时使用。 - 不分割位、更多分割位和碎片偏移:当重组1 p 数据包碎片时使用这几个 域的内容。 一 生存时间:指定这个数据包的最大生存时问。 一 协议:表示创建这个i p 数据包的高层协议。 - 首部校验和( h e a d e rc h e c k s u m ) :用于保证i p 首部数据的正确性 源和目的摩地址:记录发送者和接收者的i p 地址。 - 选项:纪录i p 选项。 2 1 3t c p :传输控制协议 t c p 即传输控制协议。尽管t c p 和u d p 使用相同的网络层服务( i p ) ,t c p 为应用层提供了与u d p 完全不冠的服务。t c p 提供面向连接的、可靠的数据流服 务。所谓面向连接是指基于t c p 的两个应用程序在交换数据之前要先建立t c p 连 接。因而t c p 和i p 的结合得到了广泛的应用,特别是在异机种网或亘联网中形成 端对端的公用平台, t c p 酋部的数据格式如图2 3 所示【2 】: 1 6 位源端口号1 6 位目的端口号 3 2 位序列号 3 2 位确认编号 4 位头部保留 uaprs f r cs syi 1 6 位窗口大小 信息长度 ( 6 位) g kh tnn 1 6 位t c p 校验和1 6 位紧急指针 选择项( 如果有) 数据 图2 3t c p 首部数据格式 f i g 2 3d a t af o r m a to f t c ph e a d e r 源端口:标识发送t c p 数据段的进程。 - 目的端口:标识接收t c p 数据段的进程。 - 序列号:这个数据段所包含的数据字节的开始序列号。 一 确认序列号;发送这个数据段的进程期望接收的数据字节的开始序列号, 即已经接收的数据字节的最大序列号加1 。 - 数据段首部长度:这个长度以4 字节( 3 2 位) 为单位。 窗口大小( 1 6 位) :通知发送者可接收的数据量大小。 校验和:t c p 协议对整个数据段提供校验。 - 紧急指针:如果设置了紧急指针位( u r g ) ,这个域指出紧急数据相对于 这个数据段的开始序列号的偏移量。 - 选项:t c p 协议可以提供的其它功能。 - u r g ( u r g e n 0 位;如果使用紧急数据指针,则将这一位设置成1 。 - a c k ( a c k n o w l e d g e ) 位:如果确认序列号有效,则将这一一位设置成1 。 - p s h ( 1 m s h ) 位:表示“推”数据,如果这一位设置成1 ,表示希望接收方在 接收到这个数据之后,将他立即传送给高层应用程序,而不是缓存起来。 - r s t ( r e s e t ) 位:表示请求重置连接。 - s y n ( s y n c h r o n i z e ) 位:请求建立连接。 - f i n ( f i n i s h ) 位:请求关闭连接。 t c p 协议使用i p 协议传送数据段,而i p 协议的传输具有不可靠性。考虑到连 接请求和确认都有可能丢失,为了建立一条可靠的连接,t c p 协议采用3 次握手 方式 3 1 。t c p 的连接过程如图2 4 所示: 客户机服务器客户机服务器客户机 服务器 ( a ) 正常连接 ( b ) 数据段丢失( c ) 旧连接请求 圈2 4t c p 连接过程 f i g 2 4t c pc o n n e c t i o np r o c e s s 2 1 4u d p :用户数据报协议 u d p 协议是建立在i p 协议基础之上,和i p 协议+ 样,提供非面向连接和不 可靠的数据报服务。u d p 协议是非面向连接的协议,这意味着通信过程中,客户 机和服务器之间没有固定的通道。对于服务器而肓,每个客户机请求都是独立的, 服务器无法区分同一个客户机的连续两个请求之间的顺序;对于客户机而言每个 服务器回答也都是独立的,客户机不能指望最先的回答对应最先的请求。如果需 要维护通信顺序,应用程序必须在自己的程序中处理这个问题。因为u d p 协议的 这种非面向连接的特性,我们可以将每个u d p 数据报看成一个消息。 应用程序可以使用u d p 协议来进行通信,为了标识这些进程u d p 协议增加 了端口的概念,不同的进程使用不同的端口,每个端口都有一个不同的整数标识, 称为端口号。端口号分为公认端口号与自由端口号,服务器使用公认端口号来提 供服务,客户机使用自由端口号来与服务器通信。 在l i n u x 系统中,u d p 端口是一个可读和可写的软件结构,u d p 协议为每个 端口维护一个接收缓冲区。发送数据时,u d p 协议以数据内容生成一个数据报, 然后将它传递给低层的口协议发送。接收数据时,u d p 协议从低层i p 协议接收 到u d p 数据报,然后根据这个数据报的目的端口号,将这个数据报存放在相应 u d p 端口的接收缓冲区中。如果没有匹配的端口,u d p 协议丢弃这个数据报,并 且向发送主机返回一个“端口不可到达”的i c m p 消息;如果匹配端口的缓冲区 已满,u d p 协议也丢弃这个数据报,但是不返回错误消息【4 j 。 2 2l i n u x 内核编程技术 内核是一个操作系统的核心,它负责管理系统的进程、内存、设备驱动程序、 文件和网络系统,决定系统的性能和稳定性。l i n u x 作为一个自由软件,用户可以 根据自己的需要重新定制个更高效,更稳定的内核,这就需要用户掌握l i n u x 内核编程技术。 编译内核有两种模式:一种就是将相应部分编译到内核中( b u i l d - - i n ) ,一种 就是将该部分编译成模块。动态调用。如果编译到内核中,在内核启动时就可以 自动支持相应部分的功能。这样的优点是方便,速度快,当机器一启动,用户就 可以得到相应部分的功能,其缺点是会使内核变得很庞大。如果编译成模块,就 9 会生成对应的“0 ”文件,在使用的时候可以动态加载模块,优点是内核不会过于 庞大,但需要用户自己来调用这些模块。 2 2 1 内核模块与应用程序的对比 模块运行在内核i 司( k e r n e ls p a c e ) 里,而应用程序运行在用户空间( u s e rs p a c e ) 中。实际上,操作系统的作用是为程序提供个计算机硬件的一致视图。除此之 外,操作系统还必须负责程序的独立操作以及保护资源不受非法访问。现在所有 的处理器都具备了这个功能,人们选择在c p u 中实现不同的操作模式f 或级别) 。 不同的级别具有不同的功能,在较低的级别中将会禁止某些操作。程序代码只能 遥过有限数目的“门”来从一级切换到另一级。设计l i n u x 操作系统时利用了这些 硬件特性,使用了两个这样的级。当前所有的处理器都至少具有两个保护级,而 其它的一些处理器( 如i n t e l 的x 8 6 系列) 则会有更多的级。在l i n u x 中,内核运 行在最高级也称为管理员模式( s u p e r v i s o rm o d e ) ,在这一级中处理器控制着对硬 件的直接访问以及对内存的非授权访问。 我们通常将执行模式分为内核空间和用户空间。这种分类不仅说明了不同的 模式具有不同的权限等级,而且还说明了每个模式都有自己的内存映像,即自己 的地址空间。 应用程序从头到尾执行单个任务而模块却只是预先注册自己以便服务于将 来的某个请求,然后,它的“m a i n ”函数就立即结束。换句话说,函数i n i tm o d u l e ( 模 块的入口、的任务是为以后调用模块函数预先做准备,这就象模块在告诉调用者它 等待着某些事件发生,然后被调用。模块的第二个入口点,c l e a n _ m o d u l e ,在模块 即将卸载之前调用它。由它来完成善后的工作。 因为模块不和函数库连接,因此在源文件中不能包含通常的头文件。内核模 块只能使用作为内核一部分的函数。 内核编程和应用程序编程的最后一点不同之处在于处理错误的方式不同:应 用程序开发过程中的错误是无害的,而且总是可以使用调试程序跟踪源代码的问 题所在。而一个内核故障即使对整个系统不是致命的,也至少会对当前进程造成 致命的伤害1 5 i 。 2 2 2 模块化编程技术 l i n u x 的整体结构是内核是一个很大的独立的程序。这种整体结构对想在内核 中增加新功能的用户来说很不方便。为此,l i n u x 操作系统提供了一种全新的机制 一模块。可以说,模块的出新是l i n u x 的一大革新。有了模块以后,对用户来说, 添加自己的设备驱动程序,修改l i n u x 的内核就不再是一件很痛苦的事。模块允许 用户动态地修改内核,加载自己编写的程序,而在用户加载自己编写的程序时不 用每次都编译内核,然后重新启动计算机,这样缩短了程序员的开发时间。 l i n u x 模块加载进内核后,就变成了内核代码的一部分,其各种功能和权限都 与内核代码的地位是一样的。内核中有一个变量叫m o d u l el i s t ,其定义的原型如 下 e x t e l ms t r u c tm o d u l e m o d u l e _ l i s t ; 它是一个全局变量,每当用户将一个模块加载到内核中时,这个模块就会被添加 到由m o d u l e _ _ l i s t 形成的链表中。每当内核要使用到这个用户加载的模块所提供的 函数时,内核就会去检索这个链表,找到这个模块,然后再使用其提供的函数和 变量。 每一个模块都可以输出一些变量和函数,供其他模块或核心代码调用。当然, 这些模块也可以使用已经加载到内核中的模块提供的函数和变量。 模块在需要时,可通过符号表( s y m b o lt a b l e ) 使用核心资源,内核将资源登 记在符号表中。当模块加载时,内核利用符号表来解决模块的资源引用问题。l i n u x 允许模块堆栈,即一个模块可请求其他模块为之提供服务。当模块加载入内核时, 系统修改内核中的符号表将新加载模块提供的资源和符号加到内核符号表中。通 过这种通信机制,新载入的模块可以访问已加载的模块提供的资源。比如模块a 耍用到模块b 的函数和变量,那么在加载模块a 之前就必须加载模块b 。这就是 所谓的模块堆栈,否则模块a 是无法加载的。 l i n u x 使用了模块机制,在内核中实现一些基本的功能,如从模块到内核的接 口,内核管理所有模块的方式等等,而系统的可扩展性就留给模块来完成。在进 行模块编程的同时,也就是在进行内核编程,因为它的运行环境是内核环境,它 的程序运行的函数库都是在内核空间中所定义的,而不是在用户空间所定义的。 使用模块编程的优点就体现在,它让我们的操作系统内核更为紧凑:当我们需要 这个模块的功能的时候,就将这个模块加载;如果不需要的时候,就把它从内核 中卸载掉。这样既保证了内核的紧凑性,又保证了l i n u x 本身固有的单一体系结构 的优点。如果需要升级系统,或者安装驱动程序,我们不需要重新编译内核,只 需要编译我们的模块程序,然后使用用户空间的程序将模块插入就可以了。 在用户空间编写程序,m a i n ( ) 是所有函数的调用的开始。所有的函数调用按照 在m a i n ( ) 中规定的顺序,一个接一个的被调用。而模块化编程,程序的入口不同 于用户空间。这里没有了m a i n ( ) 函数,取而代之的是模块的装载函数和模块的卸 载函数。当用户执行命令:i n s m o dm o d u l e n a m e 或r m m o dm o d u l e n a m e 的时候,系 统中调用的就是i n i t _ m o d u l e ( ) 和c l e a n u p _ m o d u l e ( ) 这两个函数。 这两个函数的原型如下所示: i n ti n i t m o d u l e ( v o i d ) p d ot h ei n i t i a l i z a t i o nj o ba sa c o n s t r u c t 0 1 4 ,) ; v o i dc l e a n u pm o d u l e ( v o i d ) p d ot h ej o ba sad e s t r u c t o r 4 ) ; 一般在i n i tm o d u l e 中完成初始化的一些工作,例如申请并初始化内存区,注 册重要的函数,重要的数据结构等。而在函数c l e a n u p _ m o d u l e 中则完成一些后续 阶段的工作,例如释放申请的内存区,卸载注赡的函数,删除临时的结构变量等【6 】。 2 2 3 内核模块与应用程序的通信 l i n u x 操作系统的内核模块与应用程序属于操作系统的不同层次,应用程序的 用户进程直接与内核模块进行通信。 l i n u x 操行系统提供j p r o c 文件、设备驱动程序、套接字属性控制和n e t l i n k 等四种方式来实现内核模块与用户模块的通信。其中,p r o c 文件和设备驱动程序 这两种方式的实现方法招似,都是以文件方式操作,还可实现对用户模块的阻塞; 套接字属性控制显式地设置文件名,但不具备对用户模块的阻塞能力,不便于实 现用户模块从内核模块中批量读取数据;n e t l i n k 通过套接字实现内核模块与用户 模块的数据报通信,是一种不可靠的传输,从内核模块连续向用户模块传输数据 报时有可能造成数据报的丢失【”。 通过以上的分析,笔者在本课题中采用弗r o c 文件的方式来实现内核模块与应 用程序之间的通信。下面我们将详细的介绍一下l i n u x 操作系统中的p r o c 文件。 2 2 4 p r o c 文件系留芒介绍 p r o c 文件系统是一个虚拟文件系统,它通过文件系统接口实现,用于输出系 统运行状态。它以文件系统的形式,为操作系统本身和应用程序之间的通信提供 了一个界面,使应用程序能够安全,方便的获得系统当前的运行状况和内核的内 部数据信息,并且可以修改某些系统的配置信息【”。 p r o c 文件系统是一个到运行中进程地址空间的访问接口。通过p m c ,可以用 标准l i n u x 系统调用( 比如o p e n ( ) 、r e a 4 ( ) 、w r i t e ( ) 、i o c t l ( ) 等等) 访问进程地址 空间。 p - o c 文件系统中包含大量的系统和进程信息,因此必须为相应的信患配誊恰 当的权限。例如,根和c w d 目录应该仅有超级用户能够访问。最初设计加r o c 的目 的是允许更方便的对进程信息进行访问( 因此得名) ,现在它被用来更方便的获取 内核使用信息,例如p r o c m o d u l e s 有模块的列表,p r o c m e m i n f o 有内存使用的 统计表。 p r o c 文件系统是一个伪文件系统,它只存在内存中,而不占用外存空间。用 户或应用程序读取,= p r o c 文件时,p r o c 文件系统是动态从系统内核读出所需信息并 提交的。它的目录结构如表2 1 所示。 表2 1 p r o c 目录结构 t a b 2 1d i r e c t o r ys t r u c t u r et a b l ef o r p r o c 目录名称 目录内容 a p m 高级电源管理信息 c m d l i n e 内核命令行 c p u i n f o 关于c p u 信息 d e v i c e s可以用到的设备( 块设备,字符设备) d m a 使用的d m a 通道 f i t e s y s t e m s 支持的文件系统 i n t e r r u p t s 中断的使用 l o p o r t s v o 端口的使用 k c o r e内核核心印雾 k m s g 内核消息 l o a d a v g 负载均衡 l o c k s 内核锁 m e m i n f o 内存信息 m o d u t e s 加载模块列表 m o u n t s 加载的文件系统 p a r t j i t i o n s系统识别的分区表 r t c实时时钟 s l a b i n f os i a b 池信息 s t a t e全面统计状态袭 s w a p s 对换空间的利用情况 v e r s i o n 内核版本 一u p t i m e 系统正常运行时问 在一个特定的系统中并非所有这些目录都有,这取决于系统的内核配置和装 载的模块。另外,在p r o c 下还有三个很重要的目录:n e t ,s c s i 和s y s 。s y s 目录是 可写的,可以通过它来访问或修改内核的参数,而n e t 和s c s i 则依赖于内核配置。 例如,如果系统不支持s c s i ,则s c s i 目录不存在。 除了以上的这些目录外,还有的是一些以数字命名的目录,它们是进程目录。 系统中当前运行的每一个进程都有对应的一个目录在p r o c 下,以进程的p i d 号为 目录名,它们是读取进程信息的接口。而s e l f 目录则是读取进程本身的信息接口, 是一个l i n k 。 p r o c 文件系统并非一般的磁盘文件系统。从用户应用进程的角度看,应用进 程采用访问文件的方式访问p r o c 文件系统,而实际上调用的部是系统内核中与被 访问的p r o c 文件相对应的一段内核程序,该内核程序将内核内存信息传送给应用 进程。不同的p r o c 文件由不同的内核程序实现。 于p r o c 文件系统的主要作用是 允许内核向应用进程报告它的状态,所以没有专门向内存输入数据而设景的机制。 为了能够写入p r o c 文件,在应用程序中需要使用标准的文件系统机制,而在内核 程序中则要为相应的p r o c 文件提供专用的处理程序。 2 3l i n u x 防火墙技术 防火墙是个或一组系统,它在网络之间执行访问控制策略。实现防火墙的 实际方式各不相同,但是在原则上,防火墙可以被认为是这样一对机制:一种机 制是拦阻传输流通行。另一种机制是允许传输流通过1 9 】。 2 3 1l i n u x 防火墙简介 l i n u x 从1 1 内核开始就支持数据包过滤功能。1 9 9 4 年底。从b s d 系统中移 植i p f w 技术,l i n u x 在2 0 内核中起用i p f - w a d m 来操作内核包过滤规则:1 9 9 8 年, 在i p f w a d m 基础上进行功能增强扩展,u n u x 在2 2 内核中使用i p

温馨提示

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

评论

0/150

提交评论