在大型网络管理中,网络管理员比较头痛的问题就是如何实时了解不在身边的网络设备的运行状况。若要一台一台的去查看网络设备的运行现状,那明显不是很现实。笔者在这里为大家介绍一种利用SNMP协议自动帮助管理员收集网络运行状况的方法。通过这种方法,网络管理员只需要坐在自己的位置上,就可以了解全公司的网络设备的运行情况。
SNMP,其中文名字叫做简单网络管理协议,这是一个应用层协议。有了这个简单网络管理协议,则网络管理员可以很方便的在SNMP代理和管理器之间交换管理信息。它的主要作用就是帮助企业网络管理人员更方便的了解网络性能、发现并解决网络问题、规划网络的未来发展。
若网络管理员要部署SNMP应用也比较简单。下面笔者通过一个简单的例子,来谈谈在企业网络中如何通过SNMP协议来帮助网络管理员实时了解网络运行状况。
如上图中,现在网络管理员希望能够在自己的电脑上,实时了解这台路由器的运行状况,前提是不离开自己的位置。此时,该如何处理呢?
一、 SNMP应用的基本组成部分。
在讲解这个解决方案之前,笔者先要谈谈SNMP应用的基本组成部分,这有利于大家了解后续的配置。通常情况下,SNMP应用主要有三部分组成,分别为网络管理系统、SNMP代理以及被管设备。
SNMP代理是一个驻留在网络设备上的网络管理软件。他的作用就是将网络设备中的本地管理信息,如日志信息等,转换为SNMP兼容的格式。并且隔一段时间,把这个信息发送给SNMP管理系统。其主要作用就是一个,把路由器等网络设备中的日志文件进行转换。以便SNMP管理系统进行读取。
被管设备就是指我们需要管理的网络设备。在这些设备中,往往就含有SNMP代理。这些SNMP代理会主动收集和存储管理信息,并通过SNMP把这些信息提供给网络管理系统。现在大部分厂家的网络设备,如思科的路由器、交换机等产品,就都带有SNMP代理功能。为此,从SNMP应用解决方案来讲,这些带有SNMP代理的网络设备或者服务器,就被称为被管设备。
网络管理系统主要与被管理设备上的SNMP代理进行通信,从而完成信息收集、信息统计、异常警报等作用。在实际工作中,网络管理系统往往安装在网络管理员的主机上。从而他可以在不离开自己位置的前提下,收集各个网络设备的运行信息。
二、 SNMP应用的主要命令。
SNMP的命令比较少,但是个个都比较实用。
第一个命令是读(READ)命令。即网络管理员可以在网络管理系统上,通过Read命令,去见识被管设备的运行状况。如当管理员发现某台路由器设备运行异常,以前设置的访问控制列表不起作用。此时,就可以在自己电脑的网络管理系统中,通过Read命令去了解路由器的当前运行状况,以了解到底是哪里出现了问题。
第二个命令是写(WRITE)命令。如网络管理员通过读命令了解到路由器的访问控制列表失效了。此时,网络管理员就可以在自己主机上,通过网络管理系统向路由器发布命令,让其重新启用访问控制列表。也就是说,写命令主要就是向路由器等被管设备发送操作指令。
以上这两个命令主要是在网络管理员这端发送的。即其主动权在管理员这边。
第三个命令为陷阱(Trap)命令。也就是说,网络管理员先在路由器等被管设备中设立一些指标,如CPU利用率等等。当超过这个指标后,在路由器等被管设备上的SNMP代理就会把这个信息发送给网络管理系统。管理员就可以通过网络管理系统了解到这个信息,从而可以让他们尽快的采取应对的对策。若用专业的语言描述,就是Trap命令用来向SNMP管理器伊布发送事件报告。
第四个命令为通知(Inform)命令。这个命令跟陷阱命令类似,主要就是用来做SNMP事件通知。不过其跟陷阱命来有一个很大的不同,即陷阱命令是不可靠的,而Inform命令是可靠的。也就是说,陷阱命令发出信息后,就算完工了,其不会关心网络管理系统是否真正的受到了这条信息。而Inform命令在发出信息后,会等待网络管理员的响应。如果SNMP代理没有收到确认消息的话,则就会在一段时间后冲发Inform报文信息。所以,从这个角度讲,Inform命令更加可靠。
第三、第四个命令主要是路由器等被管设备发生异常情况时,自动向网络管理员报警。如此的话,网络管理员就不用天天盯着网络管理系统看。因为在有异常情况时,路由器等被管设备会自动向网络管理员报警。从而网络管理员不会漏过任何一个警报,为他们处理问题引得了时间。
三、 SNMP引用的注意点。
在使用SNMP解决方案来收集被管设备的运行信息时,最主要的问题就是要注意其安全方面的漏洞。因为非法攻击者可以使用SNMP协议了解被管设备配置以及内部网络拓扑结构。甚至还可以对网络设备的配置进行更改,以满足他们进一步入侵的需要。另外,非法攻击者还可以通过SNMP的一些辅助工具,如SNMP发现工具或者通过捕获SNMP报文,来访问管理信息库,从而掌握一些下一步攻击所需要的基本信息。
所以,网络管理员在享受SNMP所带来便利的时候,也需要关注其可能会导致的安全漏洞。针对这个安全问题,笔者有如下建议。
一是利用SNMPv2版本代替SNMPv1版本。现在简单网络管理协议(SNMP)有两个版本。其第一个版本安全性比较差,如通过明文形式传递数据等等。而以明文形式在网络上传递数据的话,则非法攻击者可以利用一些黑客工具,轻易捕获SNMP报文,从而收集一些可用的信息。而第二个版本的网络管理协议,则在这方面有了改进。最重要的变化,就是把明文传输改为了密文传输。如此,非法攻击这若想通过网络侦听等手段非法获取SNMP报文,就变得没有意义。因为他们及时取得这个报文,报文的内容也是加密过的,他们无法读取。所有到手的SNMP报文也就一文不值。另外,第二个版本的网络管理简单协议也增强了一些操作上的内容,如改善了Inform命令的操作方式等等。所以,无论从安全上还是从管理上,第二个版本的简单网络管理协议都比第一个版本的要好的多。为此,在有条件的情况下,网络管理员最好采用第二个版本。
二是利用独立的身份验证机制,来进行身份验证。因为SNMP协议本身并没有身份鉴别能力,这就在安全威胁面前暴露了严重的脆弱性。所以,一个未经授权的实体可以假借授权管理实体的身份来进行操作。如未经授权的用户可能试图改变由授权的管理员用户所产生的SNMP报文等等。如果未经授权的用户录制、延时或者复制并重放了由授权用户所产生的保温,则报文的序列和时间就会被修改。所以,若没有给SNMP协议配备身份验证机制的话,对于企业网络的安全是一个很大的挑战。笔者认为,无论在何时,管理的便利性与安全性都是同等重要的。
三是合理选择访问模式。众所周知,思科的路由器提供了两种访问模式,分别为用户级模式与特权级模式。其中用户模式之能够查看路由器的一些基本信息,而不能够更改其配置。而在利用简单网络管理协议收集管理路由器的时候,其也可以选择访问模式。路由器上的SNMP代理能够使得用户未用户访问模式与特权访问模式配置不同的字符串,从而进行访问模式的控制。例如,要SNMP代理以特权模式的方式访问路由器的华,则可以在命令后面加入RW选项;而如果以用户模式进行访问的话,则可以加入RO参数。在一般情况下,建议用户采用用户模式进行访问。而只有在用户模式下不能够完成任务的时候,才使用特权模式。这个访问模式的控制,可以在很大程度上提高SNMP解决方案的安全系数。
【编辑推荐】