SNMP协议分析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SNMP协议分析
摘要:当今由路由器、交换机、服务器组成的复杂的网络,确保所有的设备正常运行且处于最佳状态确实是一件困难的事情。为了解决这个问题在1988年正式推出了简单网络管理协议(SNMP)。利用SNMP只需一些“简单”的操作便可实现对网络设备的远程管理。但同时SNMP是威胁安全的十大首要因素之一。
目录:
1SNMP简介 (2)
1.1SNMP版本 (2)
1.2管理端和agent (2)
1.3SNMP 和UDP (2)
2管理对象 (3)
2.1SMI和MIB (3)
2.2OID命名 (3)
2.3管理信息结构 (4)
3SNMP 操作 (5)
4SNMP V3 (5)
4.1SNMPv3的变化 (6)
4.2SNMPv3引擎 (6)
4.3SNMPv3 应用程序 (6)
4.4SNMPv3 安全机制 (6)
5SNMP受到的安全威胁 (7)
5.1拒绝服务攻击DOS (7)
5.2流量分析攻击 (8)
5.3认证机制漏洞 (8)
1SNMP简介
SNMP可以用于管理很多类型的设备,其核心是帮助网络管理员简化对一些
支持SNMP设备设置的操作(也包括这些信息的收集)。例如,使用SNMP可以关闭路由器的一个端口,也可以查看以太网端口的工作速率。SNMP还可以监控交换机的温度,在出现过高现象进行报警。
1.1SNMP版本
IETF负责定义互联网流量监管的标准,这里面包括SNMP。IETF发行的RFCs,对IP领域中的众多协议进行了详细的阐述。下面列举了一些当前的SNMP版本。1)SNMP V1是SNMP协议的最初版本,不过依然是众多厂家实现SNMP基本方式。2)SNMP V2通常被指是基于community的SNMP V2。Community实质上就是密码。3)SNMPv3 是最新版本的SNMP。它对网络管理最大的贡献在于其安全性。增加了对认证和密文传输的支持。
1.2管理端和agent
SNMP有2个主体:管理端和agent。
管理端指的是运行了可以执行网络管理任务软件的服务器,通常被称作为网络管理工作站(NMS),NMS负责采样网络中agent的信息,并接受agent的trap。
Agent是运行在可网络设备上的软件。可以是一个独立的程序(在Unix中叫守护进程),也可以是已经整合到操作系统中(比如:锐捷路由器的RGNOS,或者UPS中的底层操作系统)。
NMS和Agent工作示意图
1.3SNMP 和UDP
SNMP采用UDP协议在管理端和agent之间传输信息。 SNMP采用UDP 161
端口接收和发送请求,162端口接收trap,执行SNMP的设备缺省都必须采用这些端口。
SNMP的TCP/IP通信模型
2管理对象
2.1SMI和MIB
基本管理信息(MIB)可以理解成为agent维护的管理对象数据库,MIB中定义的大部分管理对象的状态和统计信息都可以被NMS访问。MIB是一个按照层次结构组织的树状结构,每个被管对象对应树形结构的一个叶子节点,称为一个object,拥有唯一的数字标识符。
SMIv1(RFC1155定义)对管理对象是如何命名的、管理对象的数据类型进行了详细的描述。规定MIB中对象的命名方式、数据类型、编码和传输方式,是定义MIB必须遵循的标准。
2.2OID命名
每个管理对象都有自己的OID(Object Identifier),管理对象通过树状结构进行组织,OID由树上的一系列整数组成,整数之间用点( . )分隔开,树的叶子节点才是真正能够被管理的对象。
SMI对象树
2.3管理信息结构
SNMP中,数据类型并不多。SMIv1定了多种对于网络设备来说非常重的数据类型,这些数据定义了管理对象包含哪些信息。
SMIv1支持的常见的数据类型。
数据类型描述
INTEGER 32位的数字,指定某个可以数字表示的管理对象内容。例如路由器接口的状态可能是up、down、或者test,用数据的方式表示,1表示up,2表示down,3表示testing,根据RFC1153种提到的,0不能用作数值类型。
OCTET STRING 表示文本字符串,0个或者更多的字节。经常被用作表示无力地址
Counter 32位数字,0~232- 1 (4,294,967,295). 当达到最大值后,又从0开始计数。一般用于端口上发送/接收的字节数,或者端口上看到的错误数、丢弃数。计数值是一直往上增长的。当agent重启,所有的计数清0。
OBJECT IDENTIFIER 跟有点的十进制值组成的符号,代表对象树上的某个管理对性。例如1.3.6.1.4.1.4881 代表锐捷网络private enterprise OID.
IpAddress 代表32位的IPv4地址.SMIv1和SMIv2都没有对128位的IPv6地址的描述。
NetworkAddress
类似于IP地址类型,但可以代表不同的网络地址类型
TimeTicks 在 0 ~~ 232- 1之间的32位数值 (4,294,967,295).以0.01秒的粒度计算TimeTicks。设备的Uptime就是TimeTicks 类型
Opaque
允许其他所有的ASN.1编码到一个8位字符中
3SNMP 操作
已经讨论了SNMP是如何组织信息的,PDU是管理端和agent用于发送和接收这些管理信息的消息。
SNMP报文格式
以下是几种常见的SNMP操作。
get-request操作:从代理进程处提取一个或多个参数值
get-next-request操作:从代理进程处提取紧跟当前参数值的下一个数值。
set-request操作:设置代理进程的一个或多个参数值
get-response 操作:返回的一个或多个参数值。这个操作是由代理进程发出的,它是前面三种操作的响应操作。
trap操作:代理进程主动发出的报文,通知管理进程有某些事情发生。
4SNMP V3
SNMPv3是为了解决SNMPv1和SNMPv2的安全问题而推出的,SNMPv3支持SNMPv1和SNMPv2的所有操作。