簡單網(wǎng)絡(luò)管理協(xié)議(SNMP)是用于IP網(wǎng)絡(luò)設(shè)備管理的標準協(xié)議。典型的支持SNMP協(xié)議的設(shè)備有路由器、交換機、服務(wù)器、工作站、打印機及數(shù)據(jù)機柜等等。SNMP一般被網(wǎng)絡(luò)管理系統(tǒng)用于按照管理員設(shè)定的條件來監(jiān)視網(wǎng)絡(luò)附加設(shè)備。SNMP是因特網(wǎng)協(xié)議套件中的一個組成部分,它由IETF機構(gòu)定義。它包含一系列的網(wǎng)絡(luò)管理標準,其中有一個應(yīng)用層協(xié)議,一個數(shù)據(jù)庫架構(gòu)以及一組數(shù)據(jù)對象。
SNMP將管理數(shù)據(jù)以變量的形式展示出來,這些變量描述了系統(tǒng)配置。同時這些變量可以被用于管理的應(yīng)用查詢(或者被設(shè)置)。

為什么需要使用SNMPv3
盡管SNMPv3所增加的加密功能并不影響協(xié)議層面,但是新的文本慣例、概念及術(shù)語使得它看起來很不一樣。
SNMPv3在SNMP的基礎(chǔ)之上增強了安全性以及遠程配置功能。
最初,SNMP最大的缺點就是安全性弱。SNMP的第一與第二個版本中,身份驗證僅僅是在管理員與代理間傳送一個明文的密碼而已。目前每一個SNMPv3的信息都包含了被編碼成8進制的安全參數(shù)。這些安全參數(shù)的具體意義由所選用的安全模型決定。
SNMPv3提供了重要的安全特性:
保密性 —— 加密數(shù)據(jù)包以防止未經(jīng)授權(quán)的源監(jiān)聽。
完整性 —— 數(shù)據(jù)的完整性特性確保數(shù)據(jù)在傳輸?shù)臅r候沒有被干擾,并且包含了可選的數(shù)據(jù)響應(yīng)保護機制。
身份驗證 —— 檢查數(shù)據(jù)是否來自一個合法的源。
在ubuntu中安裝SNMP服務(wù)器及客戶端
打開終端運行下列命令
sudo apt-get install snmpd snmp
安裝完成后需要做如下改變。
配置SNMPv3
獲得從外部守護進程訪問的權(quán)限
默認的安裝僅提供本地的訪問權(quán)限,如果想要獲得外部訪問權(quán)限,打開文件 /etc/default/snmpd。
sudo vi /etc/default/snmpd
改變下列內(nèi)容
將
SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -g snmp -I -smux,mteTrigger,mteTriggerConf -p /var/run/snmpd.pid'
改為
SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid -c /etc/snmp/snmpd.conf'
最后重啟 snmpd
sudo /etc/init.d/snmpd restart
定義 SNMPv3 用戶,身份驗證以及加密參數(shù)
“securityLevel”參數(shù)使得SNMPv3有多種不同的用途。
noAuthNoPriv —— 沒有授權(quán),加密以及任何安全保護!
authNoPriv —— 需要身份認證,但是不對通過網(wǎng)絡(luò)發(fā)送的數(shù)據(jù)進行加密。
autoPriv —— 最可靠模式。需要身份認證而且數(shù)據(jù)會被加密。
snmpd 的配置以及設(shè)置都保存在文件 /etc/snmp/snmpd.conf。使用編輯器編輯文件:
sudo vi /etc/snmp/snmpd.conf
在文件末尾添加以下內(nèi)容:
#createUser user1createUser user2 MD5 user2passwordcreateUser user3 MD5 user3password DES user3encryption#rouser user1 noauth 1.3.6.1.2.1.1rouser user2 auth 1.3.6.1.2.1rwuser user3 priv 1.3.6.1.2.1
注:如果你需要使用自己的用戶名/密碼對的話,請注意密碼及加密短語的最小長度是8個字符。
同時,你需要做如下的配置以便snmp可以監(jiān)聽來自任何接口的連接請求。
將
#agentAddress udp:161,udp6:[::1]:161
改為
agentAddress udp:161,udp6:[::1]:161
保存改變后的snmpd.conf文件并且重啟守護進程:
sudo /etc/init.d/snmpd restart