網(wǎng)管必知的SNMP簡單網(wǎng)絡(luò)管理協(xié)議
在網(wǎng)絡(luò)協(xié)議中,我們現(xiàn)在通常都會使用SNMP簡單網(wǎng)絡(luò)管理協(xié)議。那么對于這個協(xié)議的一些基本情況我們就來簡單討論一下。首先還是對這個協(xié)議的基本概況做一下介紹。SNMP(Simple Network Management Protocol,簡單網(wǎng)絡(luò)管理協(xié)議)的前身是簡單網(wǎng)關(guān)監(jiān)控協(xié)議(SGMP),用來對通信線路進行管理。隨后,人們對SGMP進行了很大的修改,特別是加入了符合Internet定義的SMI和MIB:體系結(jié)構(gòu),改進后的協(xié)議就是著名的SNMP簡單網(wǎng)絡(luò)管理協(xié)議。SNMP的目標是管理互聯(lián)網(wǎng)Internet上眾多廠家生產(chǎn)的軟硬件平臺,因此SNMP簡單網(wǎng)絡(luò)管理協(xié)議受Internet標準網(wǎng)絡(luò)管理框架的影響也很大。現(xiàn)在SNMP已經(jīng)出到第三個版本的協(xié)議,其功能較以前已經(jīng)大大地加強和改進了。
基本簡介
SNMP的體系結(jié)構(gòu)是圍繞著以下四個概念和目標進行設(shè)計的:保持管理代理(agent)的軟件成本盡可能低;最大限度地保持遠程管理的功能,以便充分SNMP工作原理利用Internet的網(wǎng)絡(luò)資源;體系結(jié)構(gòu)必須有擴充的余地;保持SNMP的獨立性,不依賴于具體的計算機、網(wǎng)關(guān)和網(wǎng)絡(luò)傳輸協(xié)議。在最近的改進中,又加入了保證SNMP體系本身安全性的目標。
接入Internet的網(wǎng)絡(luò)面臨許多風險,Web服務器可能面臨攻擊,郵件服務器的安全也令人擔憂。但除 此之外,網(wǎng)絡(luò)上可能還存在一些隱性的漏洞。大多數(shù)網(wǎng)絡(luò)總有一些設(shè)備運行著SNMP服務,許多時候這些SNMP服務是不必要的,但卻沒有引起網(wǎng)絡(luò)管理員的重視。
根據(jù)SANS協(xié)會的報告,對于接入Internet的主機,SNMP是威脅安全的十大首要因素之一;同時,SNMP還是Internet主機上最常見的服務之一。特別地,SNMP服務通常在位于網(wǎng)絡(luò)邊緣的設(shè)備(防火墻保護圈之外的設(shè)備)上運行,進一步加劇了SNMP簡單網(wǎng)絡(luò)管理協(xié)議帶來的風險。這一切聽起來出人意料,但其實事情不應該是這樣的。#p#
背景知識
SNMP開發(fā)于九十年代早期,其目的是簡化大型網(wǎng)絡(luò)中設(shè)備的管理和數(shù)據(jù)的獲取。許多與網(wǎng)絡(luò)有關(guān)的軟件包,如HP的OpenView和Nortel Networks的Optivity Network Management System,還有Multi Router Traffic Grapher(MRTG)之類的免費軟件,都用SNMP服務來簡化網(wǎng)絡(luò)的管理和維護。
由于SNMP簡單網(wǎng)絡(luò)管理協(xié)議的效果實在太好了,所以網(wǎng)絡(luò)硬件廠商開始把SNMP加入到它們制造的每一臺設(shè)備。今天,各種網(wǎng)絡(luò)設(shè)備上都可以看到默認啟用的SNMP服務,從交換機到路由器,從防火墻到網(wǎng)絡(luò)打印機,無一例外。
僅僅是分布廣泛還不足以造成威脅,問題是許多廠商安裝的SNMP都采用了默認的通信字符串(例如密碼),這些通信字符串是程序獲取設(shè)備信息和修改配置必不可少的。采用默認通信字符串的好處是網(wǎng)絡(luò)上的軟件可以直接訪問設(shè)備,無需經(jīng)過復雜的配置。
通信字符串主要包含兩類命令:GET命令,SET命令。GET命令從設(shè)備讀取數(shù)據(jù),這些數(shù)據(jù)通常是操作參數(shù),例如連接狀態(tài)、接口名稱等。SET命令允許設(shè)置設(shè)備的某些參數(shù),這類功能一般有限制,例如關(guān)閉某個網(wǎng)絡(luò)接口、修改路由器參數(shù)等功能。但很顯然,GET、SET命令都可能被用于拒絕服務攻擊(DoS)和惡意修改網(wǎng)絡(luò)參數(shù)。
最常見的默認通信字符串是public(只讀)和private(讀/寫),除此之外還有許多廠商私有的默認通信字符串。幾乎所有運行SNMP簡單網(wǎng)絡(luò)管理協(xié)議的網(wǎng)絡(luò)設(shè)備上,都可以找到某種形式的默認通信字符串。
SNMP 2.0和SNMP 1.0的安全機制比較脆弱,通信不加密,所有通信字符串和數(shù)據(jù)都以明文形式發(fā)送。攻擊者一旦捕獲了網(wǎng)絡(luò)通信,就可以利用各種嗅探工具直接獲取通信字符串,即使用戶改變了通信字符串的默認值也無濟于事。
近幾年才出現(xiàn)的SNMP 3.0解決了一部分問題。為保護通信字符串,SNMP 3.0使用DES(Data Encryption Standard)算法加密數(shù)據(jù)通信;另外,SNMP 3.0還能夠用MD5和SHA(Secure Hash Algorithm)技術(shù)驗證節(jié)點的標識符,從而防止攻擊者冒充管理節(jié)點的身份操作網(wǎng)絡(luò)。
雖然SNMP 3.0出現(xiàn)已經(jīng)有一段時間了,但目前還沒有廣泛應用。如果設(shè)備是2、3年前的產(chǎn)品,很可能根本不支持SNMP 3.0;甚至有些較新的設(shè)備也只有SNMP 2.0或SNMP 1.0。
即使設(shè)備已經(jīng)支持SNMP 3.0,許多廠商使用的還是標準的通信字符串,這些字符串對黑客組織來說根本不是秘密。因此,雖然SNMP 3.0比以前的版本提供了更多的安全特性,如果配置不當,其實際效果仍舊有限。