snmp,简单网络管理协议,端口udp161。有三个版本:v1,v2,v3

  下面是找的的解释:

1.SNMPv1的安全机制
  SNMPv1仅仅提供了有限的安全性,即团体的概念。
  团体是一个在代理上定义的局部概念。一个代理可以定义若干个团体,每个团体使用唯一的团体名。而每个SNMP团体是一个在SNMP代理和多个SNMP管理者之间定义的认证、访问控制和转换代理的关系。
  在每条SNMPv1信息中都包括community字段,在该域中填入团体名,团体名起密码的作用。 SNMPv1假设,如果发送者知道这个密码,就认为该信息通过了认证,是可靠的。
  一条已通过认证的信息对MIB有何访问权限主要通过访问控制来实现。代理为每一个团体定义了一个SNMPv1团体框架文件,该框架文件包括两部分:
  ·MIB视域: MIB的一个对象子集,每个团体可以定义不同的MIB视域,一个视域中的对象集不必属于MIB的单个子树;
  ·SNMP访问模式:集合(只读、读写)的一个元素,每个团体只定义一个访问模式。
  SNMP团体和SNMP团体框架文件的结合就成为SNMPv1 访问策略。一个通过了认证的信息必然指定了一个团体,那么它就有自己相应的团体框架文件,且只能对该框架文件中MIB视域的指定对象进行规定的操作(只读或读写)。
 
2. SNMPv2的安全机制
  SNMPv2具有支持分布式网络管理,扩展数据类型,可以实现大量数据的同时传输,丰富故障处理能力,增加集合处理功能,加强数据定义语言等特点。
  此外, SNMPv2还引入了"上下文(context)"的概念。上下文是一个可被SNMPv2实体访问的被管理对象资源的集合,分为本地上下文和远程上下文:本地上下文被标识为一个MIB视域,远程上下文被标识为一个转换代理关系。
  使用了上下文的访问控制策略由以下4个元素组成:
  ·目标:SNMP参加者,它按主体方的请求执行管理操作;
  ·主体:SNMP参加者,它请求目标方执行管理操作;
  ·资源:管理操作在其上执行的管理信息,它可表示为一个本地MIB视域或一个代理关系,这一项被称为一个上下文;
  ·权限:对于一个特定的上下文可允许的操作,这些操作用可允许的协议数据单元定义,由目标代表主体执行。
  但是,SNMPv2并没有完全实现预期的目标,尤其是安全性能没有得到提高,如:身份验证(如用户初始接入时的身份验证、信息完整性的分析、重复操作的预防)、加密、授权和访问控制、适当的远程安全配置和管理能力等都没有实现。1996年发布的SNMPv2c是 SNMPv2的修改版本,虽然功能增强了,但是安全性能仍没有得到改善,而是继续使用SNMPv1的基于明文密钥的身份验证方式。
 
3.SNMPv3的安全机制
  IETF SNMPv3工作组于1998年1月提出了互联网建议RFC 2271~2275,正式形成SNMPv3。这一系列文件定义了包含SNMPv1,SNMPv2所有功能在内的体系框架及包含验证服务和加密服务在内的全新的安全机制,同时还规定了一套专门的网络安全和访问控制规则。可以说,SNMPv3是在SNMPv2基础之上增加了安全和管理机制。RFC 2271定义的SNMPv3体系结构体现了模块化的设计思想,可以简单地实现功能的增加和修改。其特点主要有:
  ·适应性强:适用于多种操作环境,既可以管理最简单的网络,实现基本的管理功能,又能够提供强大的网络管理功能,满足复杂网络的管理需求;
  ·扩充性好:可以根据需要增加模块;
  ·安全性好:具有多种安全处理模块。
  SNMPv3主要有3个模块:信息处理和控制模块、本地处理模块和用户安全模块。
  1 信息处理和控制模块
  信息处理和控制模块在RFC 2272中定义,负责信息的产生和分析,并判断信息在传输过程中是否要经过代理服务器等。
  2 本地处理模块
  本地处理模块的主要功能是进行访问控制,处理打包的数据和中断。访问控制是指通过设置代理的有关信息使不同管理站的管理进程在访问代理时具有不同的权限,在协议数据单元一级完成。常用的控制策略有两种:限定管理站可以向代理发出的命令或确定管理站可以访问代理MIB的具体部分。访问控制的策略必须预先设定。SNMPv3通过使用带有不同参数的原语来灵活确定访问控制方式。
  3 用户安全模块
  与SNMPv1和SNMPv2相比,SNMPv3增加了3个新的安全机制:身份验证,加密和访问控制。其中,访问控制功能由本地处理模块完成,而身份验证和数据保密服务则由用户安全模块提供。身份验证是指代理(管理站)接到信息时必须首先确认信息是否来自授权的管理站(代理),以及信息在传输过程中是否改变。这个功能的实现要求管理站和代理必须共享同一密钥。管理站使用密钥计算验证码(它是信息的函数),然后将其加入信息中,而代理则使用同一密钥从接收的信息中提取出验证码,从而得到信息。加密的过程与身份验证类似,也需要管理站和代理共享同一密钥来实现信息的加密和解密。
 

            注意:确保snmp代理使用相同的协议,因为每个代理都会直接抛弃与自己协议版本不相同的数据报

centos下用yum装net-snmp net-snmp-utils。配置文件在/etc/snmp/snmpd.conf

snmp协议_代理

1、首先是定义一个共同体名(community),这里定义的默认的public,及可以访问这个public的用户名(sec name)这里是notConfigUser。Public相当于用户notConfigUser的密码:),source定义允许访问的来源:default默认是本机,可以换成你需要的地址。   sec.name 、source、community、都可以自己定义

 

snmp协议_代理_02

2、这里是notConfigGroup,及组的安全级别,把notConfigUser个用户加到这个组中。
 

 

snmp协议_安全性_03

3、设置这个组notConfigGroup,的权限,把systemview改成all,只读

 

snmp协议_认证_04

4、定义一个可操作的范围(view)名这里是all,范围是 .1
 

配置完以后可以测试下:snmpwalk -v 2c -c public 192.168.4.12 system
 

 

snmpwalk语法:
snmpwalk 交换机或路由器IP地址 -c SNMP读密码 -v 1或2(代表SNMP版本) OID(对象标示符)

用法举例:
1、snmpwalk -c public -v 1 -m ALL 192.168.30.49 .1.3.6.1.2.1.25.1 得到取得windows端的系统进程用户数等

2、snmpwalk -c public -v 1 -m ALL 192.168.30.49 .1.3.6.1.2.1.25.2.2 取得系统总内存

3、snmpwalk -c public -v 1 -m ALL 192.168.30.49 hrSystemNumUsers

4、snmpwalk -c public -v 1 -m ALL 192.168.30.49 .1.3.6.1.2.1.4.20 取得IP信息

5、snmpwalk -v 2c -c public 192.168.30.49 system 查看系统信息

6、snmpwalk -v 1 192.168.30.49 -c public ifDescr
 

 

小技巧:snmpd -f -Le -Dread_config  命令来查看日志文件信息,排错。
 

                snmpd -f -Le     屏幕显示(net-snmpd的log文件中是同样内容)

有用的选项:

-c FILE 指定文件为配置文件
 -C不读取默认的配置文件
-d dump接收和发送SNMP数据包
-D TOKEN 对于给定的TOKEN(标志)打开调试信息 ( -Dmib_init)
-I [-]INITLIST 对于要初始化的MIB列表显示
-M DIRLIST 指定MIB库的路径
-V 显示详细信息
-Le 把错误信息输出到日志中
-Lf FILE 把错误信息输出到指定文件中
-m MIBLIST use MIBLIST instead of the default MIB list
 

源码安装:http://gsliuyang.blog.51cto.com/286500/108659