ImplementationofaNetworkListeningSystem
王超WANGChao(辽宁建筑职业学院,辽阳111000)(LiaoningJianzhuVocationalUniversity,Liaoyang111000,China)
摘要院随着互联网的发展,网络安全、网络环境越来越受到人们的重视,本系统就是对捕捉到的网络信息进行拦截、分析,屏蔽不良信息,本文着重探讨系统的实现过程。
Abstract:WiththedevelopmentofInternet,networksecurityandnetworkenvironmentareattractingmoreandmorepeople'sattention.Thissystemistointerceptandanalyzenetworkinformationcaptureandshieldbadinformation.Thepaperfocusesontheimplementationprocessofthesystem.
关键词院网络信息;数据包捕获;拦截消息Keywords:networkinformation;packetcapture;interceptmessages
中图分类号院[X936]文献标识码院A文章编号院1006-4311(2014)10-0209-020
引言随着互联网的发展,网络安全、网络环境越来越受到人们的重视,本系统就是对捕捉到的网络信息进行拦截、分析,屏蔽不良信息,本文着重探讨系统的实现过程,采用自顶向下的实现方法,即尽量先实现上层模块,逐步向下求精,最后实现下层基本模块。
1系统开发环境本系统在Linux系统环境中开发,是因为Linux是一种可移植的操作系统,能够在从微型计算机到大型计算机的任何环境中和任何平台上运行,具有丰富的网络功能,完善的内置网络是Linux的一大特点。Linux具有完善的TCP/IP协议报头的定义,并且提供了功能强大针对于客户和服务器程序的面向用户的socket函数库和可操作的Libpcap库。
系统硬件:CPU:Intel(R)Core(TM)22500@2.00GHz内存:2G系统:LinuxFedora10编程语言:c语言2需求分析网上信息侦听与分析系统是本系统要完成目标。为实现这一目标,本系统应具备以下功能:系统能够截获用户的请求数据包同时显示出数据包中的地址信息、端口信息以及用户请求URL;系统提供拦截目录数据库,通过查询拦截目录判断用户请求URL,决定是否执行拦截操作;系统能够正确的执行拦截操作,当用户利用浏览器接入到有害网站时,系统发现用户试图接入到有害网站,向用户发送拦截数据包,收到拦截消息数据包的用户可以看到拦截消息页面。当用户利用浏览器接入到健康网站,系统允许用户可看到要访问的页面;系统能够实现简单的入侵检测功能,保护网络环境。
3功能模块设计按需求分析,设计功能模块,如图1所示。
4系统实现系统实现是在系统分析和系统设计完成之后,新系统予以实现的阶段。此阶段,系统开发工作重点从系统分析、系统设计和创造性思考的阶段转入具体实践环节。这一阶段的基本设计思想的结构化方法,主要是自顶向下的实现方法,即尽量先实现上层模块,逐步向下求精,最后实现下层基本模块。系统实现包括详细设计和编码设计两个部分。详细设计的主要任务是在系统设计的基础上进一步确定如何实现目标系统,选择并设计每一个模块的实现算法及其过程的详细描述,为程序编码工作提供依据或框架。
在编码设计中,将软件的过程性描述翻译成用选定的程序设计语言书写的源程序。
4.1系统的流程图在本文中,阐述了几个典型功能模块的实现。系统的整体流程图如图2所示。
4.2数据包捕获模块本文所设计的数据包捕获程序可以捕获通过本系统网络接口的原始数据包(RawPacket),当一个数据包到达网络接口时,数据包捕获程序就直接从缓存区读取捕获的数据包,以供数据分析和处理时调用。在数据包捕获程序中,通过设置网卡工作于混杂状态,对网络链路进行监听并收集数据包。数据包捕获模块流程图如图3所示。淤通过获取网络接口列表,获取指定的监听的网卡名。如果本机只有一张网卡,调用pcap_lookupdev函数即可获得网卡名。如果有多张网卡则需要调用pcap_findalldevs函数,获得所有网卡名,指定用来监听的网卡名。于建立监听会话。获得指定监听的网卡名后,调用pcap_open_live函数在指定的网卡上建立一个监听会话。该函数所做的工作是把指定的网卡设为混杂模式,把Libpcap的网络报文截取组件加载到系统中,并对监听会话超时参数和所截取的报文最大长度参数进行设置。盂编译过滤规则,设置过滤器。我们需要监听某种类型的网络流量,调用函数pcap_compile对规则进行编译(比如我们只需要监听80端口的流量,规则描述即为字符串“port80”),再调用pcap_setfilter。榆捕获网络数据包。设置好过滤器后,就调用函数pcap_loop进行循环监听。该函数对进行数据包协议解析的入口通过回调函数的形式进行指定,启动网络数据包捕获组件进行数据包捕获,通过回调机制(非阻塞模式)对捕获到的数据包进行处理。虞关闭监听会话。当停止捕获网络数据包时,就调用函数pcap_close来关闭监听会话。
5结语经过上线运行,本系统较好地完成预期的设计目标,并在原有要求的基础上能有所拓展,当处理大量网络数据包时,系统的处理速度偏慢。系统的效率还有待提高。
参考文献院[1]杜华.Linux编程技术详解[M].北京:人民邮电出版社,2007.[2]王权,张训报,李向.基于Linux系统的数据包截获技术研究[J].计算机与数字工程,2009,37(04):64-66.[3]赵谦.基于Linux下的网络监听技术[J].贵州科学,2007(S1).[4]魏文清,王长征.Linux下的TCP/IP架构与网络监听技术[J].计算机与现代化,2005(12).[5]姚越.Linux环境下防火墙功能的实现[J].北京劳动保障职业学院学报,2008(02).作者简介院王超(1972-),女,辽宁朝阳人,信息工程系副主任,副教授,研究方向为软件开发。