歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux教程

如何在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 ##

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 /etc/snmp/snmpd.conf

## The following line is removed ##

  rouser snmpv3user

root@server:~# service snmpd start

防火牆調節(可選)

下面的例子中的防火牆規則可以被用於限制被允許進行SNMP查詢的源IP地址。兩個IP地址(例如,192.168.1.100/101)被置於白名單中。

root@server:~# iptables -A INPUT -s 192.168.1.100/32 -p udp –dport 161 -j ACCEPT
root@server:~# iptables -A INPUT -s 192.168.1.101/32 -p udp –dport 161 -j ACCEPT
root@server:~# iptables -A INPUT -p udp –dport 161 -j DROP

思科交換機和路由器配置SNMPv3

思科交換機和路由器同樣支持SNMPv3。下面的例子將創建一個訪問控制列表(ACL)限制允許做SNMP查詢的源IP地址。但是,這步被跳過了。

設置訪問控制列表(ACL)(可選)

## global config mode ##
ip access-list standard SNMP_ACL
permit 192.168.1.100
permit 192.168.1.100

SNMPv3 配置

下面的配置創建一個名為v3Group與認證AuthNoPriv安全級別v3的組。前面定義的可選訪問列表也支持設定。

## global config mode ##
## With ACL ##
snmp-server group v3Group v3 auth access SNMP_ACL
 
## Without ACL ##
snmp-server group v3Group v3 auth

用戶v3user被創建並添加在v3Group下。 MD5的密碼和AES加密密鑰也被定義。

snmp-server user v3user v3Group v3 auth md5 snmpv3pass priv aes 128 snmpv3pass

SNMPv3測試

SNMP用戶和相關組可以在Cisco設備中查看

### privileged EXEC mode ##
show snmp user

User name: v3user

Engine ID: ************************

storage-type: nonvolatile        active

Authentication Protocol: MD5

Privacy Protocol: AES128

Group-name:  v3Group

任何Linux設備中的snmpwalk的都可以用來驗證配置和檢查輸出。

snmpwalk -u snmpv3user -A snmpv3pass -a MD5 -l authnoPriv 192.168.1.3 -v3

iso.3.6.1.2.1.1.1.0 = STRING: "Cisco IOS Software”

Technical Support: http://www.cisco.com/techsupport

Copyright (c) 1986-2012 by Cisco Systems, Inc.

iso.3.6.1.2.1.1.2.0 = OID: iso.3.6.1.4.1.9.1.1166

iso.3.6.1.2.1.1.7.0 = INTEGER: 78

iso.3.6.1.2.1.1.8.0 = Timeticks: (0) 0:00:00.00

iso.3.6.1.2.1.2.1.0 = INTEGER: 54

iso.3.6.1.2.1.2.2.1.1.1 = INTEGER: 1

iso.3.6.1.2.1.2.2.1.1.2 = INTEGER: 2

iso.3.6.1.2.1.2.2.1.1.3 = INTEGER: 3

## output truncated ##

希望以上的教程對大家有所幫助。

在Ubuntu 14.04上配置SNMPv3  http://www.linuxidc.com/Linux/2014-10/108511.htm

SNMP實現網絡動態分析 http://www.linuxidc.com/Linux/2013-04/83514.htm

SNMP實現網絡狀態監控 http://www.linuxidc.com/Linux/2013-04/83187.htm

CentOS 6.3下搭建SNMP測試環境 http://www.linuxidc.com/Linux/2013-02/79233.htm

Linux (Ubuntu/CentOS) SNMP配置 http://www.linuxidc.com/Linux/2012-12/76837.htm

開啟並配置Citrix Xenserver的SNMP服務 http://www.linuxidc.com/Linux/2013-01/78487.htm

更多Ubuntu相關信息見Ubuntu 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=2

作者:zaixianliyun 想了解作者請訪問linux公社

Linux公社原創翻譯頻道:http://www.linuxidc.com/topicnews.aspx?tid=15

Copyright © Linux教程網 All Rights Reserved