snmp v3安装配置
简单网络管理协议(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平台下通过如下命令安装:
1# 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.” 。使用如下命令配置:
1[root@361way ~]# net-snmp-config --create-snmpv3-user -ro -a mypass -A MD5 myname
2#以下是提示信息,表示会在下面两个配置文件中增加的内容
3adding the following line to /var/lib/net-snmp/snmpd.conf:
4 createUser myname MD5 "mypass" DES
5adding the following line to /etc/snmp/snmpd.conf:
6 rouser myname
注意:net-snmp-config命令中–create-snmpv3-user对应的参数 -a是密码,-A是密码加密方式,而用户名跟在最后面-ro表示只读用户组,可以采集信息,但是不能更改系统设置;在snmpwalk测试的时候,-a表示加密方式,-A是密码,所以这一点很重要,注意和前者的区别。
接着我们使用snmpwalk或者snmpget获取信息,命令如下,发现会有如下提示:
1[root@361way ~]# snmpwalk -v3 -u myname -l auth -a MD5 -A mypass 127.0.0.1 if
2No log handling enabled - turning on stderr logging
3Error: passphrase chosen is below the length requirements of the USM (min=8).
4snmpwalk: (The supplied password length is too short.)
5Error generating a key (Ku) from the supplied authentication pass phrase.
这个提示告诉我们密码长度至少要有8位。我们将刚刚两个配置文件中对应的行先删除掉,再使用上面的命令,把mypass改为mypassword执行后,再获取下。
1[root@361way ~]# snmpwalk -v3 -u myname -l auth -a MD5 -A mypassword 127.0.0.1 if
2IF-MIB::ifIndex.1 = INTEGER: 1
3IF-MIB::ifIndex.2 = INTEGER: 2
4IF-MIB::ifIndex.3 = INTEGER: 3
5IF-MIB::ifDescr.1 = STRING: lo
6IF-MIB::ifDescr.2 = STRING: eth0
7IF-MIB::ifDescr.3 = STRING: eth1
8IF-MIB::ifType.1 = INTEGER: softwareLoopback(24)
9IF-MIB::ifType.2 = INTEGER: ethernetCsmacd(6)
10IF-MIB::ifType.3 = INTEGER: ethernetCsmacd(6)
11IF-MIB::ifMtu.1 = INTEGER: 65536
12IF-MIB::ifMtu.2 = INTEGER: 1500
13IF-MIB::ifMtu.3 = INTEGER: 1500
14IF-MIB::ifSpeed.1 = Gauge32: 10000000
15………………省略
2、加密认证
加密认证(privpass)我们可以理解为二次认证的方式,这种更安全。如果要创建带privpass验证,而且这个privpass也可以选择不同于密码的加密方式,比如,我密码采用MD5加密,而privpass采用AES加密,增加破解难度,那么可以这样写:
1net-snmp-config:
2--create-snmpv3-user [-ro] [-a authpass] [-x privpass] [-X DES] [-A MD5|SHA] [username]
还是刚刚的例子,如果使用privpass加密认证的话,需要使有如下命令创建:
1# net-snmp-config --create-snmpv3-user -ro -a mypassword -A MD5 -x myprivpass -X DES myname
通过snmpwalk获取时也需要指定:
1# 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串的概念去连接,具体如下:
1-c COMMUNITY set the community string
snmpwalk V3验证常用参数:
1-v 1|2c|3 specifies SNMP version to use
2-u USER-NAME set security name (e.g. bert)
3-l LEVEL set security level (noAuthNoPriv|authNoPriv|authPriv)
4-a PROTOCOL set authentication protocol (MD5|SHA)
5-A PASSPHRASE set authentication protocol pass phrase
6-x PROTOCOL set privacy protocol (DES|AES)
7-X PASSPHRASE set privacy protocol pass phrase
4、iptables配置
snmp协议使用的udp161端口,所以在防火墙上需要开启161 udp的端口访问权限,如下:
1# iptables -A INPUT -i eth0 -p udp -s x.x.x.x --dport 161 -j ACCEPT
捐赠本站(Donate)
如您感觉文章有用,可扫码捐赠本站!(If the article useful, you can scan the QR code to donate))
- Author: shisekong
- Link: https://blog.361way.com/snmpv3-config/5125.html
- License: This work is under a 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议. Kindly fulfill the requirements of the aforementioned License when adapting or creating a derivative of this work.