(计算机系统结构专业论文)基于协议分析技术的网络监控系统的设计与实现.pdf_第1页
(计算机系统结构专业论文)基于协议分析技术的网络监控系统的设计与实现.pdf_第2页
(计算机系统结构专业论文)基于协议分析技术的网络监控系统的设计与实现.pdf_第3页
(计算机系统结构专业论文)基于协议分析技术的网络监控系统的设计与实现.pdf_第4页
(计算机系统结构专业论文)基于协议分析技术的网络监控系统的设计与实现.pdf_第5页
已阅读5页,还剩82页未读 继续免费阅读

下载本文档

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

文档简介

j i 公0一 l _ :, jk0 厶 l j c ) 、 ,一 0 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均己在论文中作了明 确的说明并表示谢意。 签名: 塞! l 立:男 日期:劢o 年r 月仞日 论文使用授权 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名: 童:1 韭星 导师签名 日期:z 、 产l 摘要 摘要 中的深入和推广,计算机网络的应用已经很快地蔓延 网络给企业带来便利的同时,也使企业面临着巨大的 经济损失和法律风险【l 】。因此,对网络行为的监控是很有必要性的。本文的目的就 是为某企业设计一套既能实时监控又能有效管理局域网内部员工网络行为的监控 系统。 近几年网络监控软件的市场快速发展,国内许多公司都开发出了自己的监控 产品,但是这些产品安全性不是很好,有时候还会出现错误的检测结果,这些跟 国外的软件还差的很远【2 司。另外,目前可使用的监控软件都是商用软件,尽管它 们的功能很丰富,但是也有很多局限性。因此,自主研发的高水平的网络监控系 统的研究和实现有着很高的必要性。 本文在充分研究了国内外相关产品和文献的基础上,利用协议分析的技术开 发了一套网络监控系统。该系统具有的特性有:具有用户身份认证、用户身份绑 定、控制策略制定、浏览网页记录、邮件内容监控、m s n 聊天内容监控、网络流 量实时监控、m m a c 绑定等功能;同时要充分考虑煤化工企业应用和管理的特点, 无缝集成企业现有的信息系统。本监控系统在i j n 懈( r e d h a te n t 哪r i s e4 o ) 平台 上完成设计:使用p h p + a a c h e + m y s q l 完成了w e b 设计;后台则采用了l i n u x 操 作系统内建的i p t a b l e s + n e t j f i l t e r 数据包过滤机制来捕获网络层的数据包,然后再利 用t c p m 相关协议的知识,对截获到的数据进行分析。 关键词:网络行为监控,i p t a b l e s n e t 矗1 t e r ,协议分析 l i , , 1 j 1 , ,、。 l【iiiii ;、 。j:tp1;0 a b s t r a c t a b s t r a c t w n ht 1 1 ed e v e l o p m ta n dp r o m o t i o no fm e 锄t e 印r i s ei n f o 册a t i o nc o n s 仃u c t i o i l m o r ea 1 1 dm o r ee c 0 n o m i ca 嘶v i t i e sh a v eb e e i li n v o l v e di n t om e a p p l i c a t i o no fh l t 锄e t n e t 、) l ,o r km n g sc o n v 饥i e n c e ,b u ta l s om a l ( e st h ee n t e 叩r i s ef a c e sh u g ee c o n o m i cl o s s e s 锄dm el e g a l r i s l 【s t h e r e f o r e ,l em o i l i t o r i n go fn e 帆o r kb e h a v i o ri san e c c s s i 戗 e s p e c i a l l yf o ra l l 僦叩r i s e t h ep u r p o s eo ft l l em e s i si st od e s i 辨as c to fn e 帆o r k b e n a 0 rm o m t o n n gs y s t e n lf o ra c o m p a l l y ,w h i c hi sn o to n l y 锄r e a l t i m em o n i t o 咖 b u ta l s oe f r e c t i v em 锄a g e l l l 朗tn 咖o r kb e h a v i o fo f i n t e n l a l 锄p l o y e e s h lt 1 1 er e c e n ty e 躺,m em 破e to f 舭m 砌t o m g s y s t e i i ld c v e l o p sq u i c k l y m 孤y d o m e s t i cc o m p a i l i e sh a v ed e v e l o p e dt h e i ro w n m o n i t o 血gp r o d u c t s b u t 廿l o s ep r o d u c t s h a v el o ws e c u r i t y 觚dm a yb d n ga w r o n gd e t e c t i o ns o m e t i m e s s ot h e r ei sa 窒鹏a tg a p b 咖e e i ld o m e s t i c 髓df o r e i 舯p r o d u c t s 耽o u 曲t h ec o m m e r c i a ls o 日w a r eh a ss om 锄v 血n c t i o n s ,l e ya l s 0h a y em a n yl i m i t a t i o n s t h e r e 仍r e ,m er e s e a r c ha i l di m p l e i 】【l e n to fa h i 曲一l e v e ln 咖o r kb e h a y i o rm o l l i t 硎n gs y s t 锄i sn e c e s s 撕l yr e q u i r e d 1 1 1 er l e l m o r km o l l i t o 血gs y s t e mw i l lb e m e n t i o n e di nt 1 1 i st 1 1 e s i s ,d e v e l o p e do nm e 柚a l y s i so ft h er e l a t e dp r o d u c t sa i l dp a p e r s t h e 劬“o no ft h en 酏w o r km o n i t o r i n g s y s t e mi i l c l u d 鹤:u s e ri d e i l t 时锄t h e n t i c a t i o n ,u s e ri d e n t 毋b i n d i n 舀t 1 1 ef o 加u l a l i o no f t 1 1 ec o n t r o ls 饥l t e g y ,m a cb i n d i n g i ta l s oc a l lm o i l i t o rn l ew 曲,r e c o r dt 1 1 ec o n t 朗to f t 1 1 ee _ 珊a i l 锄dm ec h a tc o n t e n to fm s n ,a l l dm o n i t o rt l l en e 似o r k1 f l o w - e t c h lt l l e p r o c e s so ft l l ed e v c l o p m 锄t ,n l ec :h 锄i c a l t e 印r i s ea p p l i c a t i o n 锄dm em a l l a g e i l l e n t f e a t u r 馏i n u s tb ec o n s i d e r e d 锄ds e 锄l 鼯sn e 伊a t i o nw i mn l ee x i s t i n ge n t 哪m s e i 1 1 f 0 册a t i o ns y s t e m ,泐1 1 1 i ss y s t 锄h 部b e e l ld c v e l o p e do nl i n u xp l a t f 0 h n ( r e d h a t e n t e i p r i s e4 o ) 1 h ew 曲p a nh 勰b e e l ld e s i 印e du s i n gp h p + a p a d l e m y s q l n e b a c k g r o u l l d 印p l i c a t i o nu s e si p t a b l e 咖e t f i l t e rt ec _ l l l l o l o g yw l l i c hi sab u i l d i nm e c h a i l i s m o 士l 1 n u xs y s t 锄,t 0c 印t t l 】旧t t l en e t 、呔l a y e rd a t ap a c k e t s a tl 部t ,m e s ec a p t u r e dd a t a p a c k e t sw i l lb ea i l a l y s i sb yap r o 鲫n 删c hi sb a s e d0 nt c p m k e y w o r d s :n e 铆o r kb e h a v i o rm o i l i t o n n 岛i p t a b l e s n e t 6 1 t p r o t o c o l 缸a l y s i s l i i【l li-i 1 _ 一 i1 、 ; 目录 目录 第一章引言1 1 1研究背景l 1 1 1 项目背景1 1 2网络监控系统发展和研究现状2 1 2 1 网络监控软件的分类2 1 2 2 网络监控软件的工作模式2 1 3 论文所做的主要工作、特色及组织结构3 1 3 1 论文主要工作3 1 3 2 论文主要特色3 1 3 3 论文组织结构5 第二章项目涉及的理论知识6 2 1 i p t a b l e s n e t f i l t e r 技术6 2 1 1i p t a b l e s n e t f i l t e r 简介6 2 1 2n e t f i l t e r 框架7 2 1 3i p t a b l e s 语法7 2 2m 与t c p 协议研究与分析9 2 2 1t c p m 的分层结构9 2 2 2 网际协议i p 1o 2 2 3 传输层协议t c p 1 2 2 2 4 数据的封装与分用1 4 2 3 应用层协议分析15 2 3 1 邮件传输协议s m t p 15 2 3 2 电子邮件扩展协议m i m e l8 2 3 3 邮局协议p o p 3 。2 0 2 3 4 超文本传输协议h t r p 2 2 2 3 5 即时通信协议m s n m s 2 3 2 4 字符集。2 5 2 5 字符串匹配算法2 7 h i io、弋, k , 目录 2 6 本章总结3 0 第三章网络监控系统的总体设计3 1 3 1网络监控系统的层次架构3 1 3 2 系统环境的搭建3 2 3 3 数据捕获模块的设计3 3 3 4 数据分析模块的设计。3 5 3 5 数据库设计3 6 3 6w e b 设计3 9 3 7 本章总结4 4 第四章数据分析模块的设计与实现4 5 4 1数据分析模块概述4 5 4 2 数据分流技术4 6 4 3 数据包解封装4 6 4 4 数据重组4 8 4 5匹配算法5 3 4 6 队列数据处理5 5 4 6 1s m t pq u e u e 队列处理5 6 4 6 2p o pq u e u e 队歹0 处理一5 8 4 6 3h 1 叩q u e u e 队列处理5 9 4 6 4m s nq u e u e 队列处理6 2 4 7 本章总结6 4 第五章系统测试6 5 5 1测试环境。6 5 5 2 测试过程6 6 5 3 监控模块的测试用例6 8 5 4 本章总结6 9 第六章总结与展望7 0 6 1全文总结7 0 6 2 工作展望7 0 致谢7 2 参考文献一7 3 攻硕期间取得的研究成果。7 6 第一章引言 1 1研究背景 1 1 1 项目背景 第一章引言 根据相关资料显示,截止到2 0 0 9 年1 2 月,我国互联网普及率已经达到2 8 9 网民的总人数已经达到3 8 4 亿【7 1 。可见,随着我国互联网普及率的逐年提高,互 联网正在深入到人们的工作和生活当中。目前,互联网不仅成为企业内部交流的 主要工具,也是公司和外部进行各种经济活动的主要渠道。就在它给企业带来效 益的同时,也带来了面临巨大经济损失甚至承担法律责任的风险。员工将大部分 的上班时间浪费在网络娱乐上,这从不同的程度上消耗了企业的资源,降低了企 业的工作效率;网络是企业内部重要数据传输、即时通信的一个重要途径,它同 样也是造成秘密泄露的一种重要方式。由此看来从企业员工日常的网络行为到有 关企业秘密数据在网络上的传输,都可能造成企业内部信息外泄和生产力的流失。 就拿电子邮件来讲,电子邮件与先前纸质的信件比起来传输速度要快的多。 现在已经有许多企业为了提高工作效率,把电子邮件作为业务往来的主要渠道。 不过,电子邮件也可能被内部员工当做有意或无意泄露公司内部秘密的主要管道。 有很多大公司了防止员工泄露公司机密,甚至使用利用类似的监控软件记录职员 在公司里收发的邮件;还有的是当地派出所要求某些公司对其内部的所用往来邮 件进行备份以供查证。综上所述,对企业电子邮件进行监控并留档是相当重要的。 同样的,对互联网上的其它应用,如基本的网页浏览,聊天工具m s n 等对企业来 讲都是不可缺少的业务通道,同时也都是可能影响企业效益,造成生产力外流的 重要途径,也同样需要备份以供查证【8 】。 监控系统的市场近几年在高速发展,许多公司都相继研发出了自己的产品。 例如国外i s s 的n e 慨o r kp r o b e 、m m 的n “v i e w 等,但是从某个角度来说,它们 开发的只是一个平台【9 】;国内的网络行为监控的软件有:网路岗、网络百警等,它 们为解决网络上出现的泄密、造谣生事等恶意行为作出了很大的贡献,但是这些 产品安全系数低,并且会出现错误的结果,所以说跟国外的软件还相差的很远【1 0 】。 电子科技大学硕士学位论文 此外,网络监控商用软件的尽管功能丰富,但也有其局限性:第一,其产品的功 能不能任意裁剪。这样所有客户必须购买其全部的功能服务,增加了客户的成本 负担;而对于有特殊要求的客户,商用软件则只能提供一般性的监控管理而不能 满足其具有针对性的要求。第二,从网络监控商用软件的保密性较差,这对有保 密要求的客户来说具有很大的风险性。因此,作为自主开发的网络监控软件既可 以满足客户的一般性需求,又可以专门为客户量身定制其所需要的功能,同时在 保密性方面也具有巨大的优势。 综上所述,自主研发的高水平网络监控软件的研究与设计具有较高的必要性 和紧迫性。 1 2网络监控系统发展和研究现状 在项目调研过程中发现,目前市场上流行的网络行为监控系统都是商业软件, 由于技术的保密性我们也只能了解其所具有的监控功能;而涉及协议分析的文献 通常只提出了对邮件或者是m s n 等某一种网络行为进行监控的模型,没有开发过 能监控多种网络行为的有实用价值的系统。所以本课题的目的就是通过大量的阅 读相关文献,自主开发出一套符合公司要求的、功能强大的网络行为监控软件。 1 2 1 网络监控软件的分类 ( 1 ) 使用开源的l i l ) p c a p 或者其修改版 这种机制捕获的是链路层上的数据包,但是利用这种机制不能过滤和拦截网 络数据包【1 2 】。不过由于l i b p c a p 是免费的,所以一些软件还是采用了这种机制。 采用这种技术的网络监控软件有:网路岗、p 2 p 终结者等。 ( 2 ) 采用自主研发的驱动抓包 由于一些单位的特殊性质,比如有特定的要求,如需要拦截网络数据包等等。 这样就促使一些监控软件的制造商自己来开发网络数据的抓包机制【1 3 1 。目前国内 比较著名的是上海百络研发的基于妇c a p 的百络网警。 1 2 2 网络监控软件的工作模式 ( 1 ) 网关模式 就是将安装有监控程序的电脑作为整个局域网的网关。它的工作模式有点像 路由器,使用存储转发的模式,所以在性能上难免会差强人意。 2 第一章引言 ( 2 ) 网桥模式 将机器的两张网卡做成一个透明网桥,网桥被认为是一根网线,所以使用这 种模式系统在性能上几乎没有什么损失。 ( 3 ) 旁路模式 只适用于小型网络,需要建立虚拟网关且在环境中不能安装触世防火墙。 ( 4 ) 监听模式 采用共享式h u b 或者交换机镜像。这种模式无法实现流量限制等很多功能, 并且效率比较低下。l i b p c a p 采用的就是这种模式。 1 3 论文所做的主要工作、特色及组织结构 1 3 1 论文主要工作 本论文是基于作者参与的“宰宰宰木宰公司网络行为监控系统 项目,该项目是电 子科技大学和幸半省一个大型煤矿企业的合作项目。该系统主要包括具有用户认证i 网页浏览记录和跟踪、邮件信息监控及跟踪、网络流量监控、分类统计和审计的 功能、针对不同组别的人员设置不同的控制策略,并且能对目前比较流行的下载 软件、聊天软件、游戏软件和股票软件进行有效的监控,功能实用,界面简明、 美观。 网络监控系统以网桥的形式接入到局域网中,通过对网络层的数据包进行捕 获、分析和阻塞来完成。此系统一共可以划分为:数据捕获、数据分析、数据库 设计、w e b 设计四个大的模块。作者参与了从需求分析到项目测试的整个开发过 程,是项目的主要研发人员,重点负责项目的基础模块数据分析模块的设计与实 现。 1 3 2 论文主要特色 本监控系统采用基于协议分析的技术来完成对数据包内容的分析,由于网络 协议本身具有严格的规则性,并且其内部的结构是完全透明的,所以在捕获到的 数据包中可以只对特定的位置进行分析,有针对性;而且这种技术通过对协议内 容进行解码和还原可以准确得到协议中所传输的内容,准确性高。目前基于协议 分析的技术已经被广泛应用到跟入侵检测系统设计相关的各个领域,在本课题中 则将利用协议分析这种强大的优势来完成对局域网内网络行为监控系统的实现。 3 电子科技大学硕士学位论文 此外,根据客户要求本课题将要完成的系统需要和公司现有的管理内部网络 的系统达到无缝集成。所以本系统除了具备常见监控系统的功能外,还需要有一 些其它功能。在对网络行为监控技术在国内外的发展现状做了研究,并为目标企 业“量身定做”了一套监控系统的设计方案。行为监控系统所具有的功能如下: n ) 邮件监控 网络管理员可以通过邮件日志界面来查看、删除局域网内所有用户的邮件 信息。 该日志记录了发送主机的疋、收件人、发件人、邮件的发送时间、邮件的 主题、邮件的正文以及附件名称。 网管可以根据相应关键字查找某天某m 含有某些字符的的邮件信息。 ( 2 ) 网页监控 网页监控日志包括被监控主机的p 、访问时间、网站类型以及网页地址。 管理员通过关键字查找相应的网页信息。 管理员可以查看所有被记录的网页内容,并可以链接到具体的网页。 采用对网页地址和访问主机口的同时限制的办法,彻底地禁止非法的浏 览网页内容。 ( 3 ) i p 小队c 管理 只有网络管理员才能对整个内部网络的口地址进行划分、分配和修改。 记录每个口用户的详细信息,以便通过口来查询具体的个人信息。 可以方便的分配临时i p 地址,从而解决外来出差人员的网络接入问题。 i p 地址分组,能自动划分管理员、领导、普通员工等不同的角色,并在进 行监控的时候会根据角色的不同而采取不同的控制策略。 具有口地址防篡改的功能,防止局域网内员工随便私自修改自身原有p 。 m a c 管理,网络管理员可以对擅自篡改m a c 的员工断网并给予警告。 ( 4 ) 恶意网络行为识别与控制 监控内部网络中的所有电脑是否进行恶意行为。 对6 时攻击等一系列的内部网络攻击的行为报警,并将其断网,以免出 现广播风暴等现象,从而影响了整个网络的安全和使用效率。 ( 5 ) 网络流量监控 显示目前网络中的实时流量;并保存局域网中一个月的总流量。 分别对网络总流量和各个网络协议的流量进行监控,管理员可以通过监控 软件提供的实时信息,合理地管理和分配内部网络的资源。 第一章引言 ( 6 ) 股票软件和游戏软件的监控 禁止在上班时间进行与工作无关的网络行为,发现后及时通知管理员。 ( 7 ) 关键字屏蔽 管理员可以在页面上事先设置好需要过滤的关键字,系统可以根据其自动 进行匹配过滤,如果用户试图浏览包含有敏感信息的网页,系统将自动对 其进行拦截和记录,以便管理员进行审查。 ( 8 ) p 2 p 下载软件监控 可以对被监控电脑中各种p 2 p 下载软件( 如b t 、迅雷等) 、即时通讯软 件( 如m s n ) ,网络游戏等p 2 p 流量进行监控。网络管理员还可以针对 不同的组,制定不同的监控策略。 ( 9 ) 对即时通讯软件的监控 包括记录内网聊天者的i p 、双方谈话的详细内容以及消息发送的时间。 1 3 3 论文组织结构 第一章是引言部分。先介绍了本文的研究背景,然后描述了网络行为监控系 统能够完成的功能和作者在项目中论文所做的工作。 第二章主要介绍在设计、实现本项目过程中所涉及到的理论知识。 第三章对给出了整个网络行为监控系统的架构,详细介绍了数据捕获、数据 分析、数据库设计和w e b 设计四个模块的主要功能,以及模块之间的关系。 第四章着重介绍基于s m t p 、p o p 3 、h t t p 和m s 讧s 协议的理论知识,对 局域网内数据进行分析,进而实现数据分析模块。 第五章给出了整个系统的测试环境以及系统的测试结果。 第六章是总结,概括了本系统的功能,并对该网络监控系统的进一步完善提 出了可能的改进方案和发展的前景。 5 电子科技大学硕士学位论文 第二章项目涉及的理论知识 2 1 i p t a b l e s n e t f i l t e r 技术 本系统在数据包捕获模块采用的是l i l l u ) 【内建的i p t a b l e s n e t f i l t e r 机制。这种 机制是l i n u x 内嵌的防火墙机制,有些课题常常利用它来完成入侵检测系统的设 计。由于它具有强大的数据捕获和过滤功能,并且操作灵活、便于控制,所以从 理论上讲能很好地满足本系统的需要。 2 1 1i p t a b l e s n e t f i l t e r 简介 n e t f i l t 盯i p t a b l e s 是集成在“n u x 内核中的一个i p 数据包过滤系统,由n e t 6 l t e r 和i p t a b l e s 两个部分组成的。使用者可以根据自己的要求使用i p t a b l e s 添加、删除 和编辑数据包的过滤规则,这些规则都被存储在数据包过滤表中,然后再被集成 到l i n u x 得内核中对i p 数据包进行捕获、阻断【l 4 | 。 执行在l i n u x 操作系统中的进程有两个状态:用户态和核心态。为了保证内核 的数据不会轻易被修改,用户态的进程是不能访问系统内核的,如果想访问内核 用户程序只有通过系统调用转到内核裂1 5 】。而i p t a b l e s 和r l e t f i l t e r 就是在分别处于 上述两种状态下的机制。后者处于内核态,它可以被用来过滤i n t e m e t 网络层上的 数据报,如果不改变它的过滤规则,它就会一直执行同一种规则;如果想使内核 的这种过滤机制为用户本身的特定需求所用,只有向内核中添加新的规则。而 i p t a b l e s 就是这样一种机制,可以使用户向内核的数据报过滤系统中插入、修改及 删除数据包的过滤规则,当这些过滤规则被指定后就会被存储到内核层的规则过 滤表,数据包过滤系统就是根据这些新制定的规则过滤和捕获所需要的网络数据。 那在内核层是如何过滤数据报的呢? 通过在用户空间用户定制了一些可以使 某种协议的数据包被捕获或者某个端口的数据被丢弃等的规则。这些规则都被存 储在n e t 丘l t e r 过滤机制的的表中,然后过滤表再将规则根据设定规则所要处理的数 据包的类型将其分在不同的链中,从而集成到了系统的内核中【l 们。经过这个过程, 对数据包的过滤就由用户空间转到内核空间去执行了。当数据包到达后,内核立 即提取该数据包的首部信息并将其依次与每条已设置的过滤规则进行匹配:若数 6 第二章项目涉及的理论知识 据包的首部信息与某条规则相一致,那么该数据包就会按照规定的操作被执行; 但如果数据包中的信息跟所有设置的规则都不匹配就会按照默认方式来决定到底 应该怎样来处理这个数据包【1 7 】。在下面的两节中将分别对n e t f i l t e r 和i p t a b l e s 做一 个详细的介绍。 2 1 2n e t f i l t e r 框架 n e t f i l t e r 是内嵌在l i n u x 内核中用来处理流经i p 协议栈的网络报文的一系列调 用接口。按照数据的流向,口数据报可以被分为:流入的、流经的和流出的。d v 4 协议栈支持n e t f i l t e r 架构,当p 数据包在口v 4 协议栈传递的过程中,分别在报文 到达本地路由以前;报文被转发到另一个路由之前;报文要流入本地路由前;报 文流入本地路由后;报文要离开本地路由前这5 个时刻注册了5 个钩子函数【1 8 】。 当有数据报到达上述的某个时刻时,d 层的代码就执行到n fh o o k ( ) 宏函 数,上述5 个时刻的钩子函数将被当做此宏函数的参数进行相关的调用。 每个被调用的钩子函数执行完后都会返回一个返回值来通知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 fr e p e a t :表示需要再次执行检查点的函数。 n fq u e u e : 表示数据报可以被用户进程访问; 在上述每个检查点上执行钩子函数,就是转去调用该检查点上设置的一些处 理函数,这些处理函数用来检查该检查点上的数据报,根据已经制定的过滤过则 应该执行哪种操作:决定是丢弃还是捕获该数据报还是将该数据报传送到用户空 间的队列中等待被调用。n e t f i l t e r 还有一个非常强大的功能就是用户进程随时都可 以对任何一个规则进行编辑,完成要求执行的操作,这样在用户空间来对接受的 数据报进行处理,从而减轻了内核的工作量,提高了系统的处理速率。 2 1 3i p t a b l e s 语法 i p t a b l e s 是用户空间向n e t 矗l t e r 架构提供m 数据报过滤规则的一种工具,它采 用的主要工作模式是对内核中过滤表的操作【1 9 1 。 ( 1 ) 表选项 7 电子科技大学硕士学位论文 i p t a b l e s 主要是由表构成的,对i p t a b l e s 的操作就是对它内置的表的操作,即 指定对哪些表中的规则要执行操作。以t a b l e 选项被指示添加规则的表名,有矗1 t e r 、 n a t 和m a l l 西e 三种可用的表选项。缺省时使用f i l t e r 表。每张表里又包含了不同的 链。表和链的关系见表2 1 。 表2 1 表和链的关系 m l b l e c h a i l l s 丘1 t e r ( 过滤) i n p u t 、f o r 愉r d 、o u t p u t n a t ( 转发)p i 冱r o u t i n g 、o u t p u t 、p o s t o u t i n g m a l l g l e ( 变更) 包含上述两个表中的所有链 ( 2 ) 命令选项( c o l l l l n 孤d ) 指定对提交的规则要执行什么样的操作。例如添加、删除、修改和查看等。 以下是最常用的一些命令: a :在该链的末尾追加一条规则。 如:$ i p t l b l e s ai n p u t d1 9 2 1 6 8 ,1 2 8 2 3 - ja c c e p t d :删除匹配的规则,后面可跟指定的端口或规则在链中的位置编号。 女:$ i p t a b l e s di n p l 玎d p o r t8 0 _ ja c c e p t - p :指定链的默认动作。在数据报首部信息与所有的规则都不匹配时会被 使用该选项执行默认操作。如:$ i p t a b l e s - p 玳p u td r o p - n :用后面的名字来制定一个新链。如:$ i p t a b l e s _ nn e w c h a i n f :可以删除指定链里存在的所有规则,也可以删除后面链中的所有规则。 如:$ i p t a b l e s f l : 陈列出某条链中的现存的一切过滤规则。如:$ i p t a b l e s - l n c w c h a i l l ( 3 ) 匹配选项( m a t i c h ) 指定数据报包首部的哪部分信息将与规则进行匹配。下面介绍一些最为常用 的匹配选项( 下面的匹配选项都可以用”! ”来表示不与某项匹配) : - p :检查某些特定的协议用来匹配常用的协议如:t c p 、u d p 等。可以匹配 某一种协议,也可以匹配多个协议的组合。在匹配多个协议时,要在协议之间用“,” 隔开。如果没有指定跟哪个协议进行匹配,那么默认为对t c p 和u d p 进行匹配。 如:$ i p t a b l e s a 邶u t _ pt c p - s : 获取数据报中的源口来与规则进行匹配。如果不指定匹配源地址就默认 是与一切口地址进行规则匹配。 8 第二章项目涉及的理论知识 如:$ i p t a b l e s a o u t p u t s1 9 2 1 6 8 1 2 8 1 6 d :获取数据报中的目的口来与指定的规则进行匹配。它也允许指定第某 一个范围的m 地址进行匹配。 如:$ i p t a b l e s - a u t p u t d1 9 2 1 6 8 1 2 8 1 6 另外,i p t a b l e s 的匹配还有一些扩展。它还可以匹配t c p 的源目的端口以及 t c p 的相关信息:还能匹配接收端的m a c 等。 ( 4 ) 动作目标选择项( t a r g e t ) 目标是用户定义规则中对匹配成功的数据报进行的指定操作。下面介绍一些 被广泛使用的目标: a c c e p t :如果数据包中的内容与制定的规则匹配成功,那么该数据包就可以 被系统接收并转去执行相应的目标操作。 i 也j e c t :禁止与规则匹配的网络数据包通过,执行此操作后并将发送错误的 信息传回给数据包的发送方。 d r o p :如果数据报的信息与制定的丢弃规则相匹配,那么这个数据包会被 系统直接丢弃,但是不会响应出错信息。这种机制有可能在s e v e r 和c l i 饥t 上留下套接字的“僵尸“。 2 2 i p 与t c p 协议研究与分析 t c p 佃( t r a l l s n l i s s i o nc o n 拄0 1p r o t o c 0 m n t e m e tp r o t o c 0 1 ) ,传输控制协议因特 网互联协议,提供互联网中两台电脑之间点对点的通信。它是i i l t e n l e t 最基本的协 议2 0 1 。在这一节中主要是分别介绍有关t c p 和i p 的基础知识。 2 2 1t c p i p 的分层结构 o s i ( 开放式系统互连参考模型) ,是一种通信协议的7 层抽象的参考模型, 这7 层是:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层【2 0 1 , 其中每一层执行某一特定任务。o s i 设计的最初目的是使世界上所有的的计算机网 络都遵循一个统一的标准,那么全世界的计算机都能够很方便地进行交流。但是 实际上o s i 的七层协议体系结构既复杂又不实用。可是t c p 口的体系结构并不完 全符合o s i 的七层参考模型,它采用的是4 层的层级结构【2 们。 9 电子科技大学硕士学位论文 应用层 ( s m t p 、h t t p 等) 传输层 ( t c p 和u d p ) 网络层 ( i p 、i c m p 和i g m p ) 链路层 ( 设备驱动和网卡) 图2 - 1t c p 力 p 的4 层协议 ( 1 ) 应用层 本层直接为用户的应用程序提供服务,是这个四层体系结构中的最上层。支 持的协议有很多种:如支持万维网应用的h t r p 协议,电子邮件传输协议( s m t p 和p o p 3 ) 、各种应用层软件自主定义的协议( 如m s n 的通信协议m s n m s ) 等。 ( 2 ) 传输层 传输层的传输单位是报文段,它支持两种不同的协议:即面向连接又能够提 供可靠交付的传输协议t c p ( t r a l l s m i s s i o nc o n 仃o lp r o t o c 0 1 ) ,和不保证提供可靠 交付的、无连接的传输协议u d p ( u s e rd a t a 伊a mp r o t o c 0 1 ) 。 ( 3 ) 网络层 如网际协议( i p ) ,这一层负责向不同的主机提供数据包传送的服务。在发送 数据时,网络层将传输层传递过来的报文段或者用户数据报封装成i p 数据报进行 传送。 ( 4 ) 链路层 负责在数据发送时将从网络层传下来的口数据报组装成帧,通信双方之间是 以帧为单位传送数据的,每一帧都包括数据和一些控制信息。 在t c p 口四层协议中,除了应用层外每层都要向其上层提供自己的服务。这 种关系在数据的封装与分用上能更还的体现出来。数据的封装和分用会在后面的 章节中进行简要介绍。 2 2 2 网际协议i p 球负责传输所有的传输层协议数据以及其它所有经过网络进行传输的数据, 1 0 第二章项目涉及的理论知识 是四层结构中最重要的一个协议。口不能确定数据能够被完整准确的发送到接收 方,但是p 首部还是有个检验字段,当发现接收到的数据报首部有错误时就直接 将其扔掉,然后再向发送端传递一个出错信息,通知发送端数据错误需要重新发 送刚才的数据报【z 0 1 。 在网络层的数据都被封在数据报中,在传送的过程中都是一一被传输的,相 互间没有任何关系,因为p 不提供数据报之间的关联信息;也就是说有可能后发 的数据报会比先发的数据报到达目的地,目的地接收端接收的数据报可能跟发送 的顺序不一样。礤数据报的传输的可靠性可以由它的上层协议来提供 2 0 。 由于在本项目中是对i p 数据报进行捕获和分析,所以下面将介绍一下口数据 报首部的各个字段。 版本号和首部长度两个字段被一块存储在首部的第一个字节中。现在日常生 活中使用最多的网际协议是第四版,所以i p 也叫做p v 4 ;d 数据包的首部长度是 可变的,但总是4 字节的整数倍。首部的总长度字段表示的是从数据报首部的第 一个字节到数据字段的最后一个字节的所有数据的总的字节数【2 0 1 。 首部检验和这个字段只能对口数据报的首部进行检验以来保证它的正确性和 完整性,而不能保证首部后面所传输数据的完整、正确,数据的准确性应该由协 议字段所表示的上层协议来保证。 两个3 2 位的地址决定了数据报传输过程中的路由情况。 版本 首部长度服务类型 总长度( 字节数) 标识 标志片偏移 生存时间 协议首部检验和 源地址 目的地址 选项( 如果有) 数据 图2 2p 的首部 电子科技大学硕士学位论文 2 2 3 传输层协议t c p t c p 是一种面向连接的、可靠的传输协议,它以字节流的方式向应用层提供 安全可靠服务。面向连接指的是一个t c p 连接中,有且只有两方在进行通信,并 且双方在相互通信之前必须要建立一个t c p 连接;可靠是指能保证应用数据准确 到达目的地【2 0 1 。 下面将介绍一下t c p 提供可靠传输的方式和用到的首部字段。 t c p 需要把应用层的数据分割成特定长度的报文段传递给p 层( 但是u 1 ) p 在传输应用层数据时,不会切割数据报的长度) 。 当t c p 发送出一个t c p 数据段后,如果发送端在规定的时间内没有收到确认 的数据报的话,它将重新发送这个数据段【2 0 】。 当t c p 收到通信对方的数据后,会检验数据报的首部和数据是否有错、重复 或不确定,如果有则丢弃。对数据包的任何处理都会发送端发送一个响应。 如图2 3 所示,每个t c p 数据段中都包含有发送数据的源端口和接收数据的 目的端口的端口号,利用这两个端口号可以确定发送端和接收端运行的是哪种应 用程序。另外,源端口和目的端口的端口号加上i p 首部中的源i p 地址和目的p 地址四个元素组就可以唯一确定一个t c p 连接。本课题在后面协议分析中就用到 了这个知识。 源端口号目的端口号 序列号 确认号 首部长保留 ua p r f s r c s siy 窗口大小 度6 位 g k h tnn t c p 检验和紧急指针 选项( 若有) 数据( 若有) 图2 3t c p 的首部 1 2 第二章项目涉及的理论知识 t c p 数据段在传输的过程中,被封装在口数据包中。由于口数据报的到达可 能会失去顺序,所以t c p 段的到达也可能不按照原来的顺序。所以,要对收到的 t c p 数据段要进行重新排序【2 0 1 。 t c p 传输数据需要建立连接来确保数据的完整、可靠。一般习惯上称t c p 的 建立连接的过程为三次握手,终止连接的过程称为四次挥手【2 l 】。 表2 2 t c p 的首部字段 字段 描述 端口号这个字段是用来区别不同的应用程序。 序列号此字段表示某t c p 段中初始字节在总数据中的顺序号。 确认号 表示接收端下一个将要接收的数据报

温馨提示

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

评论

0/150

提交评论