如何在Ubuntu ,CentOS和Cisco系统中配置SNMPv3 ?

简单网络管理协议(SNMP)是一种广泛使用的协议,用于收集设备内部正在进行中的信息。比如说,CPU和RAM的使用率,服务器的负载率,网络接口的流量状态,和的设备的很多其他性能都可以用SNMP来查询。

当前,SNMP有3个版本:v1, v2c and v3。SNMP v1和v2c,可方便地进行配置,这在以前的文章中讨论过。SNMPv3增加了一些额外的功能,包括身份验证和加密方案(例如,MD5,SHA,AES和DES)。这使得我们在Internet上运行SNMP查询时,SNMPv3的更安全,更可取的。

同SNMP v1或v2c 相比,SNMPv3的配置有一点不同。下面详细解释了配置是如何进行的。

Ubuntu和Debian配置SNMPv3

使用net-snmp-config tool工具进行配置。下面的例子中创建了一个只读权限的SNMPv3账户,用户名为“snmpv3user”密码为“snmpv3pass”。 默认身份验证方法是MD5加密,默认DES使用。这些设定也可根据需要改变。

root@server:~# apt-get install snmp snmpd
root@server:~# service snmpd stop
root@server:~# net-snmp-config --create-snmpv3-user -ro -A snmpv3pass snmpv3user

## OUTPUT ##

adding the following line to /var/lib/snmp/snmpd.conf:

createUser snmpv3user MD5 "snmpv3pass" DES

adding the following line to /usr/share/snmp/snmpd.conf:

rouser snmpv3user

root@server:~# service snmpd start

SNMPv3测试

使用snmpwalk测试SNMP的配置。成功的测试结果应当有大量的输出数据。下面的例子使用上文建立的V3账户演示了snmpwalk 的使用。Ubuntu和Debian的本地服务器IP地址192.168.1.1。

### SAMPLE OUTPUT ### iso.3.6.1.2.1.1.1.0 = STRING: "Linux server 3.5.0-23-generic #35~precise1-Ubuntu SMP Fri Jan 25 17:13:26 UTC 2013 x86_64" iso.3.6.1.2.1.1.2.0 = OID: iso.3.6.1.4.1.8072.3.2.10 iso.3.6.1.2.1.1.3.0 = Timeticks: (68028) 0:11:20.28 iso.3.6.1.2.1.1.7.0 = INTEGER: 72 iso.3.6.1.2.1.1.8.0 = Timeticks: (0) 0:00:00.00 iso.3.6.1.2.1.1.9.1.2.1 = OID: iso.3.6.1.6.3.10.3.1.1 iso.3.6.1.2.1.1.9.1.2.2 = OID: iso.3.6.1.6.3.11.3.1.1 iso.3.6.1.2.1.1.9.1.2.3 = OID: iso.3.6.1.6.3.15.2.1.1 iso.3.6.1.2.1.1.9.1.2.4 = OID: iso.3.6.1.6.3.1 iso.3.6.1.2.1.1.9.1.2.5 = OID: iso.3.6.1.2.1.49 iso.3.6.1.2.1.1.9.1.2.6 = OID: iso.3.6.1.2.1.4 iso.3.6.1.2.1.1.9.1.2.7 = OID: iso.3.6.1.2.1.50 iso.3.6.1.2.1.1.9.1.2.8 = OID: iso.3.6.1.6.3.16.2.2.1 iso.3.6.1.2.1.1.9.1.3.1 = STRING: "The SNMP Management Architecture MIB." iso.3.6.1.2.1.1.9.1.3.2 = STRING: "The MIB for Message Processing and Dispatching." iso.3.6.1.2.1.1.9.1.3.3 = STRING: "The management information definitions for the SNMP User-based Security Model." iso.3.6.1.2.1.1.9.1.3.4 = STRING: "The MIB module for SNMPv2 entities" iso.3.6.1.2.1.1.9.1.3.5 = STRING: "The MIB module for managing TCP implementations" iso.3.6.1.2.1.1.9.1.3.6 = STRING: "The MIB module for managing IP and ICMP implementations" iso.3.6.1.2.1.1.9.1.3.7 = STRING: "The MIB module for managing UDP implementations" iso.3.6.1.2.1.1.9.1.3.8 = STRING: "View-based Access Control Model for SNMP." iso.3.6.1.2.1.1.9.1.4.1 = Timeticks: (0) 0:00:00.00 iso.3.6.1.2.1.1.9.1.4.2 = Timeticks: (0) 0:00:00.00 iso.3.6.1.2.1.1.9.1.4.3 = Timeticks: (0) 0:00:00.00 iso.3.6.1.2.1.1.9.1.4.4 = Timeticks: (0) 0:00:00.00 iso.3.6.1.2.1.1.9.1.4.5 = Timeticks: (0) 0:00:00.00 ### And the walk goes on and on ###

删除SNMPv3账户

当net-snmp-config tool 运行过程中,该账户的有关信息会存储在var/lib/snmp/snmpd.conf 和/usr/share/snmp/snmpd.conf.两个文件之中。删除账户即删除这个文件中的信息即可。

root@server:~# service snmpd stop
root@server:~# vim /var/lib/snmp/snmpd.conf

## there should be a similar encrypted line that contains information on the user ## ## this line is removed ## usmUser 1 3 0x80001f8880056e06573a1e895100000000 0x736e6d7076337573657200 0x736e6d7076337573657200 NULL .1.3.6.1.6.3.10.1.1.2 0x945ed3c9708ea5493f53f953b45a4513 .1.3.6.1.6.3.10.1.2.2 0x945ed3c9708ea5493f53f953b45a4513 ""

root@server:~# vim /usr/share/snmp/snmpd.conf

## The following line is removed ##   rouser snmpv3user

之后不要忘记重启snmpd

root@server:~# service snmpd start

CentOS或者RHEL中配置SNMPv3

相比Ubuntu,在 CentOS 和 RHEL中配置SNMP v3用户的过程有点不同,但基本是相同的。

首先,使用yum安装必要的软件

[root@server ~]# yum install net-snmp-utils net-snmp-devel

安装完成之后, 先停止snmpd,再创建具有只读属性的SNMP 账户。 .

[root@server ~]# service snmpd stop

[root@server ~]# net-snmp-create-v3-user -ro -A snmpv3pass -a MD5 -x DES snmpv3user

## OUTPUT ##

adding the following line to /var/lib/net-snmp/snmpd.conf:

createUser snmpv3user MD5 "snmpv3pass" DES

adding the following line to /etc/snmp/snmpd.conf:

rouser snmpv3user

[root@server ~]# service snmpd start

SNMPv3测试

snmpwalk 是测试SNMP配置和输出出色的工具。成功的测试结果应当有大量的输出数据。

[root@server ~]# snmpwalk -u snmpv3user -A snmpv3pass -a MD5 -l authnoPriv 192.168.1.2 -v3

### OUTPUT ###

SNMPv2-MIB::sysDescr.0 = STRING: Linux server.example.tst 2.6.32-71.el6.i686 #1 SMP Fri Nov 12 04:17:17 GMT 2010 i686

SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10

DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (28963) 0:04:49.63

SNMPv2-MIB::sysORLastChange.0 = Timeticks: (1) 0:00:00.01

SNMPv2-MIB::sysORID.1 = OID: SNMP-MPD-MIB::snmpMPDMIBObjects.3.1.1

SNMPv2-MIB::sysORID.2 = OID: SNMP-USER-BASED-SM-MIB::usmMIBCompliance

SNMPv2-MIB::sysORID.3 = OID: SNMP-FRAMEWORK-MIB::snmpFrameworkMIBCompliance

SNMPv2-MIB::sysORID.4 = OID: SNMPv2-MIB::snmpMIB

SNMPv2-MIB::sysORID.5 = OID: TCP-MIB::tcpMIB

SNMPv2-MIB::sysORID.6 = OID: IP-MIB::ip

SNMPv2-MIB::sysORID.7 = OID: UDP-MIB::udpMIB

SNMPv2-MIB::sysORID.8 = OID: SNMP-VIEW-BASED-ACM-MIB::vacmBasicGroup

SNMPv2-MIB::sysORDescr.1 = STRING: The MIB for Message Processing and Dispatching.

SNMPv2-MIB::sysORDescr.2 = STRING: The MIB for Message Processing and Dispatching.

SNMPv2-MIB::sysORDescr.3 = STRING: The SNMP Management Architecture MIB.

SNMPv2-MIB::sysORDescr.4 = STRING: The MIB module for SNMPv2 entities

SNMPv2-MIB::sysORDescr.5 = STRING: The MIB module for managing TCP implementation

## and the output continues ##

删除SNMPv3账户

SNMPv3 账户信息被包含在两个文件之中。删除账户即删除这个文件中的信息即可。

root@server:~# service snmpd stop

root@server:~# vim /var/lib/net-snmp/snmpd.conf

## there should be a similar encrypted line that contains information on the user ##

## this line is removed ##

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/16806.html