局域网信息监控系统构建

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

浅谈局域网信息监控系统的构建

摘要:本文采用c/s模式,通过对局域网中客户端的文件操作、进程运行的情况、cpu的利用率,以及流量情况等进行信息的收集,并传送给服务器端进行相关处理,构建了一个基于局域网的信息监控系统,从而使管理人员方便而高效地了解局域网内部各个主机的网络行为。

关键词:局域网监控模块流量

中图分类号:tp393文献标识码:a 文章编号:

1674-098x(2011)12(c)-0000-00

随着网络技术的广泛应用,许多部门、企业等都建立了自己内部的局域网,并通过一定的方式接入因特网。在网络中,用户可以方便地获得自己所需的各种资料,办公效率有了明显提高。但网络资源的丰富性经常会使部门的员工在工作和学习时沉迷于网络,同时,黑客工具的存在也给人们的生活和部门的信息安全带来了巨大的威胁。因此,对局域网内部主机的信息监控也就成了一种必要的手段。

1 局域网信息监控系统的总体结构

(1)基本原理。在本系统中,主要采用c/s结构来实现系统的功能。客户端软件主要负责监控本台主机的活动行为,并给服务器发送相关信息。服务器收到信息后,以图形或文件列表等形式将客户端传来的数据展现给部门管理人员,从而使管理者对部门内主机的各项活动进行有效的监控。同时,数据还将被存放到数据库中。其

中,客户端监控程序将获得局域网内部每台主机的原始活动信息,需要采用进程隐藏技术保证不被普通用户强行终止。系统运行时,数据将不断更新和连续传输。

(2)客户端分析。客户端监控软件用来采集本机的各项活动数据,并将数据定时传送给服务器软件。客户端监控软件记录的各种实时信息包括:主机网络使用情况,当前运行的进程信息,主机修改的文件信息,主机cpu使用率等信息。

此外,局域网内的每台主机还有一个客户端管理器,其任务是收集了客户端以上几个模块的数据信息后,通过网络传送给服务器端。

(3)服务器端分析。在本系统中,服务器端软件在结构上可以分为两个部分,即:网络服务器端系统,以及与管理人员进行交互的界面。其中,网络服务器端系统分为一个主线程和若干子线程,系统运行时,由主线程创建子线程,当有客户进行网络资源的请求时,主线程就创建一个子线程与之相对应。而服务器端界面负责将收集到的数据进行整理,并以图形或列表等形式反馈给管理人员,同时将数据存入数据库中。

2 系统的实现

2.1 客户端的设计

(1)网络数据包获取和分析模块设计。获取和分析网络数据包是实现监测客户机网络使用情况的基础。本系统采用

winpcap(windows packet capture)开发包来获取经过网卡的底层

网络数据包,分析并判断这个网络数据包的内容和类型。使用winpcap获取底层网络数据包的流程是:

首先,利用pcap_findalldevs()函数获得本局域网的设备列表;其次,利用pcap_open_live()函数将当前选择的网卡设为混杂侦听模式,以获取完整的网络数据包;

然后,利用函数pcap_loop()开始获取网络数据包;

最后,利用函数pcap_freealldevs()释放不需要的网络设备列表。

(2)客户端文件模块设计。客户端文件模块主要用来监测客户端修改文件的数量、时间和类型等信息,利用类的思想,对相关线程进行相应的控制,其过程主要借助于windows钩子(hook)技术相应的系统服务来实现,并通过api函数向设备对象发消息,来收集客户机在某时间段中创建、打开、关闭,以及删除相关文件等的操作信息。采集来的数据按照一定的格式进行存储。

(3)客户端进程模块设计。客户端进程模块实时统计主机运行的进程信息,并通过网络发送给服务器端。其设计也是通过hook 相应的system service技术来实现。

其过程是:首先,获取在局域网中某台主机所运行的所有进程的相应信息:时间、id号、进程名称、路径等。其次,在规定的时间段之后(比如:5秒),再重新获取系统当前所运行的所有进程的相应信息,并保存。然后对不同时刻的数据进行比较,以识别在一个时间段中,哪些进程是刚开始的,哪些进程是才结束的。

(4)客户端cpu模块设计。客户端cpu模块通过线程来实现监控,它的主要作用是统计局域网内本机cpu 的利用率。在设计过程中,借助于类的封装来实现对客户端cpu的监控。首先,建立一个cpuagent类,

该类包含:cupagent(),startagent(),stopagent(),getusage ()。这些函数分别用来统计局域网中客户端在开始和结束时占有cpu资源的进程个数,并通过一定的算法获得本机cpu的利用率。其算法为:(1-t1/t)/n .(t1表示客户机cpu空闲的时间,t表示客户机总的运行时间,n表示客户机总共运行的进程数目)。在操作过程中,规定客户机每秒计算一次cpu的利用率,并且每隔五秒通过网络向服务器发送一次数据。

(5)客户端流量监控模块设计。在本系统中,借助于mrtg(multi router traffic grapher多路由器流量图形)图形化网络流量的统计分析工具,基于snmp协议,对网络流量信息进行采集。设计过程如下:

首先,安装iis,然后选择perl的版本,因为mrtg的运行需要perl编译环境。

其次,在局域网的各个客户机上正确设置snmp;

然后,安装mrtg,并手工修改配置文件mrtg.cfg,确定统计参数,并在客户端机器上添加mrtg到开机自动加载。

最后,制作web页面png图并发布。

2.2 服务器端的设计

在设计过程中,首先在服务器端开启一个侦听主线程,负责侦听是否有客户端请求建立连接。一旦有客户需要连接时,主线程创建一个新的子线程与该客户端相连接。客户连接子线程被创建后,首先判断该客户是否有数据可以被接收。如果有,接收下来后,分离出每一个活动类型的数据,再将每一个活动类型的每一个字段进行分离,并将处理后的信息进行整理,最后在服务器端软件的界面上呈现出来,以便管理人员了解相关信息,同时将数据存进数据库。其中,服务器端要将整理好的数据用图形或者列表的形式向管理人员进行展示。在设计过程中,当采用列表的显示方式时,要保证活动主机列表中始终保持最新的状态。

3 结语

本文所阐述的局域网监控系统是一个帮助部门管理人员对局域网内部各个主机相关活动的监控系统,它能准确反映局域网内部各主机在各个时间段里的活动信息。在系统的实现中,主要借助于线程和hook技术,在c/s模式下对局域网内各个客户端的相关活动进行监控,并通过网络传输给服务器,管理人员在服务器界面上能看出处理完的信息,从而实现了对网络监控的可能性和管理的高效性。

相关文档
最新文档