1 引言
随着国家信息化建设的深入和普及,网络技术进入到了社会的方方面面。与此同时,各种网络安全威胁,网络窃取等问题开始慢慢突出。另一方面,由于计算机和互联网的方便性与吸引力,使得员工工作效率下降,管理部门不能再像以往一样直观的控制每个员工在上班时间到底做了些什么。如何有效地进行计算机与网络的安全管理,保护企业内部的重要信息,通过计算机和网络资源对员工进行管理,已经变成企业信息化建设中越来越突出的重要问题之一。
以往的网络管理软件,往往是基于设备的管理,基于网络流量的管理,或基于应用的管理等。这些软件虽然可以很好的完成各种网络管理任务,维持网络安全有效的运行。但是往往很难为管理者提供一份人员使用网络信息的报告,尤其在我们国家,计算机还不是非常普及,多人共同使用一台计算机,计算机硬件设备交换使用的情况非常普遍,这就使得基于设备的或基于应用的传统网络管理软件,在管理人员的能力方面显得较为淡薄。在这种情况下,人们迫切需要一种可以考虑到网络中各种问题,进行统一管理的工具,即一种基于用户的综合网络管理系统。
在一个企业中,往往有大量的信息需要实时收集,如每个员工在每个时刻进行了何种操作,他们在局域网内做了什么动作、在INTERNET上浏览了什么信息、进行了什么交易、以及DATABASE、FTP等服务器都被什么人使用,对于敏感数据进行了什么操作等等。如何从这些海量的信息中收集和关注企业需要的数据,根据适当的业务逻辑进行计算统计,尤其是面对这样海量的实时信息时如何高效即时地处理,提高服务器的处理性能,是整个网络管理系统中必须考虑的关键一环。需要引入新思路,结合新技术进行合理的分析和设计,开拓一种新型高效的网络审计模式。
2 基于用户的网络管理系统概述
2.1体系结构
一个大型企业的办公地址往往会跨越多个楼层、多个楼宇,甚至是跨地市跨国的。由于这种地域的分散型,我们在逻辑结构上将这个网络管理系统分为以下四层,如图1所示。

图1 系统总线结构示意图
第一层是被管PC层,即企业内部普通员工所使用的PC;第二层是中间服务器层,包括直接管理被管PC的Slaver Server以及其他一些服务器,比如DHCP服务器,DNS服务器等;第三层是主服务器层,其中有整个系统的核心服务器Master Server以及存储系统运行各项数据的数据库服务器Database服务器;第四层是前端用户层,也就是最终面向企业网络管理员的一层。在本系统中,我们采用B/S和C/S相结合的集成体系结构。
2.2主要功能概述
系统的主要功能包括:用户和管理员的身份认证以及权限分派;用户和管理员对计算机使用的全程监管;计算机和服务器的自动配置与规定程序安装;网络安全设置和监管;网络管理与IP地址的动态分配;服务器动态配置;内置高效的DHCP服务程序;内置DNS服务器;网关服务器以及应用信息审计等。
3 应用信息审计系统的设计
3.1体系结构
在系统中,是否有一个好的应用信息审计功能,是衡量其是否成功的重要标准之一。如果信息不能做到合理收集、及时上报、实时反映,那么系统虽然也可以起到一定的控制作用,但想必使用它的企业管理者是不会满意的。
然而要做到信息的合理收集、及时上报和实时反映并非那么容易。尤其是对于规模较大的企业,随着网络规模增大,数据量显著增加,EMI系统的软件效率可能会下降,变成网络瓶颈,同时如何从海量数据中选择适合管理者要求的数据也是需要慎重考虑的。
为了解决性能瓶颈问题,我们利用四层结构,对数据进行分层收集,分层处理,处理后再向上上报,以减轻Master Server端的负担,将负担分散到各级第二层服务器,并且由于数据经过整理后再上报,使得数据的传输总量也大大下降。
系统中数据量最大的是用户日常使用的PC产生的各种信息。对于它们,我们利用Slaver Server进行直接管理,用户登陆的认证信息,通过AGENT向LDAP进行验证,同时上报到Slaver Server服务器。对于用户使用计算机的过程中产生的各种日志,也是通过AGENT软件收集上报到Slaver Server,同时AGENT对用户进行控制工作时用到的各种权限、处理等信息也都是由Slaver Server下发控制的。当Slaver Server收集到各种用户信息后,它会对这些信息进行解包、整合、处理等工作。
其他的各种服务器产生都是通过Master Server进行管理,它们产生的各种日志,直接上报到MasterServer。而对他们的监控和管理配置等工作也都直接由Master Server完成。Slaver Server收集并整理过的PC信息,和这些服务器信息,一同经MasterServer处理后上传到Database。当系统需要读取数据库中的某个信息时,也都是通过Master Server来统一完成。
当然,系统中会有一些实时需要处理,或者需要引起管理员注意的信息,系统采取的是实时收集,跳过Slaver直接上报、立刻显现的策略。以保证系统的时效性。
3.2功能设计
作为整个审计模块的服务器,它具有以下功能:①收集各个部分传送上来的信息并进行存储;②根据一定的业务逻辑对这些数据进行判断;③根据用户的不同需要,即时得到统计、运算结果;④能提供直观的图形表格等,让用户观察某一网络中资源(包括各种服务器,PC等)的实时信息。
审计部分所关注的数据有:
(1)企业内PC的软硬件信息以及企业内部员工,在计算机上所进行的操作,包括他们何时登陆系统、何时离开系统、开启了何种服务、结束了何种服务、运行了什么应用程序、运行了什么系统程序、系统出现什么异常、用户运行了什么非法操作等。
(2)企业内部员工,在企业内部网上进行的操作,包括使用了何种服务、登陆了什么服务器、收发邮件(通过公司内部的邮件服务器)、进入别人的计算机等。
(3)企业内部员工,在公众互联网上进行了何种操作,主要是记录其浏览了什么网页,下载、上传了什么文件。
(4)企业外部人员,对企业内资源的访问和操作情况,包括他们对企业内部网络的浏览情况,对服务器登入登出的纪录,对一些敏感的服务器和数据记录他们的操作。
(5)企业内部各服务器工作情况,包括DHCP,DNS服务器工作的情况、哪些用户对服务器进行了登人登出(企业内部用户和企业外部用户)、重点服务器和重点数据记录的操作记录等。
4 应用信息审计系统的实现
4.1数据处理和传送说明
根据上面介绍的系统体系结构,我们设计了如下的数据处理结构:

图2 系统数据走向示意图
4.2数据库结构说明
为了支持系统各个部分的功能,后台设计了一个比较庞大的数据库,这里因为篇幅的限制就不全部罗列了,简单的介绍一下大体结构。
系统数据库分为十大部分:
- PC information;存储PC相关信息;
- Organization information:用于存储企业相关组织信息,包括人员组织和设备地址;
- User information:用户信息包括三方面的信息,用户自身信息、用户所对应的普通账号和管理员账号的信息、用户权限信息;
- DHCP Server configuration&Policy file information:存储DHCP服务器的配置和策略信息;
- DNS Server configuration&Policy fileinformation:存储DNS服务器的配置和策略信息;
- Slaver Server configuration&Policy file information:存储Slaver Server的配置和策略信息;
- MasterServer configuration&Policy file information:存储Master Server的配置和策略信息;
- Software&hard.ware information:记录企业中各个硬件的各种信息及所安装软件的各种信息;
- Log information:日志信息,包括各个设备的常规日志信息、报警信息、网络使用情况信息、用户工作记录信息等;
- Systeminformation:记录系统本身需要用到的一些数据。
4.3基于C++和JAVA语言实现
在最终的编码实现阶段,整个系统根据各个部分的特征运用了不同的语言。比如DHCP服务器的实现使用了c语言,PC部分的监管程序和两层server服务器都使用了C++语言,而在面向前端用户的一层,为了实现BS/CS双重结构,实现平台跨越我们选取了JAVA语言。
在系统中,与应用审计相关的需要编码的部分有:被管设备端应用信息的收集与上传、SlaverServer端信息的解析整理与上传、服务器端数据的汇总解析整理、数据库联接的维护、应用信息审计部分的GUI。下面简要介绍一下这些部分的实现思路。
被管设备端应用信息的收集用C++语言实现,通过调用常见操作系统的API函数和动态进程监控信息,达到监管控制被管设备的目的。对于这些收集到的信息,采用SNMP协议上传到Slaver Server服务器。Slaver Server服务器的功能也由C++语言实现,当它们收到被管设备的SNMP协议包后,利用解析模块对这些数据进行解析,将他们的内容归类整合,然后再行打包,通过自定义的格式,利用TCP协议上传到Master Server服务器。Master Server服务器由于考虑到平台移植性,并且不需要有过多的与操作系统的交互,所以采用了JAVA语言来实现。当它接收到数据包时将对它们进行解析,将它们根据数据库的结构重新组合,生成可以直接与数据库交互的数据,最后调用数据库连接模块,将数据最终存人数据库中。数据库连接模块用JAVA语言维护了一个数据库连接池,以满足频繁的数据库访问请求,创建四个类:连接池管理类、连接池类、内部连接类和外部连接类;连接池类和内部连接类作为连接池管理类的内部类存在,仅供连接池管理类使用;外部连接类是客户程序使用连接池的唯一接口。
最后审计部分与用户交互的GUI部分,也是用JAVA语言实现的。审计部分的功能可以在Client端进行操作,也可以在Browser端操作。它的界面设计非常灵活,可以让用户根据自己的要求随心所欲的进行查询审计和报表等操作,并且利用多种图表达到直观的效果,通过后台调用大量的存储过程,而不是在前台直接查询的方式,使查询性能大大提高。在报警方面,设置了声音报警信息和图形报警信息相结合,并且可以根据用户定义,实现EMAIL报警,电话报警等功能。
5 系统存在的主要不足及改进方案
由于系统主要面对大型网络,对于一些小型企业,信息的收集方式可能过于复杂,导致效率反而降低了。在以后的研究过程中,我们可以考虑如何满足小型网络的特性,使得系统适用面更加广泛。目前虽然是BCS结构,但是对于浏览器端只能做一些简单的查询和审计操作,具体的服务器配置还需要在客户端软件上实现,以后可以考虑增强数据库的并发处理性能、增加浏览器端程序的功能,以使得软件更加方便易用。
本文作者:王瑜 崔鑫 来源:网络收集
CIO之家 www.ciozj.com 微信公众号:imciow