目錄
CMIP協議
書籍

SNMP

CMIP協議 · 李秉慈

{

\"code\": 200,

\"title\": \"\",

\"content\": \"SNMP(SimpleNetworkManagementProtocol,簡單網絡管理協議)的前身是簡單網關監控協議(SGMP),用來對通訊線路進行管理。隨後,人們對SGMP進行了很大的修改,特彆是加入了符合Internet定義的**I和MIB:體繫結構,改進後的協議就是著名的SNMP。SNMP的目標是管理互聯網Internet上眾多廠家生產的軟硬體平台,因此SNMP受Internet標準網絡管理框架的影響也很大。現在SNMP已經出到第三個版本的協議,其功能較以前已經大大地加強和改進了。\\n\\nSNMP資訊\\n\\nMIB,ManagementInformationBase:管理資訊庫,由網絡管理協議訪問的管理對象數據庫,它包括SNMP可以通過網絡設備的SNMP管理代理進行設置的變量。**I,StructureofManagementInformation:管理資訊結構,用於定義通過網絡管理協議可訪問的對象的規則。**I定義在MIB中使用的數據類型及網絡資源在MIB中的名稱或表示。\\n\\n使用SNMP進行網絡管理需要下麵幾個重要部分:管理基站,管理代理,管理資訊庫和網絡管理工具。管理基站通常是一個獨立的設備,它用作網絡管理者進行網絡管理的用戶介麵。基站上必須裝備有管理軟件,管理員可以使用的用戶介麵和從MIB取得資訊的數據庫,同時為了進行網絡管理它應該具備將管理命令發出基站的能力。\\n\\n管理代理是一種網絡設備,如主機,網橋,路由器和集線器等,這些設備都必須能夠接收管理基站發來的資訊,它們的狀態也必須可以由管理基站監視。管理代理響應基站的請求進行相應的操作,也可以在冇有請求的情況下向基站發送資訊。\\n\\nMIB是對象的集合,它代表網絡中可以管理的資源和設備。每個對象基本上是一個數據變量,它代表被管理的對象的一方麵的資訊。\\n\\n最後一個方麵是管理協議,也就是SNMP,SNMP的基本功能是:取得,設置和接收代理髮送的意外資訊。取得指的是基站發送請求,代理根據這個請求回送相應的數據,設置是基站設置管理對象(也就是代理)的值,接收代理髮送的意外資訊是指代理可以在基站未請求的狀態下向基站報告發生的意外情況。\\n\\nSNMP為應用層協議,是TCP\\/IP協議族的一部分。它通過用戶數據報協議(UDP)來操作。在分立的管理站中,管理者進程對位於管理站中心的MIB的訪問進行控製,並提供網絡管理員介麵。管理者進程通過SNMP完成網絡管理。SNMP在UDP、IP及有關的特殊網絡協議(如,Ethernet,FDDI,X.25)之上實現。\\n\\nSNMP風險\\n\\n接入Internet的網絡麵臨許多風險,Web服務器可能麵臨攻擊,郵件服務器的安全也令人擔憂。但除此之外,網絡上可能還存在一些隱性的漏洞。大多數網絡總有一些設備運行著SNMP服務,許多時候這些SNMP服務是不必要的,但卻冇有引起網絡管理員的重視。\\n\\n根據SANS協會的報告,對於接入Internet的主機,SNMP是威脅安全的十大首要因素之一;同時,SNMP還是Internet主機上最常見的服務之一。特彆地,SNMP服務通常在位於網絡邊緣的設備(防火牆保護圈之外的設備)上運行,進一步加劇了SNMP帶來的風險。這一切聽起來出人意料,但其實事情不應該是這樣的。\\n\\n背景知識\\n\\nSNMP開發於九十年代早期,其目的是簡化大型網絡中設備的管理和數據的獲取。許多與網絡有關的軟件包,如HP的OpenView和NortelNetworks的OptivityNetworkManagementSystem,還有MultiRouterTrafficGrapher(MRTG)之類的免費軟件,都用SNMP服務來簡化網絡的管理和維護。\\n\\n由於SNMP的效果實在太好了,所以網絡硬體廠商開始把SNMP加入到它們製造的每一台設備。今天,各種網絡設備上都可以看到默認啟用的SNMP服務,從交換機到路由器,從防火牆到網絡列印機,無一例外。\\n\\n僅僅是分佈廣泛還不足以造成威脅,問題是許多廠商安裝的SNMP都采用了默認的通訊字串(例如密碼),這些通訊字串是程式獲取設備資訊和修改配置必不可少的。采用默認通訊字串的好處是網絡上的軟件可以直接訪問設備,無需經過複雜的配置。\\n\\n通訊字串主要包含兩類命令:GET命令,SET命令。GET命令從設備讀取數據,這些數據通常是操作參數,例如連接狀態、介麵名稱等。SET命令允許設置設備的某些參數,這類功能一般有限製,例如關閉某個網絡介麵、修改路由器參數等功能。但很顯然,GET、SET命令都可能被用於拒絕服務攻擊(DoS)和惡意修改網絡參數。\\n\\n最常見的默認通訊字串是public(讀\\/寫)和private(隻讀),除此之外還有許多廠商私有的默認通訊字串。幾乎所有運行SNMP的網絡設備上,都可以找到某種形式的默認通訊字串。\\n\\nSNMP2.0和SNMP1.0的安全機製比較脆弱,通訊不加密,所有通訊字串和數據都以明文形式發送。攻擊者一旦捕獲了網絡通訊,就可以利用各種嗅探工具直接獲取通訊字串,即使用戶改變了通訊字串的默認值也無濟於事。\\n\\n近幾年纔出現的SNMP3.0解決了一部分問題。為保護通訊字串,SNMP3.0使用DES(DataEncryptionStandard)演算法加密數據通訊;另外,SNMP3.0還能夠用MD5和SHA(SecureHashAlgorithm)技術驗證節點的標識符,從而防止攻擊者冒充管理節點的身份操作網絡。\\n\\n雖然SNMP3.0出現已經有一段時間了,但目前還冇有廣泛應用。如果設備是2、3年前的產品,很可能根本不支援SNMP3.0;甚至有些較新的設備也隻有SNMP2.0或SNMP1.0。\\n\\n即使設備已經支援SNMP3.0,許多廠商使用的還是標準的通訊字串,這些字串對黑客組織來說根本不是秘密。因此,雖然SNMP3.0比以前的版本提供了更多的安全特性,如果配置不當,其實際效果仍舊有限。\\n\\n禁用SNMP\\n\\n要避免SNMP服務帶來的安全風險,最徹底的辦法是禁用SNMP。如果你冇有用SNMP來管理網絡,那就冇有必要運行它;如果你不清楚是否有必要運行SNMP,很可能實際上不需要。即使你打算以後使用SNMP,隻要現在冇有用,也應該先禁用SNMP,直到確實需要使用SNMP時才啟用它。\\n\\n下麵列出瞭如何在常見的平台上禁用SNMP服務。\\n\\n■WindowsXP和Windows2000\\n\\n在XP和Win2K中,右擊“我的電腦”,選擇“管理”。展開“服務和應用程式”、“服務”,從服務的清單中選擇SNMP服務,停止該服務。然後打開服務的“屬性”對話框,將啟動類型改為“禁用”(按照微軟的默認設置,Win2K\\/XP默認不安裝SNMP服務,但許多軟件會自動安裝該服務)。\\n\\n■WindowsNT4.0\\n\\n選擇“開始”→“設置”,打開服務設置程式,在服務清單中選擇SNMP服務,停止該服務,然後將它的啟動類型改為禁用。\\n\\n■Windows9x\\n\\n打開控製麵板的網絡設置程式,在“配置”頁中,從已安裝的組件清單中選擇“MicrosoftSNMP代理”,點擊“刪除”。檢查HKEY_LOCAL_MACHINE\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\RunServices和HKEY_LOCAL_MACHINE\\\\SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run註冊鍵,確認不存在snmp.exe。\\n\\n■CiscoSystems硬體\\n\\n對於Cisco的網絡硬體,執行“noSNMP-server”命令禁用SNMP服務。如果要檢查SNMP是否關閉,可執行“showSNMP”命令。這些命令隻適用於運行CiscoIOS的平台;對於非IOS的Cisco設備,請參考隨機文檔。\\n\\n■HP硬體\\n\\n對於所有使用JetDirect卡(絕大部分HP網絡列印機都使用它)的HP網絡設備,用telnet連接到JetDirect卡的IP地址,然後執行下麵的命令:\\n\\nSNMP-config:0\\n\\nquit\\n\\n這些命令將關閉設備的SNMP服務。但必須注意的是,禁用SNMP服務會影響服務的發現操作以及利用SNMP獲取設備狀態的監視機製。\\n\\n■RedHatLinux\\n\\n對於RedHatLinux,可以用Linuxconf工具從自動啟動的服務清單中刪除SNMP,或者直接從\\/etc\\/services檔案刪除啟動SNMP的行。對於其他Linux係統,操作方法應該也相似。\\n\\n保障SNMP的安全\\n\\n如果某些設備確實有必要運行SNMP,則必須保障這些設備的安全。首先要做的是確定哪些設備正在運行SNMP服務。除非定期對整個網絡進行掃描,全麵掌握各台機器、設備上運行的服務,否則的話,很有可能遺漏一、二個SNMP服務。特彆需要注意的是,網絡交換機、列印機之類的設備同樣也會運行SNMP服務。確定SNMP服務的運行情況後,再采取下麵的措施保障服務安全。\\n\\n■加載SNMP服務的補丁\\n\\n安裝SNMP服務的補丁,將SNMP服務升級到2.0或更高的版本。聯絡設備的製造商,瞭解有關安全漏洞和升級補丁的情況。\\n\\n■保護SNMP通訊字串\\n\\n一個很重要的保護措施是修改所有默認的通訊字串。根據設備文檔的說明,逐一檢查、修改各個標準的、非標準的通訊字串,不要遺漏任何一項,必要時可以聯絡製造商獲取詳細的說明。\\n\\n■過濾SNMP\\n\\n另一個可以采用的保護措施是在網絡邊界上過濾SNMP通訊和請求,即在防火牆或邊界路由器上,阻塞SNMP請求使用的。標準的SNMP服務使用161和162,廠商私有的實現一般使用199、391、705和1993。禁用這些通訊後,外部網絡訪問內部網絡的能力就受到了限製;另外,在內部網絡的路由器上,應該編寫一個ACL,隻允許某個特定的可信任的SNMP管理係統操作SNMP。例如,下麵的ACL隻允許來自(或者走向)SNMP管理係統的SNMP通訊,限製網絡上的所有其他SNMP通訊:\\n\\naccess-list100permitiphostw.x.yany\\n\\naccess-list100denyudpanyanyeqsnmp\\n\\naccess-list100denyudpanyanyeqsnmptrap\\n\\naccess-list100permitipanyany\\n\\n這個ACL的第一行定義了可信任管理係統(w.x.y)。利用下麵的命令可以將上述ACL應用到所有網絡介麵:\\n\\ninterfaceserial0\\n\\nipaccess-group100in\\n\\n總之,SNMP的發明代表著網絡管理的一大進步,現在它仍是高效管理大型網絡的有力工具。然而,SNMP的早期版本天生缺乏安全性,即使最新的版本同樣也存在問題。就象網絡上運行的其他服務一樣,SNMP服務的安全性也是不可忽視的。不要盲目地肯定網絡上冇有運行SNMP服務,也許它就躲藏在某個設備上。那些必不可少的網絡服務已經有太多讓人擔憂的安全問題,所以最好關閉SNMP之類並非必需的服務——至少儘量設法保障其安全。\\n\\nSNMP數據\\n\\n簡單網絡管理協議(SNMP)是目前TCP\\/IP網絡中應用最為廣泛的網絡管理協議。1990年5月,RFC1157定義了SNMP(simplenetworkmanagementprotocol)的第一個版本SNMPv1。RFC1157和另一個關於管理資訊的檔案RFC1155一起,提供了一種監控和管理計算機網絡的係統方法。因此,SNMP得到了廣泛應用,併成為網絡管理的事實上的標準。\\n\\nSNMP在90年代初得到了迅猛發展,同時也暴露出了明顯的不足,如,難以實現大量的數據傳輸,缺少身份驗證(Authentication)和加密(Privacy)機製。因此,1993年釋出了SNMPv2,具有以下特點:\\n\\n?支援分散式網路管理\\n\\n?擴展了數據類型\\n\\n?可以實現大量數據的同時傳輸,提高了效率和效能\\n\\n?豐富了故障處理能力\\n\\n?增加了集合處理功能\\n\\n?加強了數據定義語言\\n\\n管理資訊庫\\n\\n管理資訊庫MIB指明瞭網絡元素所維持的變量(即能夠被管理進程查詢和設置的資訊)。MIB給出了一個網絡中所有可能的被管理對象的集合的數據結構。SNMP的管理資訊庫采用和域名係統DNS相似的樹型結構,它的根在最上麵,根冇有名字。圖3畫的是管理資訊庫的一部分,它又稱為對象命名(objectnamingtree)。\\n\\n對象命名樹的頂級對象有三個,即ISO、ITU-T和這兩個組織的聯合體。在ISO的下麵有4個結點,其中的一個(標號3)是被標識的組織。在其下麵有一個美國國防部(DepartmentofDefense)的子樹(標號是6),再下麵就是Internet(標號是1)。在隻討論Internet中的對象時,可隻畫出Internet以下的子樹(圖中帶陰影的虛線方框),並在Internet結點旁邊標註上{1.3.6.1}即可。\\n\\n在Internet結點下麵的第二個結點是mgmt(管理),標號是2。再下麵是管理資訊庫,原先的結點名是mib。1991年定義了新的版本MIB-II,故結點名現改為mib-2,其標識為{1.3.6.1.2.1},或{Internet(1).2.1}。這種標識為對象標識符。\\n\\n最初的結點mib將其所管理的資訊分為8個類彆,見表4。現在demib-2所包含的資訊類彆已超過40個。\\n\\n應當指出,MIB的定義與具體的網絡管理協議無關,這對於廠商和用戶都有利。廠商可以在產品(如路由器)中包含SNMP代理軟件,並保證在定義新的MIB項目後該軟件仍遵守標準。用戶可以使用同一網絡管理客戶軟件來管理具有不同版本的MIB的多個路由器。當然,一個冇有新的MIB項目的路由器不能提供這些項目的資訊。\\n\\n這裡要提一下MIB中的對象{1.3.6.1.4.1},即enterprises(企業),其所屬結點數已超過3000。例如IBM為11.3.6.1.4.1.2},Cisco為{1.3.6.1.4.1.9},Novell為{1.3.6.1.4.1.23}等。\\n\\nWindowsSNMP查詢\\n\\n作用簡述\\n\\nSNMP是\\\"SimpleNetworkManagementProtocol\\\"的縮寫,中文含義是\\\"簡單網絡管理協議\\\",這個協議的作用和詳細情況,各位可以參考有關資料.這裡隻介紹針對這個協議進行狀態查詢的工具軟件Snmputilg.exe.也是支援工具目錄中所提供的.至於用途,不外乎是給係統管理員提供關於SNMP方麵的資訊,便於在排除故障的時候當做參考.打開工具顯示介麵之後,你就可以用來執行諸如GET,GET-NEXT等等操作或進行有關的設置.另外,這個工具也能將數據儲存到剪貼板,或將數據儲存為以逗號為結束符號的文字檔案.在使用中應當注意:即使多數對象的都使用了默認的ID標識(數值),你也要謹慎地使用SNMPSET命令,因為不正確地使用這個命令之後,可能導致網絡名稱資源方麵的問題或是在引起連通方麵的問題.\\n\\n使用方法\\n\\n1.啟動程式:在windows2000的環境中,點擊\\\"開始->運行\\\",在編輯框中鍵入snmputilg然後回車或點擊\\\"確定\\\".\\n\\n2.和以前遇到的不同,Snmputilg.exe是一個圖形介麵的工具,儘管執行程式的時候可以使用命令列控製視窗打開它,但實際啟動成功之後出現的介麵仍然是圖形的\\n\\n3.工具啟動後,Node編輯框中顯示的是默認的回送地址,地址值是127.0.0.1;CurrentOID指的是\\\"當前對象標識符\\\",標識是windows係統中用來代表一個對象的數字,每個標識都是整個係統中唯一的,也就是說,標識不會、也不允許重複.圖中顯示的值是.1.3.6.1.2.1.public是community一項的默認選擇.上麵所介紹的這些項目也可選定彆的值.\\n\\n4.如果選擇了彆的係統的IP地址,則必須運行SNMP服務,而目標係統必須配置好網絡訪問的地址,所謂配置,包括地址設置和權限打開.同時,所需要的輔助工具也應當具備或運行.預設情況下,windows2000對所有另外係統的IP地址都是允許訪問的.\\n\\n5.另一個問題是community,當選定community的值時,一要注意它所代表的對象必須存在,二要注意其\\\"可讀\\\"屬性隻有獲準許可之後才能進行讀操作.三要注意這個項目在windows係列的不同版本中,對訪問地址的限製可能不一樣.\\n\\n6.凡是SNMP可以執行的功能(SNMPFunctiontoExecute),在圖中下拉組合框中都已經列出,可供選擇.選擇好之後,請鼠標點擊ExecuteCommand按鈕來執行對應的操作.\\n\\n以下是這些操作的功能簡介:\\n\\nGETthevalueofthecurrentobjectidentifier:得到當前對象的ID標識數值\\n\\nGETtheNEXTvalueafterthecurrentobjectidentifier(thisisthedefault):得到緊接當前對象之後的下一個對象的ID標識數值(這是默認的)\\n\\nGETtheNEXT20valuesafterthecurrentobjectidentifier:得到當前對象之後的20個對象的ID標識數值\\n\\nGETallvaluesfromobjectidentifierdown(WALKthetree):得到從當前對象往下的所有對象的ID標識數值\\n\\nWALKthetreefromWINSvaluesdown:從WINS值往下漫遊目錄\\n\\nWALKthetreefromDHCPvaluesdown:從DHCP值往下漫遊目錄\\n\\nWALKthetreefromLANMANvaluesdown:從LANMAN值往下漫遊目錄\\n\\nWALKthetreefromMIB-IIdown(InternetMIB):從MIB-II往下漫遊目錄\\n\\n7.顯示結果含義解釋:\\n\\n這些結果可以清除,也可以儲存或更新,要實現上述功能,可以使用菜單中對應的操作,具體地說,這些操作包括:\\n\\n將一個或多個結果拷貝入剪貼板.\\n\\n刪除現在列出的所有內容.\\n\\n清除已經執行過的所有的命令.\\n\\n請求記錄當前已經選定的項目.\\n\\n產生一個文字檔案,用該檔案儲存所有的記錄的映像\\n\\n編輯或設置某個對象的標識.在使用這個操作時要謹慎,因為一旦進行了不正確地設置,將可能導致網絡名稱資\\n\\nSNMPv2協議操作\\n\\nSNMPv2標準的核心就是通訊協議———它是一個請求\\/應答式的協議。\\n\\n這個協議提供了在manager與agent、manager與manager之間交換管理資訊的直觀、基本的方法。\\n\\n每條SNMPv2的報文都由一些域構成:\\n\\n如果發送方、接收方的兩個Party都采用了驗證(authentication)機製,它就包含與驗證有關的資訊;否則它為空(取NULL)。驗證的過程如下:發送方和接收方的Party都分彆有一個驗證用的密鑰(secretkey)和一個驗證用的演算法。報文發送前,發送方先將密鑰值填入圖中digest域,作為報文的前綴。然後根據驗證演算法,對報文中digest域以後(包括digest域)的報文數據進行計算,計算出一個摘要值(digest),再用摘要值取代密鑰,填入報文中的digest域。接收方收到報文後,先將報文中的摘要值取出來,暫存在一個位置,然後用發送方的密鑰放入報文中的digest。將這兩個摘要值進行比較,如果一樣,就證明發送方確實是srcParty域中所指明的那個Party,報文是合法的;如果不一樣,接收方斷定發送方非法。驗證機製可以防止非法用戶\\\"冒充\\\"某個合法Party來進行破壞。\\n\\nauthInfo域中還包含兩個時間戳(timestamp),用於發送方與接收方之間的同步,以防止報文被截獲和重發。\\n\\nSNMPv2的另一大改進是可以對通訊報文進行加密,以防止監聽者竊取報文內容。除了privDst域外,報文的其餘部分可以被加密。發送方與接收方采用同樣的加密演算法(如DES)。\\n\\n通訊報文可以不加任何安全保護,或隻進行驗證,也可以二者都進行。\\n\\nOSI上的SNMP\\n\\n在CLTS上的對映\\n\\n在CLTS[7,8]上的SNMP對映是直通方式的。步驟原理和UDP采用的相同。注意CLTS\\n\\n和服務都是通過包含了全部地址資訊的UDP資訊傳輸包來提供的。因此,的“傳輸地\\n\\n址”,對映在CLTS上的SNMP僅僅是一個傳輸選項和網絡地址。\\n\\n應該注意到,正如中描述的那樣,對映在麵向非連接的傳輸服務上的SNMP和\\n\\nSNMP的結構原理是完全一致的。然而,CLTS本身既可以采用一個麵向無連接方式,又可以采用麵向連接的網絡服務方式實現。在這種對映中描述的對映支援任意實現方式。(當提供所有網絡服務時,應該以CLNS為實現基礎。)\\n\\n周知地址\\n\\n不象Internet協議組,OSI冇有使用周知口。當然,多路分解技術基於“選擇器”發生,“選擇器”是具有區域性重要意義的不透明八位字串。為了照顧基於CLTS的可互操作的SNMP實現,定義四個選擇器是必要的。當CLTS采用無連接模式的網絡服務來提供反向SNMP傳輸時,應該采用由6個ASCII字元組成的“snmp-l”傳輸選擇器;按照約定,會發送一個SNMP中斷給一個正在監聽由7個ASCII字元組成的“snmp-l”傳輸選擇器的SNMP管理器。當CLTS采用麵向連接的網絡服務來提供反向SNMP傳輸時,應該采用由6個ASCII字元組成“snmp-o”傳輸選擇器;按照約定,會發送一個SNMP中斷給一個正在監聽由7個ASCII字元組成的“snmp-o”傳輸選擇器的SNMP管理器。\\n\\n中斷\\n\\n當SNMP中斷在CLTS上發送時,Trap-PDU中的代理地址欄位包含了IP地址“0.0.0.0”。SNMP管理器可以基於由傳輸服務提供的資訊(也就是源自T-UNIT-DATA.INDICATION基本數據單元的)探知陷阱的來源。\\n\\n最大訊息尺寸\\n\\n一個在OSI上運行SNMP的實體應該準備好接收大小至少484個字節的訊息。鼓勵應用隨時可能發生的更大的數值。\\n\\n在網絡設備中的作用\\n\\nSNMP是目前最常用的環境管理協議。SNMP被設計成與協議無關,所以它可以在IP,IPX,AppleTalk,OSI以及其他用到的傳輸協議上被使用。SNMP是一係列協議組和規範(見下表),它們提供了一種從網絡上的設備中收集網絡管理資訊的方法。SNMP也為設備向網絡管理工作站報告問題和錯誤提供了一種方法。\\n\\n目前,幾乎所有的網絡設備生產廠家都實現了對SNMP的支援。領導潮流的SNMP是一個從網絡上的設備收集管理資訊的公用通訊協議。設備的管理者收集這些資訊並記錄在管理資訊庫(MIB)中。這些資訊報告設備的特性、數據吞吐量、通訊超載和錯誤等。MIB有公共的格式,所以來自多個廠商的SNMP管理工具可以收集MIB資訊,在管理控製檯上呈現給係統管理員。\\n\\n通過將SNMP嵌入數據通訊設備,如路由器、交換機或集線器中,就可以從一箇中心站管理這些設備,並以圖形方式檢視資訊。目前可獲取的很多管理應用程式通常可在大多數當前使用的操作係統下運行,如Windows95、Windows98、WindowsNT和不同版本UNIX的等。\\n\\n一個被管理的設備有一個管理代理,它負責向管理站請求資訊和動作,代理還可以藉助於陷阱為管理站主動提供資訊,因此,一些關鍵的網絡設備(如集線器、路由器、交換機等)提供這一管理代理,又稱SNMP代理,以便通過SNMP管理站進行管理。\\n\\n\"

}

若章節內容顯示異常,請重新整理或切換到 手機版 / 電腦版 檢視。