APP下载

基于B/S模式高校机房管理支撑平台的设计与实现

2012-04-29林素仙宋俊锋

计算机时代 2012年4期
关键词:远程管理S模式病毒检测

林素仙 宋俊锋

摘要: 由于计算机硬件的不断更新换代,以及软件发展呈现WEB化的趋势,这给高校机房管理者提出了更高的要求。文章以机房管理人员的角度,根据日常管理中遇到的远程控制不方便、病毒查找困难、突发情况难以处理及半手工化操作落后并效率低等问题,设计并实现了无需客户端支持的基于B/S模式的机房运行支撑平台,管理人员可以实时随地利用PC终端或移动手持设备借助该平台,实时地进行机房远程监控和管理,提高机房管理效率及应急能力。

关键词: 远程管理; B/S模式; WMI; 病毒检测

中图分类号:TP319文献标识码:A文章编号:1006-8228(2012)04-65-03

An approach to develop college computer room management supporting platform based on B/S Mode

Lin Suxian, Song Junfeng

(Lishui university, Lishui, Zhejiang 323000, China)

Abstract: With development of computer hardware and trend of software development to web-based style, college computer room managers pursue a convenient, stable and efficient environment. As daily management of remote control is not convenient, search of virus is difficult, solutions of emergency situation are not enough, and operation is semi-manual, the authors of this paper introduce a computer room management supporting platform based on B/S mode with no client support. Then managers could use PC terminals or mobile devices to monitor and manage computer rooms whenever and wherever.

Key words: remote management; B/S mode; WMI; virus detection

0 引言

当前,高校计算机机房的半手工化管理已然跟不上硬件发展的步伐。虽然为每台计算机安装还原卡可以给软件的批量安装及数据保护提供较好的解决方案,但是,机房软硬件及网络环境复杂,经常还会出现异常情况,需要实时处理。目前针对机房网络管理的辅助软件都是C/S模式,需要在局域网环境下安装客户端软件才能实现对计算机的控制[1]。我们从机房管理人员的角度,利用C#网络编程语言,开发了一套无需客户端支持的基于B/S的机房管理支撑平台。通过此平台,管理人员可以随时随地利用PC终端或移动手持设备进行机房远程监控和管理,提高机房管理效率及应急能力。

1 机房管理支撑平台的设计

根据机房管理人员经验,机房管理费力之处有以下几方面:⑴日常维护中开关机时需手工操作;⑵远程控制、运行命令和批量操作不方便;⑶现有机房管理软件基本为C/S模式,安装繁琐;⑷病毒查找困难,特别是局域网病毒容易导致批量中毒;⑸突发情况处理困难。根据这些难点,本文设计了局域网机房管理支撑平台。该平台具有远程管理,病毒管理,设备更新和维修记录等功能,如图1所示。

图1机房运行支撑平台功能

机房运行支撑平台的设计与实现技术说明如下。

如今,软件的功能在网络上实现是信息处理的必然趋势。网上浏览、交换和处理信息,是网络时代重要的特征,Web编程技术就是为网上信息交流服务的。传统的单机版软件,市场越来越小,即使是利用网络的C/S软件,因为要安装客户端,推广和使用受限。而采用Web编程技术的B/S软件,以通用的浏览器作为客户端,实现信息交换和处理,不需要安装和维护客户端软件,具有极大的优越性。本系统部署在与机房所处的校园网内,提供了在校外访问该系统进行机房管理的通道。机房管理支撑平台的部署如图2所示。

图2机房管理支撑平台部署图

下面将介绍我们在C#网络编程环境中所用到的类和对象。

Internet在传输层上有两个主要协议,面向连接协议(TCP)和无连接协议(UDP)[2],根据如图3所示两种协议的优劣,平台的不同功能将用到不同的协议。

[比较项目&TCP协议&UDP协议&是否连接&面向连接&面向非连接&传输可靠性&可靠&不可靠&应用场合&传输大量的数据&传输少量的数据&传输速度&慢&快&]

图3UDP协议与TCP协议的区别

多线程是提高机房管理效率所要涉及到的网络通信模式。通过Thread类可创建多个线程。

开发机房管理支撑平台用到的类主要有IPAddress类、DNS类、IPHostEntry类、和UDP下的UdpClient类。

IIPAddress类的对象用于表示一个IP地址,其中有两种常用的方法用来创建和操作IP地址:Parse()方法,将IP地址字符串转换为IPAddress实例;ToString()方法,将Internet地址转换为标准表示法。

DNS类提供简单的域名解析功能。GetHostByAddress()方法是DNS类公共方法,用于获取相应IP地址的DNS主机信息。

IPHostEntry类将一个域名系统主机名与一组别名以及一组相匹配的IP地址关联起来。类中HostName()方法是获取或设置主机的DNS名称。

UdpClient类是提供了接收、发送UDP数据,开启、关闭连接等功能。类中的Connect(IPAddress address, int port)方法用于指定用于发送和接收数据的IP地址和端口号。Send(byte[] dgram, int bytes)方法用于将UDP数据文报发送到远程主机。

2 机房运行支撑平台主要功能实现

2.1 扫描机房

支撑平台第一次扫描批量电脑设备时,保证电脑全开机,把所管辖的机子信息(如IP地址,机器名,Mac地址等)记录到机房管理支撑平台的数据库中。相应程序编写思路是,通过ping命令查询所有IP在某个网段内的机子(如起始IP为10.30.120.1,终止IP为10.30.120.254),返回ping命令得到的信息。并把有响应的IP地址记录在数据库中,再通过循环发送带有IP地址的数据包,查询每台机子的机器名、MAC地址等。分别记录在相应的数据库表中。

2.2 远程批量唤醒

远程批量唤醒功能有硬件要求。首先,网卡应具备唤醒功能,即网卡所带的控制芯片是计算机电源的专用线路供电的,(现在的网卡几乎都支持)。其次,机器应接入网络。如果要唤醒批量机子,其工作原理是:通过程序循环向网络中发出一个基于Magic Packet标准的唤醒数据包,该数据包中含有欲被唤醒的计算机所带网卡的MAC地址。当网卡中相应的控制芯片通过检查数据包内的MAC地址,发现并且确认数据是发给自己时,就通过专用线路发出开启电源信号,通知主板开机启动;否则将该数据包丢弃。

Magic Packet是AMD公司开发推广的一项技术。根据Magic Packet标准,唤醒数据包以6字节的FF为起始位,之后再跟上重复16次的被控主机的网卡MAC地址,总共数据帧长度为102个字节[3]。例如,如果目标主机的MAC地址是00-1B-B9-F5-4F-88,则先定义数据包的格式为Magic Packet格式,通过语句构造出数据包为FF FF FF FF FF FF 00 1B B9 F5 4F 88 00 1B B9 F5 4F 88 00 1B B9 F5 4F 88 00 1B B9 F5 4F 88 00 1B B9 F5 4F 88 00 1B B9 F5 4F 88 00 1B B9 F5 4F 88 00 1B B9 F5 4F 88 00 1B B9 F5 4F 88 00 1B B9 F5 4F 88 00 1B B9 F5 4F 88 00 1B B9 F5 4F 88 00 1B B9 F5 4F 88 00 1B B9 F5 4F 88 00 1B B9 F5 4F 88 00 1B B9 F5 4F 88 00 1B B9 F5 4F 88 00 1B B9 F5 4F 88,然后进行批量发送,最终符合条件的主机被唤醒。其主要代码如下所示。

byte[] packet = new byte[17 * 6];

for (i = 0; i < 6; i++)//构造数据包前6个字节的数据是ff-ff-ff-ff-ff-ff。

{packet[i] = 0xFF; }

for (i = 1; i < 17; i++)

for (j = 0; j < 6; j++)

packet[i * 6 + j] = mac[j];

UdpClient client = new UdpClient();//创建UDP的数据对象。

client.Connect(目标IP, 30000); //设置参数,IP地址和端口。

client.Send(packet, packet.Length);//将UDP唤醒数据包发出。

2.3 远程批量关机/重启

远程批量关机/重功能启用到WMI(Windows Management Instrumentation)协议该协议全称“Windows管理规范”,是一项核心的 Windows 管理技术,采用一个统一的、基于标准的、可扩展的面向对象接口,提供了强大的功能,包括脚本API、远程管理、查寻、事件处理等[4]。比如,可利用WMI在远程计算机上启动一个主机或特定的进程(但仅适用于基于Windows的操作系统)。C# 网络编程语言对WMI提供了全面的支持。.Net FrameWork SDK封装了一个专门的命名空间“System.Management”,含有大量用以处理和WMI相关的类、接口和枚举。下面阐述“System.Management”的两种用到的类。

ManagementScope类,通过ManagementScope类能够建立和远程计算机的WMI连接,表示管理可操作范围。通过类中的Connect()方法,可以建立与远程计算机的WMI连接。

ManagementObjectSearcher类。主要功能是根据指定的查询条件检索WMI对象的集合。它通过Get()方法进行WMI查询,并把得到的结果集合。Get方法的返回值是一个ManagementObjectCollection实例,它包含匹配指定查询的对象。具体实现远程批量关机/重启的主要代码如下:

ConnectionOptions op = new ConnectionOptions();

ManagementScope scope = new ManagementScope("\\" + ip + "\root\cimv2", op); //设置操作管理范围。

scope.Connect();//将此ManagementScope 连接到实际WMI

范围。

ObjectQuery oq = new ObjectQuery("SELECT * FROM Win32_OperatingSystem");

ManagementObjectSearcher query = new ManagementObjectSearcher(scope, oq);

ManagementObjectCollection queryCollection = query.Get();//得到WMI控制。

foreach (ManagementObject obj in queryCollection)

{

obj.InvokeMethod("reboot", null); //执行关闭远程计算机,reboot为重新启动。

obj.InvokeMethod("ShutDown", null); //执行关闭远程计算机,reboot为关机。

}

2.4 远程命令

远程命令就是在远程计算机上执行用户提交的DOS命令。设计此功能的主要原因是此命令可以即时运行,在不影响机房正常运行的情况下改变系统的某些状态或数据,例如创建文件夹或者自动安装软件等。主要代码如下:

ConnectionOptions connOption = new ConnectionOptions();//ConnectionOptions指定生成wmi连接所需的设置。 ManagementPath mngPath = new ManagementPath(@"\" + serverHostName +@" ootcimv2:Win32_Process");//ManagementPath 包装了生成和分析wmi对象的路径。

ManagementScope scope = new ManagementScope(mngPath, connOption);

scope.Connect();

ObjectGetOptions objOption = new ObjectGetOptions();//ObjectGetOptions 类是指定用于获取管理对象的选项。

ManagementClass classInstance = new ManagementClass

(scope, mngPath, objOption); //通过该类的成员,可以使用特。

定的 WMI 类路径访问 WMI 数据。

object[] cmdline = { "cmd /c " + strCommand, path, null, 0 };//调用执行命令的方法,采用命令行。

classInstance.InvokeMethod("Create", cmdline);

2.5 病毒检测

病毒是网络中不可避免的,预防和解决病毒,是保证稳定、高效使用主机等设备的前提。多数人认为,机房的电脑都装有还原卡,中了病毒也没关系,只要重启机子就能还原到正常状态。确实,如果某一台电脑中毒,并且不影响其它电脑正常工作时,只需重启即可,不影响机房的正常运行。然而有两种情况需要管理人员高度重视。一是某些病毒能穿透市场上主流的还原卡,让病毒本身保留在系统中,重启不能将系统还原。二是如ARP之类的病毒,在发作的特征时候中毒的电脑能正常上网,而机房中的其他电脑则出现网络时好时坏的情况;而且此类病毒定位麻烦,对管理人员专业知识要求较高,给正常的教学带来很大的麻烦。

防御机房病毒的关键是要处理以上两种情况。对于第一种,还原卡被穿透之后,病毒往往会在系统启动项中保留启动信息。因此,可以利用WMI协议实现对机房电脑启动项的批量扫描,如果发现异常则能快速定位故障机器。而针对第二种(ARP病毒)情况,可以采取如下的方式处理:ARP病毒通常将自己的MAC地址伪造成网关的地址,让往外发送的数据都经过它[5],因此,可以在机房在正常状态时,进行MAC和机器名的对应信息的扫描并保存。如果发现机房中出现类似ARP病毒的症状,可以对机房的MAC和机器名对应信息重新扫描,然后将扫描结果与原始信息进行比对,如果发现比对结果不同,则可以对故障机进行处理。

3 结束语

机房管理人员对机房管理过程中出现的各种各样的问题,需要及时解决,但是如何在不打断上课的同时找到问题的根源并及时解决是一大难题。本文设计的这个平台,基本实现了批量唤醒、重启、关机、远程命令、病毒检测等功能,可有效地提高机房管理效率。但网络环境复杂、在代码优化方面需要进一步研究,以加强软件的稳定性。

参考文献:

[1] 罗建,探讨计算机机房的管理与维护[J].电脑编程技巧与维护,2011.2:101~102

[2] 梅晓冬,颜烨青,Visual C#网络编程技术与实践[M].清华大学出版社,2008.

[3] 张立成,基于IP 单播的远程唤醒研究及实现[J].软件导刊 2010.3(9)3:108~109

[4] 吴江川,饶一梅,Windows下基于WMI的数据和程序管理解决方案[J].计算机系统应用,2010.19(7):126~129

[5] 肖川豫,陈孟,刘晟,汪磊,交换机监测与ARP欺骗主动防御系统的设计和实现[J].计算机时代,2011.1(1):20~22

猜你喜欢

远程管理S模式病毒检测
2021下半年加州鲈病毒检测总结与建议
GSM-R网络SIM卡远程管理技术方案研究
基于WinPcap的校园网ARP病毒检测防御系统设计与实现
被忽视的远程管理模块
GeXP多重RT-PCR技术在呼吸道病毒检测中的应用
集团公司OA系统的研究与开发
S模式空管二次雷达询问与监视技术研究
铝材B2B电子商务系统设计与实现 
基于ASP.NET的就业见习管理信息系统设计与实现
Radmin在服务器远程管理中的应用