互联网论坛监测系统的设计与实现毕业设计.docx
《互联网论坛监测系统的设计与实现毕业设计.docx》由会员分享,可在线阅读,更多相关《互联网论坛监测系统的设计与实现毕业设计.docx(30页珍藏版)》请在冰豆网上搜索。
![互联网论坛监测系统的设计与实现毕业设计.docx](https://file1.bdocx.com/fileroot1/2023-1/22/bab2ae4c-2d90-4aca-b908-83973c533cf1/bab2ae4c-2d90-4aca-b908-83973c533cf11.gif)
互联网论坛监测系统的设计与实现毕业设计
互联网论坛监测系统的设计与实现
摘要
互联网发展迅速,网络论坛也随之发展起来。
它在给人们带来了诸多方便的同时也产生了诸如传播色情暴力、发表反动言论和泄漏技术机密等一系列严重的问题。
因此人们对网络论坛内容监测的需求已经迫在眉睫,而对它的深入分析和研究就更具有极为重要的意义。
本文介绍了网络基础知识、网络监测和过滤的原理以及数据从客户端传到服务器端的方式。
分析了互联网论坛监测系统的目的、系统的组成原理和系统的功能模块。
其主要模块包括包捕获模块、解码模块、模式匹配模块。
它还提出了利用以太网的广播特性,在共享式网络环境下使用BPF技术来获取传输中的信息。
系统在Linux操作系统下,调用Libpcap库函数来实现抓包,对包中的内容进行分析,找出有害的信息,从而实现过滤功能。
利用文中介绍的方法来构建监测系统,能起到一定的监测作用。
关键词:
论坛监测;抓包;过滤;伯克利数据包过滤器
DesignandImplementationoftheInternetForumDetectiveSystem
Abstract
Astheinternethasbeendevelopingrapidly,theinternetforumhasbroughtmanyconvenienttothepeople.Butatthesametime,italsohasbeenhavingaseriesofquestions,suchasspreadsthepornography,declaresthereactionaryopinion,divulgesthesecretoftechnology,etc.ThereforetherequirementoftheInternetforumdetectivesystemhasbeenstaredintheface,andthoroughanalysisforthesystemhastheextremelyvitalsignificance.
Thethesisintroducesthebaseknowledgeofnetwork,theprincipleofthenetworkdetectingandfilter.Pointedoutamethodofhowthedatatransportfromthecustomertotheserver.Thethesishasanalyzedthegoalofinternetforumdetectivesystem,theprincipleofsystemcompositionandthefunctionmodule.Theimportantmoduleincludesthemoduleofcapturepackage,moduleofdecode,moduleofmatching.ThesystemproposesthebroadcastcharacteristicofEthernet,usingtheBPFtechnologytogainthenetworkinformationinthecommonnetworkenvironment.ThesystemhasbaseonLinuxoperationsystem,transferringalibpcapstoreroomfunctiontograspthepackage,analyzingthecontentofthepackageandfindingthebadmessageinordertorealizethefunctionoffilter.Thethesisusesthemethodwhichwasreferredjustnowtoconstructthesystemdetective,anditrealizessomeofitsfunctions.
Keywords:
Theforumdetecting;Libpcap;filter;BPF
目录
论文总页数:
25页
1引言1
1.1课题背景1
1.2本课题研究的意义1
1.3本课题的研究方向1
2网络监测和过滤技术1
2.1网络监测技术简介2
2.2包捕获3
2.2.1利用以太网的广播特性进行包捕获3
2.3包过滤3
3系统需求分析4
3.1互联网论坛监测的产生4
3.2论坛内容监测系统的总体目标4
3.2.1系统所需的环境配置5
3.2.2系统的流程图6
3.3系统功能分析6
4论坛监测软件设计的总体方案9
4.1论坛监测软件主要功能9
4.2论坛监测系统功能模块的描述10
5论坛监测软件的实现12
5.1运行环境和操作系统选择12
5.2系统对软硬件配置的要求12
5.3预期成果12
5.4软件模块的实现12
5.5论坛监测软件的对象关系图16
5.6论坛监测的关键代码16
6结果测试,性能分析20
6.1测试指标:
20
6.2测试环境20
6.3监测计算机处于局域网内部20
6.3.1用户机和目标论坛配置21
6.3.2网关的配置21
6.3.3测试方法与结果21
6.4监测计算机处于外部网络21
6.4.1用户机和目标论坛配置22
6.4.2网关的配置22
6.4.3测试方法与结果22
结论23
参考文献23
致谢24
声明25
1引言
1.1课题背景
互联网发展迅速,网络论坛不仅逐渐成为企业内部的沟通桥梁,也是企业和外部进行各类业务往来的重要管道。
同时企业如何能够从海量的数据信息中获取民众焦点和社会舆论动向已经成为管理部门日常工作的重中之重。
1.2本课题研究的意义
通过设计流量控制,身份验证,屏蔽各种端口等方法对用户上网发信息到目标论坛进行严格管理与控制,有效预防木马、病毒和用户进行反动,色情的信息传递。
1.3本课题的研究方向
综合运用以前所学的专业知识,设计开发一个互联网监测软件,本设计要求实现能够自动获取目标论坛的发布内容,系统针对发帖作者、发帖时间、帖子URL、帖子标题和帖子正文等关键字段开放基于单个字段或是组合选项的热点查询等这些功能,具体包括以下内容:
1.在设计与开发中,重点如何解决客户发的信息能够捕获到的问题;
2.在设计与开发中,难点是对捕获的信息过滤的问题。
本系统的开发首先分析互联网论坛监测系统软件的相关功能,结合本次毕业设计的相关要求写出需求分析;其次,综合运用以前所学的相关知识(包括计算机网络技术、相关协议、信息安全相关知识等),选择所熟悉的开发工具进行本毕业设计的开发;在设计中以需求分析为基础,写出系统开发计划、实现流程及相关问题的实现方法;同时,在开发设计与实现中,要保存好相关的设计文挡,为后面的毕业论文的写作准备材料;最后,系统开发完毕后,进行调试和试运行,做好调试和试运行的相关记录,也为后面的毕业论文的写作准备材料。
2网络监测和过滤技术
伴随着互联网的迅速普及,良莠不齐的网络发布内容日渐泛滥。
而随之带来的安全和管理问题不得不受到用户的重视。
从小型公司员工上网浪费工作时间和公司资源,到商业间谍通过一封邮件将公司机密泄露,无不体现着网络监测的必要性。
而监测也仅仅是一种手段,必须和企业的管理机制挂钩,有了比较好的衔接才能真正的实现事半功倍。
在众多的网络安全技术中,监测过滤技术是一个广泛使用的技术。
监视实时通讯的信息并提取有害内容,而且在不影响网络性能的基础上提取信息体,并进行高效的匹配从而建立有害信息库,为进一步拦截和做出统计分析做准备。
2.1网络监测技术简介
绝大多数的现代操作系统都提供了对底层网络数据包捕获的机制,其最初的目的在于对网络通信情况进行监测,以对网络的一些异常情况进行调试处理。
但随着互连网的快速普及和网络攻击行为的频繁出现,保护网络的运行安全也成为监测软件的另一个重要目的。
目前的监测软件主要有两种类型。
一种是通过侦测记录信息进行监测,类似于木马程序,这种监测软件通过抓屏、记录键盘击键信息或窃取IM记录文件等方式能够获取用户信息。
另外一种通过捕获网络中的广播数据从而进行监测。
监测特指“sniffer”(通常直译为嗅探或窥探),即利用计算机网络接口截获目的地为其他计算机的数据报文。
大体上来说,可以将监测程序分为两个组成部分:
·内核空间部分:
负责从网络中捕获以及过滤数据包。
·用户空间部分:
负责处理用户界面、格式化、协议分析,此外如果核心层没有进行过滤的话,还必须负责过滤部分工作。
监测程序大体结构如下图1:
2.2包捕获
不同的操作系统实现的底层包捕获机制可能是不一样的,但从形式上看大同小异。
数据包常规的传输路径依次为网卡、设备驱动层、数据链路层、IP层、传输层、最后到达应用程序。
而包捕获机制是在数据链路层增加一个旁路处理,对发送和接收到的数据包做过滤/缓冲等相关处理,最后直接传递到应用程序。
值得注意的是,包捕获机制并不影响操作系统对数据包的网络栈处理。
2.2.1利用以太网的广播特性进行包捕获
以太网数据传输通过广播实现,通常在同一个共享局域网的所有网络接口都有访问在物理媒体上传输的所有数据的能力,但是在系统正常工作时,应用程序只能接收到本主机为目标主机的数据包,其他数据包过滤后将被丢弃不作处理。
该过滤机制可以作用在链路层、网络层和传输层这几个层次。
链路层主要指网卡驱动程序判断所收到包的目标以太网地址,在系统正常工作时,一个合法的网络接口应该只响应这样的两种数据帧:
·帧的目标区域具有和本地网络接口相匹配的硬件地址。
·帧的目标区域具有广播地址。
在接收到上面两种情况的数据包时,网络接口通过CPU产生硬件中断,操作系统进行中断处理后将帧中所包含的数据传送给网络层进一步处理。
而其他情况下数据帧将被丢弃不作处理。
网络层判断目标IP地址是否为本机所绑定的IP地址,如果不是本机所绑定IP地址,将丢弃这些IP数据报;如果符合本机1P地址则交给传输层处理。
传输层中的TCP或者UDP判断目标端口是否在本机已经打开,如果没有打开,则抛弃这些包,否则将向应用层提交内容。
要监测到流经网卡的不属于自己主机的数据,必须绕过系统正常工作的处理机制,直接访问网络底层。
首先将网卡工作模式置于混杂(promiscuous)模式。
当网络接口处于这种混杂模式时,该网络接口具备“广播地址”,它对所有接收到的帧都产生硬件中断以提醒操作系统处理流经该物理媒体上的每一个报文(绝大多数的网络接口具备置成promiscuous方式的能力)。
操作系统直接访问数据链路层,截获相关数据,由应用程序如IP层,TCP层的协议对数据过滤处理,这样就可以监测到流经网卡的所有数据。
监测程序工作在网络环境中的底层,它会拦截所有的正在网络上传送的数据,并且通过相应的软件处理,可以实时分析这些数据的内容,进而分析所处的网络状态和整体布局。
2.3包过滤
网络信息监测将获取所有的网络信息,但在实际应用中,其中存在若干用户不关心的数据,或者称为垃圾数据。
如果垃圾数据比重极大,将严重影响系统工作效率。
事实上,网络监测模块过滤功能的效率是该网络监测的关键,因为对于网络上的每一数据包都会使用该模块处理,判断是否符合过滤条件。
低效率的过滤程序会导致数据包丢失、来不及分析处理等。
用户可以按特定的子网主机以及特定的协议端口如Http,FTP,E-mail等进行过滤,只将用户关心的敏感数据向上层提交,从而提高系统的工作效率。
信息的简单过滤有如下几种。
1.协议过滤:
根据传输层和网络层中的特性过滤,如选择。
TCP数据而非UDP数据。
2.类型过滤:
站过滤:
根据MAC地址,筛选出某个工作站或服务器的数据。
服务过滤:
根据端口筛选特定类型服务。
3.内容的过滤:
根据收到信息的内容,选择性的数据过滤。
本系统采用内容过滤的方法来实现论坛监测。
3系统需求分析
3.1互联网论坛监测的产生
互联网发展迅速,并在日益趋向跨国界、多语种、分布式和多接入的态势。
同时企业如何能够从海量的数据信息中获取民众焦点和社会舆论动向已经成为管理部门日常工作的重中之重。
从小型公司员工上网浪费工作时间和公司资源,到商业间谍通过一封邮件将公司机密泄露,无不体现着网络监测的必要性。
所以一种能够实时监测网络流量和网络传输信息,又能够通过网络信息中把色情和反动字眼的内容过滤的软件,是我们迫切需要的。
因此互联网论坛内容监测系统的产生就显得尤为重要。
它是当今网络发展的必然产物,也是未来网络的不可或缺的。
3.2论坛内容监测系统的总体目标
论坛监测系统总体目标:
通过设计流量控制,身份验证,屏蔽各种端口等方法对用户上网、收发邮件、聊天和电脑游戏进行严格管理与控制;有效预防黑客、木马和病毒,进行反动,色情的信息。
对用户上网行为的监测和管理事实上要配合一个复杂的网络系统体系去实现,首先要定义出了网络用户的类型,普通用户、管理员等都应有不同的网络权限去获得网络的资源。
此外对用户的数据的监测就通过流控设备,了解所使用的网络服务和各个服务的流量,对敏感的流量和服务有必要进行抓包分析。
互联网论坛内容监测系统能够自动获取目标论坛的发布内容,系统针对发帖作者、发帖时间、帖子URL、帖子标题和帖子正文等关键字段开放基于单个字段或是组合选项的热点查询功能,并能自动生成数据报告,从而帮助系统使用者真正实现对于社会热点的把握和社会动向的预期。
3.2.1系统所需的环境配置
拓扑图如下图2:
从上图可知,互联网论坛监测系统所需要包括的两个独立的平台:
数据获取/存储平台和数据报告生成平台。
其实这两个平台都是起到方便客户查找的功能。
数据获取和存储平台:
接入互联网,对定点网站、论坛进行数据深入挖掘,基于发帖人、发帖时间、主题及正文进行分类检索与统计,对目标站点的信息提取率达到90%;专项针对目标论坛的信息发布进行内容获取,对目标论坛分组,基于论坛组进行高效的轮询式全文获取;采用纯文本方式存储,以最大限度节约空间。
数据报告生成平台:
以海量信息为基础,自动聚成目标论坛当前热点,并发布信息快照、生成数据报告。
系统还应该需要:
定点网站深入挖掘
·网络终端浏览行为智能模拟
·目标站点信息提取率达到90%
·专项针对论坛发布内容获取
·目标论坛分组,基于论坛组的高效轮询式全文获取
此功能主要能够很快的建立目标论坛网站的目录,并根据需要定点某个网站。
在这个定点网站中利用搜索,提取所需的信息。
数据挖掘
·关注热点查询
·发帖人、发帖时间、主题及正文的分类检索与统计
此功能进一步对某个网站进行信息的有针对性的很具体的搜索,达到信息的快速获取。
信息聚类生成数据报告
·以海量信息为基础
·自动聚成目标论坛当前热点
·热点发帖信息快照
此功能是从论坛中的所有信息,自动筛选其热点信息供查找和阅读。
3.2.2系统的流程图
由以上对论坛监测的系统分析,要实现这些功能,关键技术就是实现抓包和过滤,因此得到该系统从开始抓包到最后匹配丢弃的一个流程图。
如下图3:
3.3系统功能分析
1.数据包捕获功能
论坛内容监测要实现抓包,就离不开Libpcap调用抓包库函数。
所以先介绍Libpcap:
Libpcap接口支持基于BSD数据包过滤器(BPF:
BerkeleyPaeketFilter)的数据过滤机制。
Libpcap库只支持BPF接口的内核过滤。
如果主机上没有BPF机制,则所有的数据包都必须读取到用户空间后,再在Libpcap库中进行过滤处理,这样就会增加额外的处理负担,导致性能的下降。
系统由网络接口卡、BPF和Libpcap组成。
网卡部分监视共享网络中的所有包,BPF用过滤条件匹配监视到的包,若匹配成功则将之从网卡驱动的缓冲区复制到核心区。
核心缓冲区分为两部分:
存储缓冲区和复制缓冲区。
存储缓冲区用于容纳过滤匹配成功后的数据包,复制缓冲区用于将包从核心缓冲区复制到用户缓冲区。
当存储缓冲区满而复制缓冲区空时,BPF将两者交换。
这样的设计使用户程序不需与网卡驱动程序交互。
Libpcap完成了如下工作:
·向用户程序提供抽象接口
·根据用户要求生成过滤指令
·管理用户缓冲区(用户程序不可见)
·负责用户程序与内核的交互
如图4所示:
2.包过滤功能
根据目前社会存在的各种问题及语言习惯,建立有害信息库,通过包捕获功能提取的IM软件传输的明文消息,将其与有害信息库中的关键词进行匹配,提取含有有害信息数据。
如法轮功,带有色情的信息和图片。
包过滤就离不开BerkeleyPacketFilter(BPF),即伯克利数据包过滤器,它提供了一种新的流量监测结构,性能比其它工具有显著提高。
BPF工作原理:
许多版本的UNIX都提供用户级别的网络监测功能,因为监测程序以用户级别进程工作。
数据包的拷贝必须跨越内核/用户保护界限,这就需要使用名为包过滤器(packetfilter)的内核代理程序。
BPF主要由两大部分组成:
网络分接头(NetworkTap)和数据包过滤器(PacketFilter)。
网络分接头从网络设备驱动程序处收集数据包拷贝,并传递给正在监测的应用程序。
过滤器决定某一数据包是被接收还是拒绝,以及如果被接受,数据中的那些部分被拷贝给应用程序。
如下图5:
……
图5BPF组成结构图
3.匹配报警功能
根据任务的实时性要求,报警、记录日志、图形显示等功能应建立在不影响包捕获的基础上。
当数据包匹配成功后,说明内容为有害的,因此该信息丢弃,并发出报警声。
4论坛监测软件设计的总体方案
互联网论坛监测系统使用的是用户/服务器的模式。
做服务器端的多台机子在一个局域网内,组成目标论坛,接收来自其他网络的客户机的信息。
做客户端的机子在另外的局域网内,发信息给目标论坛。
服务器机子装上这个监测软件后,可以捕获到客户端机子向这台机子发的信息(帖子)实现监测功能。
同时如果发的信息中含有发法轮功字眼等反动信息。
该软件就自动删除该帖子实现过滤功能。
并同时发出警报声。
客户端机子和服务器端机子分别在各自的路由器网关下构成一个小型的内部局域网。
他们分别有各自的出口网关。
由此可得到它的拓扑图如下图6:
4.1论坛监测软件主要功能
对外部网络的监测:
根据具体网络大小和监测应用的范围有所不同而做些修改即可。
通过监测机对网络中所有主机的数据进行检测,收集网络中的数据,当发现正常的数据流时,监测机不采取任何动作,当发现有敏感的数据时即可将其先隔离并保存下来,然后报警,通过管理员的操作和检验后再对用户pc加以处理。
这样的工作流程对于中小型企业来说是比较适用,只需要一个监测软件即可,设备的投入也不大,效果也比较好。
数据获取:
·互联网论坛监测系统呈现简洁、归一化的操作界面,多线程获取网站发布数据。
·在管理人员设定的遍历层数范围内,系统递归获取起始及随后页面中所有超链接所对应的内容。
·系统在受限于上述遍历层数的同时,还能接受管理人员对于最大下载字节数与每次请求间隔时间的设置,从而避免因其内容获取操作而造成目标论坛的工作负载骤然增加。
·接入互联网,对定点网站、论坛进行数据深入挖掘,基于发帖人、发帖时间、主题及正文进行分类检索与统计,对目标站点的信息提取率达到90%。
专项针对目标论坛的信息发布进行内容获取,对目标论坛分组,基于论坛组进行高效的轮询式全文获取;采用纯文本方式存储,以最大限度节约空间。
·显示当前已经获取帖子的发帖人、发帖时间、帖子位置、帖子标题、帖子URL等基本信息。
内容过滤功能:
包括对不需要监视的对象、内容、行为进行过滤(忽略监视),可针对3种对象(整个网络、分组、电脑)。
·全部监视/不监视、只监视部分应用。
根据不用管理需要,可设置为某些对象监视,某些对象不监视(比如管理员和老板没有必要被监视),某些用户应用监视,某些应用不监视。
由于网页监视很多广告垃圾而且比较消耗硬盘空间等资源。
·如果有人在观看网站的帖子后,想发表评论,如果评论中包含色情和反动的字眼就自动删除该帖子,并发出警报。
·网站过滤白名单和黑名单功能。
可设置只监视具体的一些网站,也可以忽略监视某些网站;比如一个公司里通常SINA这样的网站可能同时所有的人都有去看,如果都监视的话将相当浪费资源又内容重复,实际上也无意义和必要。
因此采用过滤方法模糊控制模式去忽略对一些公共的东西过滤。
比如输入SINA,将过滤全部包含SINA的所有URL访问,这叫做白名单过滤。
对包含色情和反动信息的过滤叫做黑名单过滤。
流量监视与限制:
包括针对具体的对象,能够详细准确监视其发生的流量,并能够限制其占据的流量带宽。
数据备份和配置管理:
包括允许定义数据保存时间或删除过时的数据。
数据、配置和日志的查看、打印、备份恢复功能。
简单容易的数据备份方式和海量存储模式。
支持监视内容和配置文件的海量模式备份、恢复。
4.2论坛监测系统功能模块的描述
对用户上网行为的监测和管理事实上要配合一个复杂的网络系统体系去实现,首先要定义网络用户的类型,普通用户、管理员等都应有不同的网络权限去获得网络的资源,因此就需要网管功能的软硬件了。
此外对用户的数据的监测就只能通过流控设备去实现,了解所使用的各个服务的流量,对敏感的流量和服务有必要进行抓包分析。
特别是对技术含量较高的企业有很大用途。
本系统根据功能模块化分为后台和前台软件两部分。
后台部分由主进程和主线程完成。
主进程通过主控模块实现。
主线程通过包捕获模块、解码模块、模式匹配模块和输出模块来完成。
前台部分包括图形显示模块、命令模块。
主控模块实现的功能包括所有模块的初始化、命令行解释、配置文件解释、建立主线程、关闭主线程。
包捕获模块是主线程的主程序,它将数据包捕获后的处理交给解码模块。
解码模块,定义不同的数据结构取得IP地址、TCP层的端口号以及信息实体等数据,在将这些数据填写到数据结构中供模式匹配模块来使用。
解码模块把从网络上抓取的原始数据包,从下向上沿各个协议栈进行解码并填充相应的数据结构,以便模式匹配模块处理。
模式匹配模块应用KWP算法将匹配字库与捕获到的IM信息进行匹配,提取有害信息,对有害信息进行定位。
输出模块接收模式匹配模块匹配出的结果建立黑名单,根据输出类型分别分发到图形显示模块、日志模块及提供黑名单给网关计算机以便于拦截计算机拦截有害内容。
命令模块将用户的信息传递给主控模块。
图形显示模块显示目前的关键字和匹配成功的信息和信息的源IP地址、目的IP地址、端口号、ID号。
日志模块实现各种报文日志功能,也就是把各种类型的报文记录到各科类型的日志中。
系统功能模块图如下图7:
图7系统功能模块
5论坛监测软件的实现
5.1运行环境和操作系统选择
通过分析,后台软件选用RedHat7.2(Linux2.4内核)作为开发平台。
主要因为:
1.Linux网络功能强大,其本