SNMPV3

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

SNMP协议概述——发展历程
1、SNMPv1发展过程
• SNMPv1是SNMP协议的最初版本,提供最小限度 的网络管理功能,并在90年代得到了迅猛的发展 。同时也暴露出明显的不足。例如:难以实现大量 数据的传输、缺少身份验证和加密机制,也不支持 除TCP/IP之外的协议平台,过于集中式的管理、无 法实现对网络的监控功能。 • 同时,在SNMP V1中只提出了基于Community的安 全机制。一个SNMP团体就是一个SNMP代理和任 意一组SNMP管理站之间的关系,它定义了认证和 访问机制的特性。
1、SNMP v3 体系结构
• SNMP v3定义了新的体系结构,并在其中包含了 v1和v2的兼容,也就是说这个新的体系结构也适 用于以前版本网络管理协议。 • 在SNMP v3中,管理进程和代理进程统称为实体 Entity,SNMP实体由SNMP协议引擎Engine和应用 程序Application组成。实体包含一系列模块,通 过模块之间相互作用来提供服务。
1.1.2 消息处理子系统 Message Processing Subsystem
• 消息处理子系统由一个或多个消息处理模块组成 ,每个处理模块将按照相应的格式主要完成以下 功能: 1)准备要发送的消息 2)从接收到的消息中提取数据 消息处理子系统包括 v1、v2c和v3等版本的消息 处理模型,分别处理不同版本的消息。消息处理 模型定义了特定版本的SNMP消息的格式,以及如 何对该版本的SNMP消息进行解析,并从中提取数 据和如何构造该版本的SNMP消息。
SNMP v3实体组成结构图
1.1 SNMP协议引擎
• SNMP协议引擎负责执行协议操作,为各类SNMP 应用程序提供服务。每个协议引擎由一个SNMP协 议引擎ID来标识。由于引擎和实体之间是一一对 应的,引擎ID也能在管理域中唯一地标识实体。 但在不同的管理域中,SNMP的实体可能会有相同 的snmpEngineID。在整体上执行两种功能: 1)从SNMP应用中接收流出的PDU执行必要的处 理,包含插入鉴别代码和加密,然后把PDU封 装到用于传输的消息中去。 2)从传输层接收流进的PDU,执行必要的处理 ,包括鉴别和解密,然后从消息中取出PDU, 并把PDU传送到适当的SNMP应用中去。
2、SNMP v3 协议操作
• SNMPv3协议
SNMP目前有v1、v2、v3三个版本
编码 功能说明 0 管理站至代理,查询指定变量的值 GetNextRequest 1 管理站至代理,查询下一变量的值 Response SetRequest GetBulkRequest InformRequest Trap Report 2 3 4 5 6 7 代理至管理站,回送执行结果(正确/差 错) 管理站至代理,设置代理维护的某个 变量的值 管理站至代理,传递批量信息 管理站至管理站,传递参数处理请求 代理至管理者的警告消息 Snmpv2未定义;snmpv3定义为在消息 的PDU部分不能解密时,发起报告。
1.1.3 安全子系统 Security Subsystem
• 安全子系统提供SNMP消息的认证和加密服务。它 可以包含多个安全模型,标准协议中使用的安全 模型为RFC3414中定义的基于用户的安全模型( USM),当然,用户也可以定义其他类型的安全 模型。 • 安全模型要指出它所防范的安全威胁、服务的目 标和为提供安全服务所采取的安全协议。安全协 议内容包括一系列的安全机制和为实现安全服务 所定义的MIB对象等。
SNMPV2新增具体内容
• 扩充了对象类型的宏定义(UnitsPart、MAX-ACCESS、 STATUS),引入新的数据类型(Unsigned32和 Counter64)。 • 提供了更完善的表操作功能。 • 在协议方面引入两种新的PDU(GetBulkRequest 和InformRequest)。 • 定义了两个新的MIB信息库,SNMPv2 MIB和M2M MIB(Manager to Manager MIB),前者是对基 本的MIB的支持,后者提供了对分布式管理结构 的支持。 • SNMPv2也采用了Community来认证,它在兼容 SNMPv1的同时,也扩充了其功能。
• 相对于SNMPv1而言,SNMPv2新增加了GetBulk操 作报文,GetBulk所对应的基本操作类型就是 GetNext操作,通过设置参数Non Repeaters(非重 复数)和Max Repetitions(最大后继数),从而高 效地从Agent处获取大量管理数据。也增加了一个 InformRequest报文,与其他报文格式相同。 • 同时,SNMPv2修改了Trap报文格式,SNMPv2的 Trap PDU采用了SNMPv1的Get/GetNext/Set PDU 的格式,并将sysUpTime(发出陷入时间)和 snmpTrapOID(陷入对象标识符)作为Variable bindings中的变量来构造报文。
• 在SNMPv3消息的安全参数域(msgSecurityParameters)中 ,USM处理安全字段有: • .msgAuthoritativeEngineID:消息相关的权威引擎标识符; • .msgAuthoritativeEngineBoots:权威引擎启动/重启次数; • .msgAuthoritativeEngineTime:权威引擎时间; • .msgUserName:消息所代表的用户; • .msgAuthenticationParameters:鉴别码(MAC) ; • .msgPrivacyParameters:加/解密参数,用于生成初始向量 IV;
名称 GetRequest
SNMP 报文格式
• msgVersion:表示版本号,这里值为3。 • msgId:消息标识,取值范围为0~231-1。 • msgMaxSize:表示消息发送器支持的最大消息长度,这 里取值为484~231-1。 • msgFlags由reportableFlag/privFlag/authFlag3个标志位组 成,其中reportableFlag表示消息接收方是否需向发送方 发送ReportPDU(只有在消息的PDU部分不能被解码时-例 如由于密钥错误而解密失败,才会用到);privFlag表示 是否加密;authFlag表示是否鉴别;除了privFlag=1, authFlag=0的情况外,其它任意组合都是可以接受的,也 就是说没有鉴别的加密是无意义的。 • msgSecurityModel:消息安全模型,用于标识发送方用于 生成该消息的安全模型,发送和接收方必须采用相同的安 全模型。
1.2 SNMP应用程序
• SNMP应用程序利用SNMP协议引擎提供的服务完 成特定的网络管理任务。不同SNMP实体的应用程 序相互间通过SNMP消息进行通信。 • 应用程序主要包括以下几类: 1)命令产生器(Command Generator) 2)命令响应器(Command Responder) 3)通知产生器(Notification Originatior) 4)通知接收器(Notification Receiver ) 5)代理转发器(Proxy Forwarder) 应用模块部分由上述的一到多个应用构成,选择 不同的应用构成不同功能的实体。
1.1.1 调度器(Dispatcher)
• 调度器是同应用程序及消息处理模型进行交互, 负责SNMP消息的分发、传输和接收,它是 SNMPV3引擎的关键部件,一个引擎只有一个调 度器,它可以并发的处理多个版本的SNMP报文。 • 主要功能有: 1)接收和分发SNMP报文 2)根据消息的版本号将其转交给相应的消息处理 模块处理。 3)从消息中获取PDU,传给应用程序。 4)从应用程序中接收需要发送的PDU。
• Community是定义在代理上的一个本地概念。代 理为每个必要的认证和访问特性的联合定义一个 团体,每个community拥有唯一的名字。 community中的管理站必须使用该团体名进行get 和set操作。 • Community的名字起到了一个密码的作用,用来 实现管理站对代理的访问。如果SNMP报文携带的 团体名没有得到设备的认可,则丢弃该报文。同 时可以通过定义多个Community,代理就能够为 多个不同的管理站来提供不同的MIB访问权限。
• 命令产生器:产生SNMP请求消息,并处理对这些 请求的响应,例如getRequest。 • 命令响应器:提供对SNMP请求消息的应答,例如 getResponse。 • 通知产生器:产生和发送异步的通知消息,例如 trap generation。 • 通知接收器:接收并处理异步的通知消息。当通 知消息需要确认时,通知接收器应用程序还需生 成相应的应答消息,例如trap processing。 • 代理转发器:用于在网管实体之间转发网管消息 ,例如get-bulk to get-next • 其他:例如Special application。
SNMP V3 介绍 • 一、 SNMP V3 协议框架
• 1、SNMP v3 体系结构 • 2、SNMP v3 协议操作 • 3、SNMP v3 安全机制分析
一 SNMPBiblioteka V3 协议框架• SNMP v3相对于SNMP v2最大的改进就是主要是 在安全性和管理方面的改进。SNMP v3采用基于 User-Based安全模型(USM)和View-Based访问 控制模型(VACM)为其提供网络管理的安全性, 并采用加密的机制来避免信息的泄漏,保证信息 的安全。 USM:引入了用户名和组的概念,可以设置认证 和加密功能。认证是用于验证报文的发送方的合 法性,避免非法用户的访问;加密则对NSM和 Agent之间传送的报文进行加密,避免被窃听。通 过认证和加密的组合,可以为NSM和Agent之间的 通信提供更高的安全性。
VACM:基于视图的访问控制模型在技术上定义了 组、安全等级、上下文、MIB视图和访问策略等 五个元素,这些元素同时决定用户是否具有访问 权限。在同一个SNMP实体里可以定义不同的组, 组与MIB绑定,组内又可以定义多个用户。当使 用某一个用户名进行访问的时候,只能访问对应 的MIB视图定义的对象,这相对于通过团体名来 进行安全控制来说,在安全性上有了很大的提高 。
简单网络管理协议
—— SNMP V3
• 作为网络管理协议,SNMP在制定最初并没 有过多的考虑其安全性,而且V1和V2版本 采用明文传输团体名,这使得早期版本存 在着很大的安全隐患。 • 但是随着网络安全的日趋重要,在SNMP发 展的过程中也出现了一些安全方面的增强 方案,这些方案虽然没有形成统一的标准 ,也没有得到广泛地应用,但是,这些对 后来的SNMP V3的形成具有很大的借鉴意 义。
1.1.4 访问控制子系统 Access Control Subsystem
• 访问控制子系统通过一个或多个访问控制模块提 供确认对被管理对象的访问是否是合法的服务。 SNMP v3所提供的访问控制模型为RFC3415所描 述的基于视图的访问控制模型(VACM)。 • 访问控制模型还可以定义访问控制处理过程使用 的MIB模块,以实现对访问控制策略的远程配置 。
2、SNMPv2发展过程
• 基于以上SNMPv1的种种缺陷与不足,于是在 1993年发布了SNMPv2,并进一定的完善工作, 具有以下特点:
-支持分布式网络管理(M2M-MIB提供了对分布式管理的支持) -扩展了数据类型(Usigned32、Counter64) -可以实现大量数据同时传输,提高了效率性能(GetBulkRequest) -丰富了故障处理功能(丰富的错误提示信息,更细致的区分错误) -增加了集合处理功能 -加强了数据定义的语言(扩充了对象类型的宏)
SNMPv2 报文格式 • SNMPv2 共有7种协议数据单元,分为3种PDU结 构:
3、SNMPv3发展过程
• 但是,SNMPv2并没有实现预期的目标,尤其是 在安全性方面并没有得到提高,例如身份验证、 加密、授权和访问控制、适当的远程安全配置和 管理能力都没有实现。之后经过进一步的修改和 完善,在1998年1月,正式形成了SNMPv3。这一 系列文件定义了包括SNMPv1、SNMPv2所有功能 在内的体系框架和包含验证服务、加密服务在内 的全新的安全机制,同时还规定了一套专门的网 络安全和访问控制规则,可以这样说,SNMPv3是 在SNMPv2基础上增加了安全和管理机制。
相关文档
最新文档