APP下载

实现用户行为的远程监控

2017-11-08

网络安全和信息化 2017年10期
关键词:存储设备通讯程序

SNMP协议简介

SNMP是任何网管软件的核心协议,位于OSI(开放系统互连)7层协议的第5层,工作于TCP/UDP协议之上,是NMS(网管系统,即管理主机上运行的网管软件)与AGENT(代理,即被管理的设备上运行的SNMP服务)之间相互通讯的协议。

图1 SNMP原理示意图

图2 MIB结构示意图

任何信息设备,只要其支持TCP/IP协议并且运行SNMP服务,都可以纳入网络管理系统进行管理。显然,信息设备若想加入网管系统,必须启动SNMP服务,设定通行字,并使之可被访问。SNMP原理参见图1,图2。

实现原理

通过前面的介绍可知,开发用户行为远程监控程序,就是开发管理端的NMS,而被监控计算机需要运行Agent程序(SNMP服务),并设置通行字,如图2,被监控主机为10.19.138.69,通行字为public(可任意设定,系统缺省为 public),RTX.exe(腾讯通)的 OID为1.3.6.1.2.1.25.4.2.1.2,例程号n为208。

说 明:SNMP是 Windows系统的一个组件,若没有被安装,应安装“管理和监视工具”中的“简单网络管理协议”,安装后,需设置通行字,SNMP服务会自动启动。

得到OID内容的方法有两种,一是Get方法,二是GetNext方法。两种方法是按照OID.n的参数访问具体值,如上述腾讯通TRX.exe进程名称存储在1.3.6.1.2.1.25.4.2.1.2.2 08中。Get得到某个具体的OID值,GetNext是0在Get基础上得到其下一个值和下一个OID.n,NMS是通过调用SNMP的API函数得到一个或一组OID值,将用户行为相关OID值显示在用户界面。

实现方法

1.首先通过snmpWalk等软件确定所需要的OID

本程序访问的OID如下:

正在运行的进程proc ="1.3.6.1.2.1.25.4.2.1.2"

进程的安装路径Path ="1.3.6.1.2.1.25.4.2.1.4"(此项可指示应用的安装目录)

发光细菌归属于微生物范畴,对水体污染物较为敏感,在细菌正常代谢期间,发光强度稳定,持续时间较长,但若受到外部环境的影响,其发光会受到限制,因此,可结合发光抑制率监测水体综合毒性。以往有研究资料显示,再生水的原水对发光菌有一定的毒性作用,以工业废水为主的再生水对发光菌的抑制率约为50.00%。选择Y城与M城作为研究对象进行发光细菌毒性测试,结果如表1所示。此结果显示出,二级生物处理可降低污水的毒性,但氯消毒后会增加水毒性。

进程执行的参数para ="1.3.6.1.2.1.25.4.2.1.5"(进程或服务的启动参数)

安装的程序名称prog ="1.3.6.1.2.1.25.6.3.1.2"

程序的安装日 期date_time="1.3.6.1.2.1.25.6.3.1.5"

计算机系统设备device="1.3.6.1.2.1.25.3.2.1.3"

存储设备名称 storage_name="1.3.6.1.2.1.25.2.3.1.3”(包括磁盘、光盘、U盘和内存)

存储设备分配单 元storage_unit="1.3.6.1.2.1.25.2.3.1.4"(是后面两项大小的数量单位)

存储设备大小 storage_size="1.3.6.1.2.1.25.2.3.1.5"

存储设备占用 storage_used="1.3.6.1.2.1.25.2.3.1.6"

系统上线时间uplink="1.3.6.1.2.1.1.3"

2.通过wsnmp32.dll动态链接库访问Agent

要完成从Agent得到OID.n的内容,需要四个步骤,第一步是建立对话,设置SNMP版本,启动API,得到句柄,为后续操作做准备;第二步是对连接参数的格式进行转换,根据不同的操作类型形成对应的PDU并发给 Agent,Agent端若启动了SNMP服务,就会响应这一请求,若与指定通讯串匹配,ODI在Agent端的MIB中也存在,就会返回请求数据。而若有一项不符合条件,就会返回错误。

例如,本机192.168.1.1向192.168.1.2发出请求,SNMP通讯串为public,版本号为V1,超时timeout=2秒,需访问的OID="1.3.6.1.2.1.1.3.0"(系统上线时间),把以上信息的格式通过转换,连同操作类型Get形成PDU发出,可得到字符串型的时间数据。

特别地,若需要得到一组数据(如所有的进程)时,第一个操作应该是Get,后续的操作为GetNext,并应依据返回的OID判断何处是本组数据的最后一个。

第三步是处理Agent返回的数据,得到PDU,从PDU中提取需要的数据,对数据格式进行转换,形成需要的格式并显示在界面中。第四步是关闭会话,释放资源。

3.返回数据的处理

返回的PDU中的数据,无论是字符型还是(长)整型,都以占用字节数确定长度。正常情况下,取出的数据存在字符型数组中,字符串型数据可直接使用。例如,程序名称,长整型数据转换后也可直接使用。但是,长整型数据取出到字符型数组有时会发生问题,取出后导致长度会发生改变,数据发生错误。

经分析发现,当长整型数据的内码(16进制序列)中含有大于等于“A0”的字节时就会导致错误。例如,程序名OID=.1.3.6.1.2.1.25.6.3.1.5.1,Type=OctetString,Value=07 E0 0C 1A 0E 07 3A 00,而大于“A0”的字节是汉字区位码标志,不知wsnmp32.ddl是否因此导致了错误。总之,这或许是个BUG。

4.程序功能

本程序使用VB6开发,程序分单机查询和多机查询两个模块。

单机模块可以通过DOS命令调用,格式为show_win <通讯串><显示名>(可缺省),返回界面如图4所示。从图中看出,该用户安装的程序按时间顺序显示出来,其中包括office、autocad、google浏览器等;运行的程序及所在目录、运行参数也都一一列出,如360杀毒程序(360sd.exe)运行参数为/autorun,写字板程序(wordpad.exe)正在编辑文件”d:softwhow_windate_list”;用户安装有hp laserJet 5200LX打印机,4核CPU,一块硬盘等;用户到目前为止开机2小时49分,磁盘分C、D、E三个分区及大小和利用率等。显然,这些数据的获得对于信息系统管理和维护,会提供帮助。

图4 用户行为远程监控单机查询界面

图5 多用户运行程序查询程序界面

图6 运行程序扫描结果

多机查询为Windows程序,只需有一张包含用户IP地址的excel表格,指定通讯串和IP地址所在表格中的位置,既可对程序名称进行模糊查询,界面如图5所示,查询结果自动加入IP地址表中,如图6所示。在图6中看到的是对多个用户运行360杀毒软件(360sd.exe)和腾讯通程序(RTX.exe)的查询结果,表中显示哪个用户运行了(标为“Yes”),哪个用户没运行(标为”No”),网不通标为“ping不通”,网通但对方SNMP服务未启动或通讯串不匹配标为“SNMP错误”。显然,这一功能对于大范围检查用户是否运行规定的程序是非常高效的。

结束语

限于篇幅,本文只是给出了程序的编制思路和方法,没有介绍具体编码。掌握了这一方法,就可按需要开发各种网管程序,例如,机房温度的远程监控就可通过监控交换机的环境温度实现,也可以通过SNMP Trap监控交换机接口的上线/下线等。

猜你喜欢

存储设备通讯程序
《茶叶通讯》简介
《茶叶通讯》简介
通讯报道
试论我国未决羁押程序的立法完善
“程序猿”的生活什么样
英国与欧盟正式启动“离婚”程序程序
Windows 7下USB存储设备接入痕迹的证据提取
通讯简史
基于Flash芯片的新型存储设备数据恢复技术研究
创卫暗访程序有待改进