SNMP的前身是簡(jiǎn)單網(wǎng)關(guān)監(jiān)控協(xié)議(SGMP),用來(lái)對(duì)通信線路進(jìn)行管理。隨后,人們對(duì)SGMP進(jìn)行了很大的修改,特別是加入了符合Internet定義
的SMI和MIB體系結(jié)構(gòu),改進(jìn)后的協(xié)議就是著名的SNMP。SNMP的目標(biāo)是管理互聯(lián)網(wǎng)Internet上眾多廠家生產(chǎn)的軟硬件平臺(tái),因此SNMP受
Internet標(biāo)準(zhǔn)網(wǎng)絡(luò)管理框架的影響也很大,F(xiàn)在SNMP已經(jīng)出到第三個(gè)版本的協(xié)議,其功能較以前已經(jīng)大大地加強(qiáng)和改進(jìn)了。
SNMP的體系結(jié)構(gòu)是圍繞著以下四個(gè)概念和目標(biāo)進(jìn)行設(shè)計(jì)的:保
持管理代理(agent)的軟件成本盡可能低;最大限度地保持遠(yuǎn)程管理的功能,以便充分利用Internet的網(wǎng)絡(luò)資源;體系結(jié)構(gòu)必須有擴(kuò)充的余地;保持
SNM的獨(dú)立性,不依賴于具體的計(jì)算機(jī)、網(wǎng)關(guān)和網(wǎng)絡(luò)傳輸協(xié)議。在最近的改進(jìn)中,又加入了保證SNMP體系本身安全性的目標(biāo)。SNMP開(kāi)發(fā)于九十年代早期,其目的是簡(jiǎn)化大型網(wǎng)絡(luò)中設(shè)備的管理和數(shù)據(jù)的獲取。許多與網(wǎng)絡(luò)有關(guān)的軟件包,如HP的OpenView和Nortel Networks的Optivity Network Management System,還有MultiRouter Traffic Grapher(MRTG)之類的免費(fèi)軟件,都用SNMP服務(wù)來(lái)簡(jiǎn)化網(wǎng)絡(luò)的管理和維護(hù)。 由于SNMP的效果實(shí)在太好了,所以網(wǎng)絡(luò)硬件廠商開(kāi)始把SNMP加入到它們制造的每一臺(tái)設(shè)備。今天,各種網(wǎng)絡(luò)設(shè)備上都可以看到默認(rèn)啟用的SNMP服務(wù),從交換機(jī)到路由器,從防火墻到網(wǎng)絡(luò)打印機(jī),無(wú)一例外。
SNMP是目前最常用的環(huán)境管理協(xié)議。SNMP被設(shè)計(jì)成與協(xié)議無(wú)關(guān),所以它可以在IP,IPX,AppleTalk,OSI以及其他用到的傳輸協(xié)議上被使用。SNMP是一系列協(xié)議組和規(guī)范,它們提供了一種從網(wǎng)絡(luò)上的設(shè)備中收集網(wǎng)絡(luò)管理信息的方法。SNMP也為設(shè)備向網(wǎng)絡(luò)管理工作站報(bào)告問(wèn)題和錯(cuò)誤提供了一種方法。 目前,幾乎所有的網(wǎng)絡(luò)設(shè)備生產(chǎn)廠家都實(shí)現(xiàn)了對(duì)SNMP的支持。領(lǐng)導(dǎo)潮流的SNMP是一個(gè)從網(wǎng)絡(luò)上的設(shè)備收集管理信息的公用通信協(xié)議。設(shè)備的管理者收集這些信息并記錄在管理信息庫(kù)(MIB)中。這些信息報(bào)告設(shè)備的特性、數(shù)據(jù)吞吐量、通信超載和錯(cuò)誤等。MIB有公共的格式,所以來(lái)自多個(gè)廠商的SNMP管理工具可以收集MIB信息,在管理控制臺(tái)上呈現(xiàn)給系統(tǒng)管理員。
通過(guò)將SNMP嵌入數(shù)據(jù)通信設(shè)備,如路由器、交換機(jī)或集線器中,就可以從一個(gè)中心站管理這些設(shè)備,并以圖形方式查看信息。目前可獲取的很多管理應(yīng)用程序通
常可在大多數(shù)當(dāng)前使用的操作系統(tǒng)下運(yùn)行,如Windows95、Windows98、WindowsNT和不同版本UNIX的等。 一個(gè)被管理的設(shè)備有一個(gè)管理代理Agent,它負(fù)責(zé)向管理站請(qǐng)求信息和動(dòng)作,代理還可以借助于陷阱為管理站提供站動(dòng)提供的信息,因此,一些關(guān)鍵的網(wǎng)絡(luò)設(shè)備(如集線器、路由器、交換機(jī)等)提供這一管理代理,又稱SNMP代理,以便通過(guò)SNMP管理站進(jìn)行管理。 僅僅是分布廣泛還不足以造成威脅,問(wèn)題是許多廠商安裝的SNMP都采用了默認(rèn)的通信字符串(例如密碼),這些通信字符串是程序獲取設(shè)備信息和修改配置必不可少的。采用默認(rèn)通信字符串的好處是網(wǎng)絡(luò)上的軟件可以直接訪問(wèn)設(shè)備,無(wú)需經(jīng)過(guò)復(fù)雜的配置。
通信字符串主要包含兩類命令:GET命令,SET命令。GET命令從設(shè)備讀取數(shù)據(jù),這些數(shù)據(jù)通常是操作參數(shù),例如連接狀態(tài)、接口名稱等。SET命令允許設(shè)置設(shè)備的某些參數(shù),這類功能一般有限制,例如關(guān)閉某個(gè)網(wǎng)絡(luò)接口、修改路由器參數(shù)等功能。但很顯然,GET、SET命令都可能被用于拒絕服務(wù)攻擊(DoS)和惡意修改網(wǎng)絡(luò)參數(shù)。
最常見(jiàn)的默認(rèn)通信字符串是public(只讀)和private(讀/寫),除此之外還有許多廠商私有的默認(rèn)通信字符串。幾乎所有運(yùn)行SNMP的網(wǎng)絡(luò)設(shè)備上,都可以找到某種形式的默認(rèn)通信字符串。
SNMP 2.0和SNMP 1.0的安全機(jī)制比較脆弱,通信不加密,所有通信字符串和數(shù)據(jù)都以明文形式發(fā)送。攻擊者一旦捕獲了網(wǎng)絡(luò)通信,就可以利用各種嗅探工具直接獲取通信字符串,即使用戶改變了通信字符串的默認(rèn)值也無(wú)濟(jì)于事。
近幾年才出現(xiàn)的SNMP 3.0解決了一部分問(wèn)題。為保護(hù)通信字符串,SNMP 3.0使用DES(DataEncryption
Standard)算法加密數(shù)據(jù)通信;另外,SNMP 3.0還能夠用MD5和SHA(Secure
HashAlgorithm)技術(shù)驗(yàn)證節(jié)點(diǎn)的標(biāo)識(shí)符,從而防止攻擊者冒充管理節(jié)點(diǎn)的身份操作網(wǎng)絡(luò)。
雖然SNMP 3.0出現(xiàn)已經(jīng)有一段時(shí)間了,但目前還沒(méi)有廣泛應(yīng)用。如果設(shè)備是2、3年前的產(chǎn)品,很可能根本不支持SNMP3.0;甚至有些較新的設(shè)備也只有SNMP 2.0或SNMP1.0。
目前,幾乎所有的網(wǎng)絡(luò)設(shè)備生產(chǎn)廠家都實(shí)現(xiàn)了對(duì)SNMP的支持。領(lǐng)導(dǎo)潮流的SNMP是一個(gè)從網(wǎng)絡(luò)上的設(shè)備收集管理信息的公用通信協(xié)議。設(shè)備的管理者收集這些
信息并記錄在管理信息庫(kù)(MIB)中。這些信息報(bào)告設(shè)備的特性、數(shù)據(jù)吞吐量、通信超載和錯(cuò)誤等。MIB有公共的格式,所以來(lái)自多個(gè)廠商的SNMP管理工具
可以收集MIB信息,在管理控制臺(tái)上呈現(xiàn)給系統(tǒng)管理員。
|