snmp v3安装配置

2014年4月22日 发表评论 阅读评论

简单网络管理协议(SNMP)是常见的一种监控手段,目前snmp定义了三个版本的网络管理协议:SNMP v1,SNMP v2,SNMP v3。SNMP v1,v2有很多共同的特征,SNMP v3 在先前的版本地基础上增加了安全和远程配置能力 。为了解决不同版本的兼容性问题,RFC3584定义了共存策略。目前大多数厂商普遍支持的版本是SNMPv1和v2,但从安全鉴别机制来看,二者表现较差。而SNMPv3采用了新的SNMP扩展框架,安全性较好,所以比较推荐,这里从安装和配置块简单介绍下snmp的配置和使用。

一、snmp的安装

安装必备套件net-snmp net-snmp-devel net-snmp-utils 

net-snmp:提供了一个入口,使得监控服务器可以通过snmp协议从这个入口与被监控机器通信
net-snmp-devel: 是为了使用net-snmp-config, net-snmp-utils是为了使用snmpwalk
net-snmp-libs:  提供了运行需要的库文件
net-snmp-utils:  提供了一套工具,可以利用snmp协议进行通信,snmpget、snmpwalk命令都在该包中

在centos/redhat平台下通过如下命令安装:

#  yum -y install net-snmp net-snmp-devel net-snmp-utils

二、配置snmp v3认证

1、简单认证

配置前,先使用service snmpd stop命令停止snmpd服务。不停止进行服务时行配置时,会提示“Apparently at least one snmpd demon is already running.You must stop them in order to use this command.” 。使用如下命令配置:

[root@361way ~]# net-snmp-config --create-snmpv3-user -ro -a mypass -A MD5 myname
#以下是提示信息,表示会在下面两个配置文件中增加的内容
adding the following line to /var/lib/net-snmp/snmpd.conf:
   createUser myname MD5 "mypass" DES
adding the following line to /etc/snmp/snmpd.conf:
   rouser myname

注意:net-snmp-config命令中--create-snmpv3-user对应的参数 -a是密码,-A是密码加密方式,而用户名跟在最后面-ro表示只读用户组,可以采集信息,但是不能更改系统设置;在snmpwalk测试的时候,-a表示加密方式,-A是密码,所以这一点很重要,注意和前者的区别。

接着我们使用snmpwalk或者snmpget获取信息,命令如下,发现会有如下提示:

[root@361way ~]# snmpwalk -v3 -u myname -l auth -a MD5 -A mypass 127.0.0.1 if
No log handling enabled - turning on stderr logging
Error: passphrase chosen is below the length requirements of the USM (min=8).
snmpwalk:  (The supplied password length is too short.)
Error generating a key (Ku) from the supplied authentication pass phrase. 

这个提示告诉我们密码长度至少要有8位。我们将刚刚两个配置文件中对应的行先删除掉,再使用上面的命令,把mypass改为mypassword执行后,再获取下。

[root@361way ~]# snmpwalk -v3 -u myname -l auth -a MD5 -A mypassword 127.0.0.1 if
IF-MIB::ifIndex.1 = INTEGER: 1
IF-MIB::ifIndex.2 = INTEGER: 2
IF-MIB::ifIndex.3 = INTEGER: 3
IF-MIB::ifDescr.1 = STRING: lo
IF-MIB::ifDescr.2 = STRING: eth0
IF-MIB::ifDescr.3 = STRING: eth1
IF-MIB::ifType.1 = INTEGER: softwareLoopback(24)
IF-MIB::ifType.2 = INTEGER: ethernetCsmacd(6)
IF-MIB::ifType.3 = INTEGER: ethernetCsmacd(6)
IF-MIB::ifMtu.1 = INTEGER: 65536
IF-MIB::ifMtu.2 = INTEGER: 1500
IF-MIB::ifMtu.3 = INTEGER: 1500
IF-MIB::ifSpeed.1 = Gauge32: 10000000
………………省略

2、加密认证

加密认证(privpass)我们可以理解为二次认证的方式,这种更安全。如果要创建带privpass验证,而且这个privpass也可以选择不同于密码的加密方式,比如,我密码采用MD5加密,而privpass采用AES加密,增加破解难度,那么可以这样写:

net-snmp-config:
--create-snmpv3-user [-ro] [-a authpass] [-x privpass] [-X DES] [-A MD5|SHA] [username]

还是刚刚的例子,如果使用privpass加密认证的话,需要使有如下命令创建:

# net-snmp-config --create-snmpv3-user -ro -a mypassword -A MD5 -x myprivpass -X DES myname

通过snmpwalk获取时也需要指定:

# snmpwalk -v3 -u myname -l authPriv -a MD5 -A mypassword -x DES -X myprivpass 127.0.0.1 if

注:除此之外还有种不认证也不加密的连接方式。snmpv3共有三种安全级别:分别为noAuthNoPriv(不认证也不加密)、authNoPriv(认证但是不加密)、authPriv(既认证又加密)。这里我们提到的是后两种。

3、snmpwalk连接snmpv3与snmpv2的区别

snmpv2c/v1里我们一般会使用一个public串的概念去连接,具体如下:

-c COMMUNITY          set the community string

snmpwalk V3验证常用参数:

-v 1|2c|3             specifies SNMP version to use
-u USER-NAME          set security name (e.g. bert)
-l LEVEL              set security level (noAuthNoPriv|authNoPriv|authPriv)
-a PROTOCOL           set authentication protocol (MD5|SHA)
-A PASSPHRASE         set authentication protocol pass phrase
-x PROTOCOL           set privacy protocol (DES|AES)
-X PASSPHRASE         set privacy protocol pass phrase

4、iptables配置

snmp协议使用的udp161端口,所以在防火墙上需要开启161 udp的端口访问权限,如下:

# iptables -A INPUT -i eth0 -p udp -s x.x.x.x --dport 161 -j ACCEPT




本站的发展离不开您的资助,金额随意,欢迎来赏!

You can donate through PayPal.
My paypal id: itybku@139.com
Paypal page: https://www.paypal.me/361way

分类: Linux/unix/mac 标签: ,
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.