匿名
未登录
登录
Linux78|wiki
搜索
查看“SNMPv3”的源代码
来自Linux78|wiki
名字空间
页面
讨论
更多
更多
页面选项
查看
查看源代码
历史
←
SNMPv3
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
wiki:用户|用户
您可以查看与复制此页面的源代码。
=== SNMPv3报文结构 === SNMPv3定义了新的报文格式,其报文结构如图1-6所示。 [[文件:Snmp-6.png|有框|居中]] SNMP报文中的主要字段定义如下: *版本:表示SNMP的版本,SNMPv3报文则对应字段值为2。 *报头数据:主要包含消息发送者所能支持的最大消息尺寸、消息采用的安全模式等描述内容。 *安全参数:包含SNMP实体引擎的相关信息、用户名、认证参数、加密参数等安全信息。 *Context EngineID:SNMP唯一标识符,和PDU类型一起决定应该发往哪个应用程序。 *Context Name:用于确定Context EngineID对被管理设备的MIB视图。 *SNMPv3 PDU:包含PDU类型、请求标识符、变量绑定列表等信息。其中SNMPv3 PDU包括GetRequest PDU、GetNextRequest PDU、SetRequest PDU、Response PDU、Trap PDU、GetBulkRequest *PDU和InformRequest PDU。 === SNMPv3的体系结构 === SNMPv3提出了一个新的SNMP体系结构,这个体系结构为各种基于SNMP的NMS提供了一个通用的实现模型,即SNMPv3实体。SNMPv3实体可以分为SNMPv3引擎(SNMPv3 Engine)和SNMPv3应用程序(SNMPv3 Application),引擎与应用程序均由多个小模块组成。 SNMPv3实体这种模块化的结构有以下优点: *适应性强:适用于多种操作环境,既可以管理最简单的网络,又能够满足复杂网络的管理需求。 *方便管理:SNMP框架体系由多个功能相对独立的子系统或应用程序集合而成,因而可以很方便地对其进行管理。例如,若系统发生了故障,可以根据发生故障的功能类型,定位到相应的子系统。 *扩展性好:通过SNMP实体,可以很方便地进行系统扩展。比如,为了应用新的安全协议,就可以在安全子系统中为其定义单独的模块,从而在SNMP中支持该协议。 SNMPv3由于采用了用户安全模块USM(User-based Security Model)和基于视图的访问控制模块VACM(View-based Access Control Model),在安全性上得到了提升。 USM:提供身份验证和数据加密服务。实现这个功能要求NMS和Agent必须共享同一密钥。 身份验证:身份验证是指Agent或NMS接到信息时首先必须确认信息是否来自有权限的NMS或Agent并且信息在传输过程中未被改变。RFC2104中定义了HMAC,这是一种使用安全哈希函数和密钥来产生信息验证码的有效工具,在互联网中得到了广泛的应用。SNMP使用的HMAC可以分为两种:HMAC-MD5-96和HMAC-SHA-96。前者的哈希函数是MD5,使用128位authKey作为输入。后者的哈希函数是SHA-1,使用160位authKey作为输入。 加密:加密算法实现主要通过对称密钥系统,它使用相同的密钥对数据进行加密和解密。加密的过程与身份验证类似,也需要管理站和代理共享同一密钥来实现信息的加密和解密。SNMP使用以下三种加密算法: DES:使用56bit的密钥对一个64bit的明文块进行加密。 3DES:使用三个56bit的DES密钥(共168bit密钥)对明文进行加密。 AES:使用128bit、192bit或256bit密钥长度的AES算法对明文进行加密。 这三个加密算法的安全性由高到低依次是:AES、3DES、DES,安全性高的加密算法实现机制复杂,运算速度慢。为充分保证设备安全,建议选择安全性更高的AES算法。 VACM:对用户组或者团体名实现基于视图的访问控制。用户必须首先配置一个视图,并指明权限。用户可以在配置用户或者用户组或者团体名的时候,加载这个视图达到限制读写操作、Inform或Trap的目的。 === SNMPv3的工作原理 === SNMPv3的实现原理和SNMPv1/SNMPv2c基本一致,唯一的区别是SNMPv3增加了身份验证和加密处理。下面以Get操作为例介绍下SNMPv3的工作原理。 假定NMS想要获取被管理设备MIB节点sysContact的值,使用认证加密方式,过程如图1-7所示: [[文件:Snmp-7.png|有框|居中]] NMS:向Agent发送不带安全参数的Get请求报文,向Agent获取Context EngineID、Context Name和安全参数(SNMP实体引擎的相关信息)。 Agent:响应NMS的请求,并向NMS反馈请求的参数。 NMS:再次向Agent发送Get请求报文,报文中各字段的设置如下: 版本:SNMPv3版本。 报头数据:指明采用认证、加密方式。 安全参数:NMS通过配置的算法计算出认证参数和加密参数。将这些参数和获取的安全参数填入相应字段。 PDU:将获取的Context EngineID和Context Name填入相应字段,PDU类型设置为Get,绑定变量填入MIB节点名sysContact,并使用已配置的加密算法对PDU进行加密。 Agent:首先对消息进行认证,认证通过后对PDU进行解密。解密成功后,Agent根据请求查询MIB中的sysContact节点,得到sysContact的值并将其封装到Response报文中的PDU,并对PDU进行加密,向NMS发送响应。如果查询不成功或认证、解密失败,Agent会向NMS发送出错响应。
返回至
SNMPv3
。
导航
导航
首页
最近更改
随机页面
栏目
Nginx
Kubernetes
Spring Cloud
Wiki工具
Wiki工具
特殊页面
页面工具
页面工具
用户页面工具
更多
链入页面
相关更改
页面信息
页面日志