资源描述
姓 名 专 业 班 级 09网络3班 论 文 名 称 研究snmp在网络管理中的应用 指 导 教 师 目录一 选题背景21.1 课题概述21.2 技术背景2二 网络管理与SNMP协议 32.1 网络管理 32.2网络管理分类及功能 32.3 SNMP协议3三 SNMP网络管理的安全性探讨83.1 引言83.2 SNMP存在的隐患83.3 SNMPv2配合IPSec安全模型83.4 SNMPv3安全模型9四 富满电子有限公司网络管理项目分析114.1 模拟SNMP获取网络设备信息 114.2 富满电子有限公司网络结构与功能说明14五 总结与展望21六 参考文献21一 选题背景1.1 课题概述随着网络技术的发展,人们步入了一个全新的信息时代。面对日益复杂的网络结构与逐渐增加的网络流量,网络管理者需要实时了解各个网段的流量情况、网络带宽的使用率、硬件故障与软件失误的预警等网络运行信息,要做到这点,最有效的办法就是在原有的网络硬件基础上构建一个网络管理系统以实现对全网的监控。而广为人知的SNMP协议就符合这样的要求,基于snmp协议的管理系统 适用中等规模的校园网和企业网,网络成本低,管理效率明显,为目前一些企业在网络建设过程中“重硬件、轻管理、轻软件”所带来的一系列网络管理问题提供了一个很好的解决途径。越来越多的网络设备都提供了对SNMP的支持,利用SNMP协议,可以了解网络的运行情况,设置设备参数,收集相关数据,了解网络的使用效率 。 虽然snmp用处大优点多,但是根据SANS协会的报告,对于接入Internet的主机,SNMP是威胁安全的十大首要因素之一;同时,SNMP还是Internet主机上最常见的服务之一。特别地,SNMP服务通常在位于网络边缘的设备(防火墙保护圈之外的设备)上运行,进一步加剧了SNMP带来的风险,这一切听起来出人意料,但似乎又是情理之中,所以需要我们加强对snmp在网络管理上应用的研究。1.2技术背景 Snmp是管理进程(nms)和代理进程(agent)之间的通信协议,它规定了在网络环境中对设备进行监视和标准化管理框架、通信的公共语言、相应的安全和访问机制。网络管理员使用snmp功能可以查询设备信息、修改设备的参数值、监控设备状态、自动发现网络故障、生成报告等。Snmp具有一下技术优点:1 基于tcp/ip 互联网的标准协议,传输层协议一般采用udp2 自动化网络管理。网络管理员可以利用snmp平台在网络上的节点检索信息、修改信息、发现故障、完成故障诊断、进行容量规划和生成报告。3 屏蔽不同设备的物理差异,实现不同厂商产品的自动化管理,snmp只提供最基本的功能集,使得管理任务被管设备的物理特性和实际网络类型相对独立,从而实现对不同厂商设备的管理。4 简单的请求一应答方式和主动通告方式相结合,并有超时和重传机制。5 报文种类少,报文格式简单,方便解析,易于实现。6 Snmpv3版本提供于认证和加密安全机制,以及基于用户和视图的访问控制功能,曾强了安全性。 二 网络管理与SNMP协议2.1网络管理 网络管理,是指网络管理员通过网络管理程序对网络上的资源进行集中化管理的操作,包括配置管理、性能和记账管理、问题管理、操作管理和变化管理等,一台设备所支持的管理程序反映了该设备的可管理性及可操作性。而交换机的管理功能是指交换机如何控制用户访问交换机,以及用户对交换机的可视程度如何。通常,交换机厂商都提供管理软件或满足第三方管理软件远程管理交换机。一般的交换机满足SNMP MIB I/MIB II统计管理功能,而复杂的一些交换机会增加通过增加内置RMON组(mini-RMON)来支持RMON主动监视功能。有的交换机还允许外接RMON 探监视可选端口的 网络状况,常见的网络管理方式有一下几种: (1) snmp管理技术(2) RMON管理技术(3) 基于web管理技术2.2 网络管理分类及功能 (1)网络管理分类 网络管理技术是伴随着计算机、网络和通信技术的发展而发展的,二者相辅相成,从网络管理范畴来分类,可分为一下三种:a 对网络的管理。即针对交换机、路由器等主干网络进行管理。b 对接入设备的管理,即对内部pc、服务器、交换机等进行管理。c 对行为的管理,即对用户的使用进行管理;对资产的管理,即统计IT软硬件的信息等。(2)网络管理的功能 根据国际化标准组织定义网络管理有五大功能:故障管理、配置管理、性能管理、安全管理、计费管理。对网络管理软件产品功能的不同,又可细分为五类,即网络故障管理软件、网络配置管理软件、网络性能管理软件、网络服务/安全管理软件、网络计费管理软件。2.3 SNMP协议 (1)概念 网络管理协议(SNMP),由一组网络管理协议的标准组成,包含一个应用层协议、数据库模型、和一组资料物件。该协议能够支持网络管理系统,用以监测连接到网络上的设备是否有任何引起管理上关注的情况。该协议是互联网工程工作小组定义的Internet协议簇的一部分。 (2)SNMP工作过程 在典型的snmp用法中,有许多系统被管理,而且是有一或多个系统在管理他们。每一个被管理的系统叫做代理者(agent)的软件元件,且透过snmp对管理系统报告资讯。 基本上,snmp代理者以变量呈现管理资料。管理系统透过GET,GETNEXT和GETBULK协定指令取回资讯,或是代理者在没有被询问 下,使用TRAP或INFORM传送资料。管理系统也可以传送配置更新或控制的请求,透过SET协定指令达到主动管理系统的目的。配置和控制 指令只有当网络基本结构需要改变的时候使用,而监控指令则通常是常态 的工作。可透过snmp存取的变量以阶层的方式结合。这些分层和其它数据(例如变量的类型和描述)以管理信息库(MIBs)的方式描述。(4) SNMP协议的发展第一版:SNMPv1是SNMP协议的最初版本,提供最小限度的网络管理功能。SNMPv1的SMI和MIB都比较简单,且存在较多安全缺陷。SNMPv1采用团体名认证。团体名的作用类似于密码,用来限制NMS对Agent的访问。如果SNMP报文携带的团体名没有得到NMS/Agent的认可,该报文将被丢弃。第二版:SNMPv2也采用团体名认证。在兼容SNMPv1的同时又扩充了SNMPv1的功能:它提供了更多的操作类型(GETBULK操作等),支持更多的数据类型(Counter32等),提供了更丰富的错误代码,能够更细致地区分错误。第三版:SNMPv3主要在安全方面进行了增强,它采用了USM和VCAM技术。USM提供了认证和加密功能,VACM确定用户是否访问特定的MIB对象以及访问方式。(5) SNMP报文a. SNMPv1报文SNMP消息主要由version、community、snmp pdu几部分构成 bSNMPv2报文 比较SNMPv1而言,SNMPv2新增了Getbulk操作报文,Getbulk操作所对应的基本操作类型是Getnext操作,通过对non repeaters 和Max repetitions 参数的设定,高效率地从Agent获取大量管理对象数据,SNMPv2修改了trap报文格式,SNMPv2 Trap pud采用SNMPv1Get/Getnext/Set PDU的格式,并将sysuptime和snmptrapOID作为variable bindings中的变量来构造报文。 cSNMPv3报文 其中,整个SNMPv3消息可以使用认证机制,并对EnineID、ContextName、PDU消息体部分进行加密,Requestid、maxsize、flags、securityModel、securityParameters构成SNMPv3消息头。 (6) Snmpv1和snmpv2实现机制Snmpv1/snmpv2实现机制基本一致,snmpv2丰富了错误码,新增了Getbulk操作,下面在以SNMPv1版本环境执行Get、Getnext和set操作为例来描述SNMPv1/SNMPv2的实现机制。a get操作NMS想要获取被管理设备MIB节点sysname的值(sysname对象在允许访问视图内),使用public为可读团体名,过程如下:NMS给Agent发送get请求,请求报文主要字段被设置为:version字段的值为1,community字段的值为public,pdu里variable bingdings中name1字段的值为sysname 0.Agent给NMS发送get响应,说明是否获取成功,如果成功,则response pdu里variable bingdings中value1字段的值为设备的名字(比如Agent010-H3C),如果获取失败,则在Error status字段填上出错的原因,在error index填上出错的位置信息。 b getnext操作NMS想要获取被管理设备MIB节点sysname的下一个节点syslocation的值(sysname和syslocation对象都在允许访问视图内),使用public为可读团体名,过程如下:NMS给Agent发送GetNext请求,请求报文主要字段将被设置为:version字段的值为1,community字段的值为public,pdu里variable bindings中name1字段的值为sysname 0。Agent给NMS发送Getnext响应,如果成功,则response PDU里varible bingdings中name1字段值为sysname.0的下一个节点syslocation.0,Value字段的值为(比如Beijing China);如果获取失败,则在error status字段填上出错的原因,在error index填上出错的位置信息。c set操作NMS想要被管理设备MIB节点sysname的值为device01,使用private为可写团体名,过程如下:NMS给Agent发送Set请求,请求报文主要字段将被设置为:version的字段为1,community字段的值为private,PDU里variable bingdings中name1字段的值为sysname.0,value1字段的填为device01。Agent给NMS发送get响应,说明是否设置成功,如果成功,则response PDU里variable bingdings中value1字段的值填为设备的新名字(比如device01),如果设置失败则在error status字段填上出错的原因,在error index填上出错的位置信息。d trap操作当设备发生某些异常需要通知NMS时,Agent会主动发出trap报文,例如:设备某端口网线被拔出,Agent发送linkdown的trap消息给nms,version字段的值为1,community字段的值为public,pdu中enterprise字段为sysobjectID.0的取值,(比如为enterprise.25506),generic trap字段值为linkdown,varible bingdings字段携带接口相关信息。(7) SNMPv3实现机制Snmpv3各操作的实现机制同snmpv1和snmpv2基本一样,其主要区别在于snmpv3新增了认证和加密、解密的处理。下面以snmpv3使用认证和加密方式执行get操作作为实例来描述其实现机制,过程如下:NMS首先发送不带任何认证和加密参数的get请求,flags字段设置为0 x4,以获取contextengineID、contextname、authoritativeEngineID、authoritativeEngineBoots、authoritativeEngineTime等相关参数的值。Agent解析信息,发送report报文并携带上诉相关参数的值。NMS再给Agent发送Get请求,请求报文主要字段将被设置成为:version字段的值为3,将(2)获取的参数填入相应字段,PDU里variable bingdings中name1字段的值为sysname.0,并且根据配置认证算法计算出AuthenticationParameters,使用配置的加密算法计算出privacyparameters,并使用配置的加密算法对PDU数据进行加密。Agent首先对消息进行认证,认证后通过PDU报文进行解密,解密成功后,则获取sysname.0对象的值,并将response PDU里variable bingdings中value1字段的值填为设备的名字(比如Agent010),如果认证、解析失败或者获取参数值失败,则在error status字段填上出错的原因,在error index填上出错的位置信息,最后对PDU进行加密,设置contextEngineID、 authoritativeEngineID、authoritativeEngineBoots、contextname、authoritativeEngineTime、authenticationparameters、PrivacyParameters等参数,发送响应报文。三 SNMP网络管理的安全性探讨3.1引言简单网络管理协议(SNMP)是目前TCP/IP网络中应用最为广泛的网络管理协议,1990年5月,RFC1157定义了SNMP的一个版本SNMPv1,RFC1157和另一个关于管理信息的文件RFC1155一起,提供了一种监控和管理计算机网络的系统方法,SNMP也有明显的不足,如难以实现大量的数据传输,缺少身份验证和和机密机制,因此提出了SNMPv3,其安全部分给网络管理提供安全保障,ip安全工具ipsec也提供了网络通信加密技术。3.2 SNMP存在的隐患安全问题是SNMP是否能够广泛应用的重要因素,也是应用者越来越关心的问题,下面从分析者的角度来分析SNMP协议中存在的安全隐患,以便寻找相应的对策,并且推动协议的不断完善和发展,安全方面可以从一下六个方面来分析:1)伪装威胁:一些未被授权的实体冒充一个授权的实体去执行一些管理操作。2)消息更改威胁:SNMP协议提供了管理站查询和控制管理代理中对象值的方法。消息更改威胁就在于一些非授权的实体更改传输的内容,以至于产生非法网管操作。3)消息泄漏威胁:攻击者可以窃听网管代理和管理站之间的信息交换。4)消息流更改威胁:SNMP是一种基于无连接(UDP)的传输服务,这种不可靠传输可能使消息被他人俘获,重新排序、延退或故意重发。5)服务拒绝威胁:攻击者可以截取管理站和代理之间正常的信息交换信息。6)流量分析威胁:攻击者可以分析管理代理者很管理站之间的业务流量。3.3 SNMPv2配合IPSec安全模型 1. SNMP配合IPSec的安全特性,加密和认证服务都是为了保障SNMP信息安全,下面的分析都是假定IPSec的ESP特性被用于来在两个安全网关的通路之间提供认证和加密鼓舞服务,典型情况如下,一个被隐藏起来的SNMP管理程序主机和另一个子网中的SNMP设备通过IPSec通道通信尽管IPSec可以提供安全网关之后的主机和主机之间的安全认证,通常情况下,并不会在SNMP设备上安装IPSec协议包,这样就使得很多重要的SNMP信息以明文的方式传递。如果不采取强有力的安全措施,将很有可能使得网络存在严重的隐患。SNMP配合IPSec解决方案的主要优点是能清楚地将安全过程和SNMP过程分开。2. SNMP配合IPSec的功能特性,使用IPSec安全特性并不直接面向用 户,在IPSec协议中,密匙的管理和更新是自动的通过IKE协议来处理的,这种自动更换密匙的机制很大地提高了整个系统的安全性,由此得知,SNMP配合IPSec这种解决方案为大型网络提供了一种安全的访问模式。3.4 SNMPv3安全模型1.SNMPv3基于用户的安全模型(USM),USM主要提供认证服务和加密服务,认证技术主要是针对SNMP消息报文头的控制,它允许一个实体鉴别一个消息的来源以及这个消息是否被修改,它还允许合适性检验,通过确认消息按照合适的方式接受,减少消息被延迟和恶意重复的威胁。如下图2,USM的安全机制图2身份鉴别:在双方进行数据通信前,首先要确认对方的身份,要求交易双方的身份不能或伪装,通过数字签名技术使得SNMP实体在接受消息后确认消息是否来自授权的实体,并且消息在传输过程中从未被改变的过程。USM使用默认的HMAC-MDG-96或者HMAC-SHA-96算法进行消息的认证,如果在安全强度较高的条件下,可以采用其他算法替代,如AES算法。合时性检查:主要实现对报文延迟或重发的保护,在SNMPv3安全通信中,USM采用一种宽松的同步时钟技术来判定消息是否被故意延迟,时钟值由EngineBoots和EngineTime两部分组成,两个SNMP实体通信时,将本实体“始终”值的这两个参数填入消息对应的msgAuthoritativeEngineBoots和msgAuthoritativeEngineBoots域,发送给对方,对方取出消息中的时钟值,与自己的时钟值进行比较作合适检查。重复性检查:每个发送的报文都有一个报文标识符msgID,发送SNMP请求的实体将负责使用这个消息标识符,将它接收到的一个响应与一个未解决的请求匹配,并且在150s间隔中不能有两个相同的msgID字段的报文回送。假设有两个具有相同消息标识符的响应在一个150s时间窗口中接收,第一个响应将被匹配,然后删去具有该标志符的请求,因而后到的重复响应将无相应请求与之匹配而被丢弃,通过这种机制,发送者可以在一定程度上判别报文是否是重发以防止报文复制。报文加密:报文加密是保护信息在传输过程中不被泄密和篡改。保密过程与身份认证类似,也需要管理站和代理共享同一密钥来实现消息的加密和解密,privkey由口令经MD5算法获得。USM规定了加密使用的是DES的CBC(密文块链接)模式。2.SNMPv3基于视图的访问控制模型(VACM)。VA CM解决的主要问题是合法实体是否有权限去操作它在PDU中所要求的MIB对象,并将用户和特定的MIB视图关联起来,此外,它还可以为特定的安全模型和安全级别定义不同的MIB视图,在具体实现权限管理时,引入了组的概念,通过设置它的属性来设置它所规定的权限,一个用户若属于一个组,那么它就拥有了这个组所规定的权限。组中应包括以下属性:安全模型、安全级别、上下文名以及读/写/通知视图名。利用安全模型和安全名作为索引找到一个记录形成一个组名。VACM MIB由以下几个表组成:(1)vacmContextTable:定义了本地可用的上下文。(2) hracmSamrityToGroupTable:将一个securityMoclel和seoarityName映射为一个groupName(3)vacmAccessTable:将一个groupName上下文以及安全信息映射为一个MIB视图。(4)vacmviewFamilyTable:定义是否可以为一个给定的MIB视图访问一个对象标识符。下图是VACM作出决策需要的六个步骤:VACM访问控制方式你是谁(包含安全模型和安全名称的组)你想去哪儿(要访问你的上下文) 在访问这些消息时,你有多安全(安全模型和安全级别)你为什么要访问这些信息(读、写或者发送通知)你要访问什么对象(对象类型)你想要访问哪个对象(对象实例) 四 富满电子有限公司网络管理系统项目分析4.1 通过实验模拟SNMP获取网络设备信息1.实验环境 2.实验工具Packet tracer 模拟器3. 实验内容1) 按图所示连接网络配置交换机管理地址为:vlan 1 192.168.1.2 255.255.255.0Switch#config tSwitch(config)#interface vlan 1Switch(config-if)#no shut Switch(config-if)#ip address 192.168.1.2 255.255.255.02) 配置路由器RouterenableRouterconfig tRouter(config)#hostname R1R1(config)#interface f0/0R1(config-if)#ip address 192.168.1.1 255.255.255.0 R1(config-if)#no sh R1(config-if)#exitR1(config)#snmp-server community 0802 roR1(config)#snmp-server community 0802 rw3) 配置交换机SwitchenableSwitch#config tSwitch#interface vlan 1Switch(config-if)#ip address 192.168.1.2 255.255.255.0Switch(config-if)#exitSwitch(config)#snmp-server community 0802 roSwitch(config)#snmp-server community 0802 rw4) 获取网络设备的系统消息首先,点进pc,选择destop的MIB选择advanced,填入需要管理网络设备的ip地址,填入设备上community值(0802)5) 测试结果通过查找MIB数据库中精确查找我们需要的信息节点路径,得到我们所需要的信息节点路径OID(136121110)通过get操作以snmp数据到网络设备获取网络设备的信息。.4.2 富满电子有限公司网络结构与功能说明 观澜分公司网络拓扑图1.公司网络拓扑图如上由外网接路由器,路由器接一个D-link公司的三层交换机,下面级联不同的设备,分别做不同的用处,行政办公(192.168.10.1)、无线路由器(192.168.11.1)、视频监控(192.168.12.1)、待用(192.168.13.1)。2.需求分析 这样的一个典型网络对网络管理的需求是存在的,在网络运行中,有如下的情况a 经常有同事反映某网段特别慢,某网段传输不稳定等情况b 由于各方面的原因,维护网络运行的人并不拥有对网络设备真正意义上的管理权限,对网络的监管处于无序的状态c 公司自身条件不能够采用商品化的网络管理产品为了解决上面的问题,利用snmp工具和组件来构建一个网络管理系统, 并在项目中实施下来。3网路管理系统体系结构 a 系统基本框架:采用snmpv2协议,采用管理器+管理代理的模式,在服务器上需要配置代理。b 监测: 在公司目前网络情况下,采用集中监测方式足以完成其应承担的工作c 运行平台:windows server 2003d 被管理对象:DGS-3700-28N(三层交换机) DI-7300(路由器) DES-3100-26(二层交换机) 以及邮件服务器和DNS服务器等4需要一个MRTG(Multi Router Traffic Grapher)软件 MRTG是一个监控网路链路流量负载的工具软件,在我们网络管理系统MRTG承担着重要的角色,提供GUI的图形界面以及web方式访问。5. 配置SNMP 打开“windows组件向导”在“组件”中单机“管理和监视工具”,然后单机“详细信息”。选中“简单网络管理协议”复选框,然后单机“确定”。再选择“下一步”。(下图).执行该过程,必须是计算机administrators组的成员,或者您必须被委派了适当的权限,某些windows组件在使用之前需要进行配置。如果已经安装一个或多个这样的组件,但没有对她们进行配置,则单机“添加/删除程序”时,将显示需要配置的组件列表。安装完成后SNMP启动 安装完成后,在“常规”选项卡下,用户可以查看SNMP服务对应的可执行程序文件、服务状态,并可修改服务的启动类型。(下图)单机“代理”可进行代理配置,其中的联系人位置、服务分别对应系统组中的3个对象sysContact,sysLocation,sysService(下图) 单机“陷阱”选项卡可进行陷阱设置。设置方法是先输入社区名称,如“public”,然后单机“添加到列表”按钮,最后输入陷阱的目标地址。陷阱的目标地址一般是SNMP管理站,可输入管理站的IP地址、IPX地址或主机名。(下图) . 安全配置:windows snmp服务不仅允许指定被接受请求的社区名和主机,还可指定当收到一个非经授权的社区名时是否发送身份验证陷阱。在“SNMP服务的属性”对话框中单机“安全”,如果希望出现失败认证时发送陷阱,则选中“发送身份认证陷阱”反之,清除复选框。另外还可设置代理只接受特定主机的SNMP包。. Trap(陷阱)服务:该服务接受由本地或远程SNMP代理程序产生死亡陷阱消息。然后将消息传递到运行在本地计算机上的SNMP管理程序。SNMP Trap服务默认启动类型为手动,可在其启动窗口中改为“自动”运行。. 在SNMP服务安装、配置完成并重新启动SNMP服务后。管理站就可以向SNMP代理发出请求报文查询信息,并接收代理的响应报文了。测试程序:snmputilg.exe.或AdventNet SNMP Utilties等。可以启动光盘中/support/tools/setup.exe安装此测试程序。“开始”“程序”“windows 2000 support tools”“tools”中的“SNMP Query Utility”启动snmputilg。 6.配置MRTG 收集信息:监控设备的IP地址,snmp端口号,如果对监控设备的输入输出字节之外的管理信息感兴趣,需要知道对应的OID监控设备的社区字符串 生成配置文件(切换到c:mrtg-2.17.2bin目录下,执行per cfgmaker public 10.10.10.1-global“workDir:cwwwmrtg” -output mrtg.cfg 查看并编辑mrtg.cfg文件 ,创建c:wwwmrtg目录 设置mrtg自动运行,配置中文件加入RunAsDaemon:yes 运行start/Dc:mrtg-2.17.1bin wperl mrtg loggoing=event -log mrtg.cfg7 . 配置iis服务,将默认路径指向c:inetpubwwwrootmrtg,在该路径下建一个index.htm网页,在该网页中加入服务器和交换机的超链接,使用IE游览器,输入相应的地址就可以查看网络流量信息了。8. 设置MRTG自动运行 默认情况下,mrtg是不会自动启动的,如果系统重启,监控就停止了,为了避免发生这种情况,我们还需要对系统进行一些设置,以便在系统重启时,mrtg能够正常工作。将下面内容使用记事本存为mrtg.bat echo off cd c:mrtgbin start /D c:mrtgbin wperl mrtg logging=server01log c;inetpubwwwrootmrtgserver01server01.cfg start/D c:mrtgbin wperl mrtg logging=server01log c;inetpubwwwrootmrtgserver01switch01.cfg然后将.bat文件添加到启动组里面,系统开机后就能自动启动了 五总结与展望 一系列的查阅和实验之后,对SNMP协议有了一定的了解,但都是皮毛而已,里面涉及到的知识面太多太广。十余年来,internet上的网络管理SNMP经历了曲折的发展过程,SNMPv1在面世之时把自己定位为一个过渡期的产物,从SNMPv2,SNMP脱离了OSI模型的束缚,在功能与管理上都有了长足的进步,随着网络发展壮大,没有安全的网络管理是不能忍受的,需求的推动使IETF在总结数年来的网络管理经验的基础上发布了SNMPv3,SNMPv3不仅在安全与管理上提出了实际可行的方案,而且提出了模块化的体系结构,这些都标识着从SNMPv3起,SNMP走向成熟,但是SNMP并非完美,其中仍有问题尚待解决,因此,提供既能保持SNMPv1的简单性又能提供强有力的安全与管理特性的SNMPv3实现方案成为当前以及将来一段时间的主要研究课题。六参考文献部分参考文献1 William Stallings著,胡成松、汪凯译. SNMP网络管理. 中国电力出版社 2001.9:62652 晏明峰译. 用SNMP管理互联网络(第三版). 中国水利电利出版社 2001.3:5143 何艳辉、王达编著. 网管员必读网络管理. 电子工业出版社 2005.1:8297
展开阅读全文