SNMP发展及概要分析摘要:为了进一步理解简单网络管理侨议,通过对网络管理与简单网络管理协议(SNMP)的分析,指出了SNMP所面临的安全威胁、网络管理与SNMP的发展方向。描述SNMP的通信模式,组成部分、通信协议与管理信息库(MIB),指出了SNMP面临伪装、信息更改、信息泄漏、拒绝服务等安全威胁。提出了由于SNMP的SMI使用ASN.l信令描述,SNMP的核心安全具有安全隐患。最后描述并分析了基于web的方式、桌面管理任务组织,分布式对象管理和下一代SNMP等网络管理发展方向。1.SNMP概述1.1什么是SNMPSNMP的全称为简单网络管理协议(SimpleNetworkManagementProtocol),顾名思义,SNMP是用于网络管理的协议。1.2SNMP产生背景网络的迅速发展和普及使得以下几个问题日益突出:网络规模逐渐增大,网络设备数量成级数增加,网络管理员很难及时监控所有设备、发现并修复故障;网络设备很可能种类不同、生产厂家不同、型号不同,如果为每种网络设备都提供一套独立的管理接口和协议,将使网络管理越来越困难。为解决以上两个问题,一套覆盖服务、协议和管理信息库的标准——SNMP孕育而生。1.3SNMP发展历程1990年------SNMPv11991年------RMON(RemoteNetworkMonitoring远程网络监视),它扩充了SNMP的功能,包括对LAN的管理及对依附于这些网络的设备的管理。RMON没有修改和增加SNMPv1,只是增加了SNMP监视【子网】的能力。1993年------SNMPv2(SNMPv1的升级版)1995年------SNMPv2正式版,其中规定了如何在基于OSI的网络中使用SNMP1995年------RMON扩展为RMON21998年------SNMPv3,一系列文档定义了SNMP的【安全性】,并定义了将来改进的总体结构,SNMPv3可以和SNMPv2、SNMPv1一起使用。图1SNMP发展历程图2SNMP版本改进1.4SNMP的原理SNMP采用了C/S模型,对网络的管理与维护是通过管理基站与SNMP代理间的交互完成的。该交互工作可采用2种方式:一是由管理基站对每个代理进行查询,每个SNMP从代理负责回答SNMP管理工作站关于管理信息库(MIB)定义信息的各种查询;二是由代理产生自陷信息,向管理基站通报SNMP代理和管理站通过标准消息通信,这些消息中的每一个都是一个单个的包。SNMP使用用户数据报协议(UDP)作为第4层即传输层协议,无需连接。1.5SNMP的技术优点1)基于TCP/IP互联网的标准协议,传输层协议一般采用UDP;2)自动化网络管理。通过SNMP功能,网络管理员可以查询/修改设备信息、监控设备状态、自动发现网络故障、生成报告等。3)屏蔽不同设备的物理差异,实现对不同厂商、不同种类、不同型号设备的统一管理。4)SNMP只提供最基本的功能集,使得管理任务与被管设备的物理特性和实际网络类型相对独立。5)简单的协议,实现了简单的网络管理操作:请求-应答方式和主动通告方式相结合,并有超时和重传机制。报文种类少、格式简单,方便解析、易于实现。6)SNMPv3版本还提供了认证和加密安全机制,以及基于用户和视图的访问控制功能,大大增强了安全性。2.2SNMP主要组成部分SNMP主要由3部分组成:管理信息结构、管理信息库与协议。SNMP:SimpleNetworkManagementProtocol(简单网络管理协议)。是一个标准的用于管理基于【IP】网络上设备的协议。MIB:ManagementInformationBase(管理信息库)。定义代理进程中所有可被查询和修改的参数。SMI:StructureofManagementInformation(管理信息结构)。SMI定义了SNMP中使用到的ASN.1类型、语法,并定义了SNMP中使用到的类型、宏、符号等。SMI用于后续协议的描述和MIB的定义。每个版本的SNMP都可能定义自己的SMI。2.1SNMP_典型应用图3典型的SNMP典型应用图SNMP基于TCP/IP协议工作,对网络中支持SNMP协议的设备进行管理,所有支持SNMP协议的设备都提供SNMP这个统一界面,使得管理员可以使用统一的操作进行管理,而不必理会设备是什么类型、是哪个厂家生产的。如上图是一个典型的SNMP典型应用图。2.2SNMP管理模型图4SNMP管理模型如上图,SNMP管理模型包含四个组成部分:1)SNMPNMS(NetworkManagementStation,网络管理站)2)SNMPAgent(代理)3)SNMP协议4)MIB(ManagementInformationBase,SNMPNMS,即SNMP管理站(又称为SNMP管理者),是一个利用SNMP协议对网络设备进行管理和监控的系统。NMS既可以指某个网络设备中执行管理功能的一个应用程序,也可以指一台专门用来进行网络管理的服务器。SNMPAgent,即SNMP代理,是一个运行在被管设备上的软件模块,用于维护被管理设备的信息数据(即MIB),还负责接收、处理、响应来自NMS的请求报文,也可以主动发送一些通知报文给NMS。MIB,即管理信息库,每个Agent都拥有自己的MIB。MIB是一种对象数据库,由设备所维护的被管理对象组成,并定义了管理对象的一系列属性:名称、访问权限和数据类型等。在MIB中,被管理对象按照层次式树形结构组织。SNMP协议是用来规定NMS和Agent之间是如何交换管理信息的应用层协议,它定义了SNMP数据包的格式、封装及传输细节。SNMP协议以Get-Set方式替代了复杂的命令集,利用基本操作演绎出全部网管操作,实现网络管理员的网管需求。Get(读)操作:由NMS向Agent发出请求,读取被管设备的配置和状态信息。Set(写)操作:由NMS向Agent发出请求,远程修改被管设备的配置参数。Trap操作:由Agent主动向NMS发送Trap报文。当被管设备发生比较重要的事件时(如接口状态改变、呼叫成功等),Agent就会主动通知NMS。2.3SNMP服务端口图5SNMP服务端口如上图,SNMP使用UDP传输协议来操作,并使用了两个服务端口:在UDP161端口监听NMS的访问请求;在UDP162端口监听Agent发送的Trap报文。由于Agent和NMS采用不同的服务端口,所以一台设备可以同时作为Agent和NMS使用。2.4SNMP支持的网管操作对于网络管理,我们面对的数据是设备的配置、参数、状态等信息,面对的操作是读取和设置;同时,因为网络设备众多,为了能及时得到设备的重要状态,还要求设备能主动地汇报重要状态,这就是报警功能。图6SNMP支持的网管操作Get:读取网络设备的状态信息。Set:远程配置设备参数。Trap:管理站及时获取设备的重要信息。2.4SNMP的实现结构在具体实现上,SNMP为管理员提供了一个网管平台(NMS),又称为【管理站】,负责网管命令的发出、数据存储、及数据分析。【被】监管的设备上运行一个SNMP代理(Agent)),代理实现设备与管理站的SNMP通信。图8SNMP协议的逻辑结构管理站与代理端通过MIB进行接口统一,MIB定义了设备中的被管理对象。管理站和代理都实现了相应的MIB对象,使得双方可以识别对方的数据,实现通信。管理站向代理申请MIB中定义的数据,代理识别后,将管理设备提供的相关状态或参数等数据转换为MIB定义的格式,应答给管理站,完成一次管理操作。已有的设备,只要新加一个SNMP模块就可以实现网络支持。旧的带扩展槽的设备,只要插入SNMP模块插卡即可支持网络管理。网络上的许多设备,入路由器、交换机等,都可以通过添加一个SNMP网管模块而增加网管功能。服务器可以通过运行一个【网管进程】实现。其他服务级的产品也可以通过网管模块实现网络管理,如Oracle、WebLogic都有SNMP进程,运行后就可以通过管理站对这些系统级服务进行管理。根据管理者和被管理的设备在网络管理操作中的不同职责,SNMP定义了3种角色。图9代理服务器的典型应用网络管理系统:又称管理站、NMS。是系统的控制台,向管理员提供界面以获取与改变设备的配置、信息、状态、操作等信息。管理站与Agent进行通信,执行相应的Set和Get操作,并接收代理发过来的警报(Trap)。代理:Agent是网络管理的代理人,负责管理站和设备SNMP操作的传递。介于管理站和设备之间,与管理站通信并相应管理站的请求,从设备获取相应的数据,或对设备进行相应的设置,来响应管理站的请求。代理也需要具有根据设备的相应状态使用MIB中定义的Trap向管理站发送报告的能力。代理服务器:Proxy是一种特殊的代理,在【不能】直接使用SNMP协议的地方,如:异种网络、不同版本的SNMP代理等情况,Proxy代替相关设备向管理站提供一种外观,为设备代理SNMP协议的实现。Proxy做了【异种网络】或【不同版本代理】和相应SNMP数据请求的转换工作。(附:管理信息库MIB:定义了设备上可以使用的管理信息。代理和管理站使用MIB作为统一的【数据接口通信】。3.SNMP与安全在网络管理中使用SNMP时,可能产生的网络安全威胁包括:1)伪装。一些未被授权的实体可以通过假装具有授权实体的身份,去执行只有授权实体才可以执行的某些管理操作。2)信息更改。一个实体可以更改由另一授权实体产生的正在传送的消息,以至于导致越权的管理操作,包括对象值的设定。这种威胁的实质在于未经授权的实体可以更改任一管理参数,包括那些与配置,操作和计费有关的参数。3)消息序列的更改。SNMP被设计成在无连接传输协议上运行。有一种威胁可以使SNMP消息被重排、延迟或重放(复制),从而导致越权的管理操作。例如,一个重新启动设备的消息可被拷贝,并于将来某一时刻重放。4)泄漏。实体可以观测管理者与代理之间的信息交换,从而获取管理对象的值,并获知所报告的事件。例如,观测更改口令的set命令,可以使得攻击者获知新口令的内容。5)服务拒绝,攻击者可阻止管理者与代理之间的信息交换。6)流量分析。攻击者可以分析管理者与代理之间信息交换的一般模式。SNMP的SMI是基于ASN.1信令描述的,ASN.1信令是抽象数据类型形式的标准,是电信业、电力业和核电业计算机网络基础信令,也是互联网赖以运行的基础通信规则之一。但目前全球级计算机安全专家正在调查ASN.1信令的安全脆弱性。由于多个Intcmet通信协议都是基于ASN.l计算机网络语言,ASN.1的脆弱性将广泛威胁通信行业。最为显著的例子就是造成SNMP多个安全漏洞,这些缺陷可能允许非法越权访问,拒绝服务攻击、导致不稳定的运行状况。4.4网络管理与SNMP的发展4.1基于web的网络管理基于web的网络管理通常有2个含义:一种是指网络管理平台的web化;另一种是指通过内置于设备中的web服务器直接管理该设备。在第1种情况下,网管客户端与网管平台之间将不使用SNMP,网管平台与被管对象之间采用SNMP。在第2种情况下,网管客户端与被管对象之间都不使用SNMP,但被管对象内部可以使用SNMP通信。使用web进行网络管理的最大问题是其标准化的进行。基于web的企业管理WBEM联盟是由5个公司组成的一个组织,在1996年7月提出了利用web实现网络管理的一个工业标准。发起WBEM联盟最初的5家公司他们的工作包括3种接口的定义,这些接口提供了一种标准化的网络管理方法。WBEM的设计目标是使其与SNMP以及其他网络管理方案协同工作。这3个WBEM接口是:超媒体管理模式用来定义数据模型;超媒体管理协议用来定义在HTTP上运行HMMS的通信协议;超媒体对象管理器是一个开发工具,使WBEM应用程序能够把网络元素当作对象进行操纵。4.2桌面管理任务组织(DMTF)桌面管理是整个企业管理集成中SNMP部署上的重要进展。桌面管理任务组织是一个工业厂商联盟。它已经定义了一个管理主机工作站(如基于DOs和wi