第七章 网管安全SNMPv3
SNMPv3的基本概念
SNMPv3协议可看作一个安全规范,它定义一种标准化的SNMP框架结构,为两种SNMPv1与SNMPv2消息提供各种安全功能
SNMPv3提供数据完整性保护和数据源发认证功能,并把该类安全服务作为其首要目标。此外,它还提供机密性和有限的传输流机密性保护,并且能够防止重放攻击。它把安全服务分为三个级别:
- 不认证不加密(NoAuthNOPriv,用1表示);
- 认证不加密(authNoPriv,用2表示);
- 认证且加密(authPriv,用3表示)。
SNMPv3的体系结构
SNMPv3没定义新的网管操作、消息类型与PDU结构,主要改进在于安全性
- 定义一种标准化的SNMP框架结构
- 为两种SNMPv1与SNMPv2消息提供各种安全功能
SNMPv3实体的主要类型
- 管理器(Manager):请求发送与响应接收
- 代理(Agent):请求接收与响应发送
- 代理服务器(Proxy):请求与响应转发
SNMP引擎与SNMP实体是一对一的关系,它包括消息发送与接收以及认证与加密功能,同时能够提供对被管对象的访问控制。每个SNMP引擎都有一个ID(snmpEngineID),处于同一管理域的每个引擎ID应该不同。
- 调度程序(Dispatcher Model):负责SNMP消息的发送与接收
- 消息处理模块(Message Processor Model):负责SNMP消息的分析与处理
- 安全模块(Security Model):负责SNMP消息的认证与加密
- 访问控制模块(Access Control Model):负责MIB中对象的访问控制
SNMPv3的消息及消息处理模型
消息:版本、首部、安全参数、ScopedPDU数据
- 首部:消息ID、最大长度、标志、安全模型
- 加密的PDU:二进制串
- 明文ScopedPDU:contextEngineID、contextName、数据
- PDU:请求ID、错误状态、错误索引、VBL
- VBL:变量1、变量1值、…、变量n、变量n值
SNMPv3定义了8种ScopedPDU:
- 读类:读管理信息,包括GetRequest-PDU、GetNextRequest-PDU以及CetBulkRequest-PDU;
- 写类:更改管理信息,即SetRequest-PDU;
- 响应类:对请求的响应,包括Response-PDU和Report-PDU
- 通知类:通知操作,包括SNMPv2-Trap-PDU和InformRequest-PDU;
- 内部类:用于SNMP引擎之间的通信,即Report-PDU。