APP下载

SOA架构的分布式网络监管系统的设计与实现

2011-09-07张水平孙云星张凤琴

计算机工程与设计 2011年7期
关键词:管理中心数据包端口

张水平, 孙云星, 张凤琴, 沈 迪, 朱 瑞

(空军工程大学电讯工程学院,陕西西安710077)

0 引 言

随着各类信息系统在大型跨地域企业中的广泛应用,其应用与安全监控问题日益突出,因此,建立基于广域网的分布式网络监控管理系统(简称DNMS系统),对终端的信息流量、设备运行状况以及网络行为进行全方位的实时监控管理已势在必行。DNMS系统在设计与实现过程中以功能完整、可靠性高、开发性好、操作简便、易维护为基本原则,保证各结点子系统轻装高效运行。

1 关键技术

1.1 WCF简介

WCF是微软的分布式通信框架,是.NET Framework 3.5的重要组成部分。WCF的核心是:允许远程程序之间通过消息实现通信。同时,WCF把Web Service、.NET远程技术、分布式事务和消息队列统一到单个面向服务的编程模型中,并支持多种传输协议,如HTTP、TCP等,实现了真正意义上的分布式通信。

WCF遵循面向服务的原则,在WCF框架中,一切功能都封装成服务对外发布,服务运行于某一宿主之中,以端点作为对外通信接口。WCF服务的使用者(客户端)通过访问特定端点获取服务,此外,使用者可公开一个端点,从而以双工模式与服务进行交互,WCF服务模型如图1所示。

1.2 NDIS-HOOK技术

NDIS(networkdriverinterfacespecification)是 Windows提供网络驱动程序接口规范。所提供的功能函数便于实现网络驱动。HOOK(钩子)是Windows提供的一种消息处理机制,借助于该机制,通过嵌入用户自定义端口驱动,实现对数据包的控制和处理。

(1)未嵌入NDIS-HOOK驱动之前数据包在操作系统底层的接收流程

图1 WCF服务模型

在正常的网络中,数据包经网络设备传递给NDIS小端口(mini Port)驱动,经过NDIS协议端口(protocol Port)驱动,最后由TDI(transport driver interface)传递给系统应用程序,其具体流程如图2所示。

图2 NDIS-HOOK安装前

(2)嵌入NDIS-HOOK驱动后数据包接收流程

在在正常的网络中嵌入NDIS-HOOK驱动后,可处理、控制数据包的流向。具体原理如图3所示。数据包经网络设备传递给NDIS小端口驱动,然后传递给自定义驱动程序(netfilter.sys),该驱动程序可根据设计者需要截获数据包并进行分析过滤、控制。最终把允许通过的数据包传给NDIS协议端口驱动,再由TDI传输驱动传递给系统应用程序。同样,发送的数据包也可通过嵌入的自定义驱动程序进行处理、控制。

图3 NDIS-HOOK安装后

2 系统需求

系统主要需求有:

(1)监测广域网中各网段的流量、流速,以及上线终端数、网络联通率。

(2)监控统计所辖区域终端的运行状况、网络信息、人员信息,并负责向上级管理部门上报相关统计信息。

(3)监控终端的网络运行状况,包括终端本机流量统计和流量控制、网站访问控制、远程开机关机、日志信息记录和管理,同时根据系统制定的规则,封堵网络相关操作。

(4)收集、统计下级子网络数据,并按级定期汇总上报至上级管理部门,形成相关日、周、月、年度的报表、图表。上级管理部门能够直接调阅所辖区域的相关数据。

(5)终端监控进行设置,包括监控区域的设置、行为监控设置、内容监控设置、监控结果的处理设置等。

(6)提供系统设置与维护界面,实现各类参数的设置、监管数据的存储、导出、导入以及被上级调阅的功能。

3 系统解决方案

3.1 系统体系结构

系统设计为B/S(browse/service)模式,由两部分构成:管理中心子系统和终端子系统。管理中心负责与上下级管理中心通信,并制定终端的运行规则和参数;终端依据规则捕获过滤数据包,并将违规等信息上报给本级管理中心。每级管理中心下有多个终端,具体架构如图4所示。

图4 系统体系结构

3.2 系统功能设计

系统设计由管理中心子系统和终端子系统构成,具体功能设计如下:

(1)管理中心子系统

·规则的制定与管理:负责配置、制定、管理所辖区域的各种规则,包括本级IP地址与MAC地址的绑定、数据包IP包头过滤规则、Web访问规则、敏感词汇等。

·监测与控制:统计所辖区域终端的运行状况、网络信息;对管理所辖区域的终端子系统进行管理。

·数据同步:负责向上级管理中心子系统上报相关统计信息;并接收上级管理中心子系统下发的规则等信息。

(2)终端子系统

·监视与控制:负责截获出入本机的数据包;监控本机的网络运行状况,包括本机流量统计、邮件及网站访问监控;根据管理中心子系统制定的规则,封堵网络相关操作,在必要的时候,向管理中心子系统上报相关信息。

·远程控制:远程开机、关机;网卡、USB等端口禁用。

·程序驻留保护:保护系统,禁止随意退出、卸载。

·日志管理:违规信息日志记录,并定期删除。

3.3 系统技术架构

系统的各功能模块以服务的形式表现。采用层次架构研发,具体架构如图5所示。

(1)管理中心子系统:数据库选用SQLServer作为DB(data base)层;直接和数据库通信,实现数据提取和数据存储并封装成服务作为DA(data access)层;业务逻辑BL(business layer)层对系统的各种业务进行封装处理;FlexWeb站点、WCF通信服务和应用程序作为应用层。管理中心子系统部署在网段的任意一台主机上。

(2)终端子系统:数据包的捕获及控制、终端的远程控制和操作系统注册表作为底层控制BC(bottomcontrol)层;各种业务进行封装为业务逻辑BL层;WCF通信服务和监控器应用程序作为应用层。终端子系统部署在任意一台受控主机上。

4 系统实现

系统的重点解决的是广域网各结点 (各级数据管理中心子系统、各级终端子系统)之间大量数据同步问题,终端子系统的监控器实现及系统程序驻留等。本文将重点简述难点问题解决方案。

4.1 管理中心子系统实现

图5 系统技术架构

管理中心子系统主要完成各种规则的制定、下发,所管辖区网段、设备的动态监测、控制与管理以及大量数据的上传、下发、数据同步等功能。

4.1.1 各级管理中心之间数据同步

数据同步是管理中心子系统实现的一个难点,系统内的数据同步有各级管理中心之间、管理中心和终端之间两类,详细叙述如下:

各级管理中心之间的通信链路是整个系统的主脉络,把分散在各地的数据信息联系起来形成一个整体。同步的信息类型有以下3类:

(1)基础数据:这类数据只在系统初始化时同步的数据量大。包括:组织结构信息,系统运行参数等信息等。

·组织结构信息包括:单位建成、单位名称、联系人、联系电话、通信邮编(若是管理中心还包括IP地址、MAC地址、子网掩码、上级IP、上级MAC等);

·运行参数包括:服务器通信开放端口、扫描终端时间间隔;

(2)实时数据:这类数据在系统中随时发生,数据量大且对实时性要求高。包括:违规规则,系统违规信息,I/O流量,终端连通、端口开放信息等。

·违规规则信息包括:IP包头过滤规则、Web访问规则、敏感词汇及这些规则的有效时间;

·违规信息包括:IP包头违规情况、Web访问违规情况、敏感词汇违规情况;

·本级I/O流量统计:实时地本级管理中心所处网段的进出网络流量;网络连通信息:网段内的终端的在线数及在线终端的开放端口列表。

(3)非实时数据:这类数据在系统中随时发生,但对实时性的要求不高。包括:各类设备信息、相关人员信息等。

·各类设备信息:网络各结点内服务器,终端,网络设备的配置信息、IP地址、MAC地址等信息,其中IP地址、MAC地址应当由系统自动获取。

·各类人员信息:网络各管理中心相关人员的基本信息。为增强系统数据同步的合理性,采用不同的通信机制。(1)手动机制:手动选择的方式触发数据同步,基础数据采用此机制。

(2)实时机制:若有实时数据的产生则立刻调用通信函数进行数据通信,实时数据采用此机制。

(3)定时机制:定期的进行数据通信,非实时数据采用此机制。

为减少数据同步的数据量,在数据同步时只将有变动的差异数据进行同步。由于各级管理中心间数据同步是跨网段的,系统采用WCF双向通信的方式实现。

4.1.2 管理中心和终端之间数据同步

管理中心和终端在系统中是大脑和末梢神经的关系,终端子系统收集信息,然后把这些信息交由管理中心处理。管理中心则将相应的处理要求发往终端子系统,作为其运行处理的依据。同步的信息类型有以下两类:

(1)终端从管理中心获取的数据:管理中心定期下发的数据包过滤规则及这些规则的有效时间和系统运行参数等。

(2)管理中心从终端获得的数据:终端的违规信息记录、端口开放信息和I/O流量等。

管理中心和终端之间同步的数据均为实时数据,采用实时通信机制进行通信。由于终端和本级的管理中心所处同一网段内,可以开放任意的端口,故采用Socket套接字实现。管理中心作为Socket通信的服务器,终端作为客户端。

4.2 终端子系统实现

终端子系统安装在广域网的任意主机上,因此具有应用范围大、分布地域广、设备类型不一、配置运行环境不同,用户应用水平参差不齐等特点。为使研发的终端子系统轻装运行,适于生存,便于维护,研发平台采用VC++2008,WindowsDDK(devicedriverkit)、PhotoShop等,而运行平台采用操作系统Windows xp/2003/WIN7。

主要功能有监控器完成的监视与控制功能,远程控制、程序自动升级、驻留保护和日志管理等,其中监控器的实现及程序的驻留保护是本系统的重点问题。

4.2.1 监控器的实现

监控器是系统的核心模块,要快速的捕获网络数据包,并对其进行分析处理。主要由通信线程、数据包捕获控制线程、工作者线程3部分组成:

(1)通信线程

负责与管理中心子系统进行通信,获取管理中心定期下发的数据包过滤规则及这些规则的有效时间和系统运行参数,上传本机的违规情况、端口开放信息和I/O流量信息。

(2)数据包捕获控制线程

实时捕获网络数据包,过滤数据包、获取端口信息、统计I/O流量。捕获数据包驱动程序(netfilter.sys)采用底层的NDISHOOK技术实现。采用NDIS-HOOK技术截获数据包较为底层,不易被穿透。netfilter.sys的实现流程如图6所示,其加载次序在NDIS.SYS之后,协议驱动程序(如TcpIp.sys)之前。

图6 netfilter.sys实现流程

在netfilter.sys加载完成后,发送网络数据包时,应用程序先调用自定义的函数M_Send。M_Send对要发送的数据包进行分析过滤,再调用系统函数NdisSend对通过检查的数据包进行转发。接收网络数据包时,应用程序调用自定义函数M_Receive同样进行分析过滤,然后调用系统函数ProtocolReceive完成接收。

分析过滤过程:I/O流量通过数据包IP头内“包长度”字段统计,根据IP包头内“协议类型”字段值转入各协议分析线程(获取端口信息并进行内容分析),依据系统违规规则进行匹配过滤。具体过程如图7所示。

图7 数据包分析流程

为加速数据包处理速度,系统采用了以下措施:

·设置了缓冲区暂时存放实时截获的数据包,并通过多线程机制实现分析处理。

·对各种包过滤规则进行整合去重,以节省匹配时间率。(3)工作者线程

对各种业务进行管理和设置,辅助系统运行,具体功能包含系统运行参数的初始化,运行参数修改后的存储,文件读写等。

为提高监控器的运行效率,本系统还在以下几点作了考虑:

·程序对硬盘数据的操作花费时间远大于内存数据的操作,故系统程序实现过程中运用了缓冲区机制,把系统运行时所需要的一些数据信息(违规规则,运行参数),存放到缓冲区中,提高了程序运行效率。

·终端子系统内所要存储的数据类型简单,没有使用数据库而是采用动态存储、日志记录的保存机制。且使用数据库会给用户的安装使用和维护带来不便。

4.2.2 程序驻留

在终端计算机开机的前提下,终端子系统要时刻运行,为此采用了程序驻留的方式使系统不被用户随意的停用或退出。程序驻留有多种实现方式,如关联类型文件、文件捆绑、进程保护和API HOOK方法等。本系统选用了进程保护方式实现驻留。

为防止系统不被随意的卸载,采用控制操作系统注册表的方式保护本系统。通过把系统写入操作系统的启动项中,做到开机运行系统,并对操作系统注册表采取了禁用控制保护系统在终端上的安全性。

5 试验与分析

利用12台CPU为Intel(R)Pentium(R)DualE22202.40GHz、内存为1GB的计算机终端,锐捷公司的两个RG-RSR20路由器和3个 RG-S3760-24交换机在实验室模拟了一个有3个不同网段的网络环境。每个网段内有4台计算机,任选一台安装管理中心子系统,其他3台安装终端子系统。通过系统的试运行,管理中心和终端之间及管理中心之间通信情况良好,没有出现数据不一致问题,系统运行时并没有明显影响计算机的响应速度。

图8为终端子系统运行时通过捕获数据包所绘制的本机实时I/O流量示意图。棕线表示入流量,绿线表示出流量,竖坐标为流速(KB/S),横坐标为时间轴。通过流量示意图可以实时掌握本机的进出流量,给管理中心提供判定网段流量的数据等。

图8 实时I/O流量

6 结束语

本文在对分布式系统通信技术和底层数据包截获控制技术深入分析的基础上,提出并实现了SOA架构的分布式网络监管系统。该系统有效解决了计算机信息系统在企业中的安全问题。利用WCF技术实现系统内给应用程序间通信,提高了通信效率;并采用数据分类、差异传输的同步、通信机制,提高了传输效率。底层的监控器采用 NDIS-HOOK技术开发,NDIS-HOOK相对更底层,对数据包的控制力更强,实现相对简单;在监控器实现中引入缓冲区、多线程机制等有效地提高了处理速度。为防止系统被随意退出引入了驻留程序机制,提高了系统安全性。

[1]Richard Stevens W.TCP/IP详解卷1协议[M].北京:机械工业出版社,2008.

[2]Craig McMurtry,MarcMercuri,NigelWatling,等.WCF揭秘[M].赵科平,译.北京:人民邮电出版社,2008.

[3]梁爱虎.SOA思想、技术与系统集成应用详解[M].北京:电子工业出版社,2007.

[4]林洪周.万兆网络数据包捕获系统的研究与开发[D].武汉:华中科技大学,2008.

[5]张志斌,郭莉,陈明宇,等.一种高效网络数据捕包平台的设计与实现[J].计算机工程,2005,31(20):212-213.

[6]邓友良.HTTP报文监测和过滤技术研究[D].成都:西南交通大学,2007.

[7]曹学武,易国良,刘利军.基于协议分析的邮件安全监控系统实现[J].计算工程,2005,31(1):65-67.

[8]周剑岚,冯珊.运用Hook技术实现的软件防火墙[J].华中科技大学学报(自然科学版),2004,32(3):83-85.

[9]孙鸿斌,张建标.基于Netfilter的数据采集技术在实时内容过滤中的应用[J].计算机应用,2006,26(6):192-194.

[10]张友生.远程控制编程技术[M].北京:电子工业出版社,2004.

猜你喜欢

管理中心数据包端口
健康管理中心护理质量评价指标体系的构建
二维隐蔽时间信道构建的研究*
漾皮肤管理中心
一种有源二端口网络参数计算方法
宸山皮肤管理中心
一种端口故障的解决方案
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
多按键情况下,单片机端口不足的解决方法
C#串口高效可靠的接收方案设计
关于在蒙医综合医院建立慢病健康管理中心的探讨