SNMPv3协议介绍目录1SNMPv3的基本概念2SNMPv3的体系结构3SNMPv3的安全模型4SNMPv3的访问控制模型1SNMPv3的基本概念SNMPv3协议的主要特点SNMP协议的第三个版本是SNMPv3,没定义新的网管操作、消息类型与PDU结构,它的改进主要表现在安全性方面SNMPv3协议可看作一个安全规范,它定义一种标准化的SNMP框架结构,为两种SNMPv1与SNMPv2消息提供各种安全功能SNMPv3系统的基本结构SNMPv3系统采用客户机/服务器模式计算机网络管理进程SNMP管理器管理进程SNMP代理临时端口162161临时端口普通请求:GetRequest、SetRequest、GetNextRequest与GetBulkRequest普通响应:Response告警请求:SNMPv2-Trap管理进程SNMP管理器临时端口通告请求:InformRequest通告响应:ResponseMIBSNMPv3的网管操作普通操作:由SNMP管理器向代理发送,需要SNMP代理返回响应的网管操作通告操作:SNMP管理器向其它管理器发送,需要SNMP管理器返回响应的网管操作告警操作:由SNMP代理主动向管理器发送,不需要SNMP管理器返回响应的网管操作SNMPv3的安全机制数据认证防止SNMP消息在传输过程中被篡改,或SNMP消息来自伪造的SNMP实体数据加密防止SNMP消息在传输过程中被窃听2SNMPv3的体系结构2.1SNMPv3的框架结构SNMPv3实体的主要类型管理器(Manager):请求发送与响应接收代理(Agent):请求接收与响应发送代理服务器(Proxy):请求与响应转发SNMPv3实体的框架结构分配器模块消息处理模块安全模块访问控制模块SNMP引擎命令生成器应用程序命令接收器通告生成器通告接收器代理转发器其它SNMP实体SNMPv3实体的组成部分SNMP实体由一个SNMP引擎与多个应用程序构成SNMP引擎是SNMP实体的核心部分,负责提供各版本SNMP消息的处理功能,主要包括发送、接收、认证、加密与访问控制等应用程序是SNMP实体的上层部分,负责提供高层对SNMP消息的发送与接收功能SNMP引擎的组成部分分配器模块(DispatcherModel):负责SNMP消息的发送与接收消息处理模块(MessageProcessorModel):负责SNMP消息的分析与处理安全模块(SecurityModel):负责SNMP消息的认证与加密访问控制模块(AccessControlModel):负责MIB中对象的访问控制应用程序的主要类型(1)命令生成器(CommandGenerator):用于SNMP管理器,生成SNMPv1与SNMPv2普通请求,接收SNMPv1与SNMPv2响应命令接收器(CommandReceiver):用于SNMP代理,接收SNMPv1与SNMPv2普通请求,生成SNMPv1与SNMPv2响应应用程序的主要类型(2)通告生成器(InformGenerator):用于SNMP管理器或SNMP代理,为代理生成SNMPv1与SNMPv2告警请求与SNMPv2通告请求,接收SNMPv2通告响应通告接收器(InformReceiver):用于SNMP管理器,接收SNMPv1与SNMPv2告警请求与SNMPv2通告请求,生成SNMPv2通告响应代理转发器(ProxyForwarder):用于SNMP代理或代理服务器,转发接收的SNMP命令与响应SNMPv3管理器的基本结构PDU分配器消息分配器传输映射器SNMPv1模块SNMPv2C模块SNMPv2U模块SNMPv3模块消息处理模块基于用户的安全模型安全模块分配器模块其它安全模型SNMP引擎命令生成器通告生成器通告接收器应用程序SNMP管理器网络接口SNMPv3代理的基本结构PDU分配器消息分配器传输映射器SNMPv1模块SNMPv2C模块SNMPv2U模块SNMPv3模块消息处理模块基于用户的安全模型安全模块分配器模块其它安全模型SNMP引擎命令接收器通告生成器应用程序SNMP代理网络接口基于视图的访问控制模型访问控制模块其它访问控制模型MIB库代理转发器2.2SNMPv3的服务接口应用程序与SNMP引擎的分配器模块之间,以及SNMP引擎中的不同模块之间,通过服务接口(ServiceInterfere)进行通信服务接口由多个事先定义好的原语组成。每个原语包括固定的语法格式与数据元素,用于应用程序与不同模块之间实现某种功能SNMPv3协议的主要原语(1)原语名用途说明sendPdu生成来自应用程序的请求PDUreturnResponsePdu生成来自应用程序的响应PDUprocessPdu处理来自远程实体的请求PDUprocessResponsePdu处理来自远程实体的响应PDUregisterContextEngineID为应用程序注册处理的PDUunregisterContextEngineID为应用程序解除注册处理的PDU分配器模块的原语SNMPv3协议的主要原语(2)消息处理模块与访问控制模块的原语原语名用途说明prepareOutgoingMessage为分配器模块准备发送的请求prepareResponseMessage为分配器模块准备发送的响应prepareDataElements从分配器模块接收消息中提取数据isAccessAllowed判断对管理对象访问操作是否合法SNMPv3协议的主要原语(3)安全模块的原语原语名用途说明generateRequestMsg为消息处理模块准备发送的请求generateResponseMsg为消息处理模块准备发送的响应processIncomingMsg处理消息处理模块的接收消息authenticateIncomingMsg使用认证算法认证发送消息authenticateOutgoingMsg使用认证算法认证接收消息encryptData使用加密算法加密数据decryptData使用解密算法解密数据2.3SNMPv3的应用程序命令生成器命令接收器通告生成器通告接收器代理转发器命令生成器的工作流程命令生成器分配器模块消息处理模块安全模块sendPduprepareOutgoingMsggenerateRequestMsgstatusInformationstatusInformationstatusInformation发送SNMP请求消息网络接口接收SNMP响应消息prepareDataElementsresultprocessIncomingMsgstatusInformationprocessResponsePdu命令接收器的工作流程命令接收器分配器模块消息处理模块安全模块RegisterContextEngineIDstatusInformation接收SNMP请求消息网络接口prepareDataElementsresultprocessIncomingMsgstatusInformationprocessPdureturnResponsePduprepareResponseMsgresultgenerateResponseMsgstatusInformation发送SNMP响应消息网络接口2.4SNMPv3的MIB结构SNMPv3MIB中新增加的组snmpFrameworkMIB:定义框架结构的管理对象snmpMDPMIB:定义消息处理模块的管理对象snmpTargetMIB、snmpNotificationMIB与snmpProxyMIB:定义应用程序的管理对象snmpUsmMIB:定义USM模型的管理对象snmpVacmMIB:定义VACM模型的管理对象SNMPv3的自定义类型SnmpSecurityModel:表示安全模型的整数SnmpMessageProcessingModel:表示消息处理模型的整数SnmpEngineID:表示SNMP引擎标识符的字符串SnmpSecurityLevel:表示安全级别的字符串SnmpAdminString:表示管理信息的字符串snmpFrameworkMIB组的基本结构snmpFrameworkMIB(snmpModules10)snmpAuthProtocols(snmpFrameworkAdmin1)snmpFrameworkAdmin(snmpFrameworkMIB1)snmpPrivProtocols(snmpFrameworkAdmin2)snmpEngine(snmpFrameworkMIBObjects1)snmpFrameworkMIBObjects(snmpFrameworkMIB2)snmpEngineID(snmpEngine1)snmpEngineBoots(snmpEngine2)snmpEngineTime(snmpEngine3)snmpEngineMaxMessageSize(snmpEngine4)snmpFrameworkMIBCompliances(snmpFrameworkMIBConformance1)snmpFrameworkMIBConformance(snmpFrameworkMIB3)snmpFrameworkMIBCompliance(snmpFrameworkMIBCompliances1)snmpFrameworkMIBGroups(snmpFrameworkMIBConformance2)snmpEngineGroup(snmpFrameworkMIBGroups1)3SNMPv3的安全模型3.1USM的基本概念SNMP消息的篡改与伪造,用户试图非法获得网络设备的配置信息,或非法对网络设备进行网管操作,这是SNMP面临的主要威胁SNMP消息的窃听、延迟、重发与重排序,用户试图获得SNMP消息的有用信息,或影响网络设备的正常使用,这是SNMP面临的次要威胁SNMPv3在安全方面的改进SNMPv1与SNMPv2采用基于团体的安全模型,无法解决上述的安全威胁针对SNMPv1与SNMPv2在安全方面的不足,SNMPv3提出基于用户的安全模型(USM,User-basedSecurityModel)RFC3414定义了SNMPv3的USM模型USM安全模型的基本结构认证模块加密模块时序模块USM模型消息处理模块其它模型其它模型其它模型……安全模块SNMP引擎分配器模块SNMPv3消息的基本结构版本全局头部PDU部分安全参数SNMPv3消息消息标识符消息最大长度安全模型上下文名数据部分标志上下文引擎标识符权威引擎启动次数权威引擎时间权威引擎标识符用户名认证参数加密参数SNMPv3消息分为4个部分:版本、全局头部、安全参数与PDU部分SNMPv3消息的主要字段(1)字段名数据类型用途说明msgVersionINTEGERSNMP协议版本msgIDINTEGER消息标识符msgMaxSizeINTEGER消息最大长度msgFlagOCTETSTRING标志位msgSecurityModelINTEGER安全模型msgAuthoriativeEngineIDSnmpEngineID权威引擎标识符msgAuthoriativeEngineBootsINTEGER权威引擎启动次数SNMPv3消息的主要字段(2)字段名数据类型用途说明msgAuthoriativeEngineTimeINTEGER权威引擎时间msgUserNameOCTETSTRING用户名msgAuthenticationParametersOCTETSTRING认证参数msgPrivacyParametersOCTETSTRING加密参数contextEngineIDSnmpEngineID上下文引擎标识符contextNameOCTETSTRING上下文名dataOCTETSTRING数据部分SNMPv3的安全