第五章 SNMP的安全風險及防範措施(2 / 2)

選擇"開始"→"設置",打開服務設置程序,在服務清單中選擇SNMP服務,停止該服務,然後將它的啟動類型該為禁用。

■Windows9x

打開控製麵板的網絡設置程序,在"配置"頁中,從已安裝的組件清單中選擇"MicrosoftSNMP代理",點擊"刪除"。檢查HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices和HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run注冊鍵,確認不存在snmp.exe。

■CiscoSystems硬件

對於Cisco的網絡硬件,執行"noSNMP-server"命令禁用SNMP服務。如果要檢查SNMP是否關閉,可執行"showSNMP"命令。這些命令隻適用於運行CiscoIOS的平台;對於非IOS的Cisco設備,請參考隨機文檔。

■HP硬件

對於所有使用JetDirect卡(絕大部分HP網絡打印機都使用它)的HP網絡設備,用telnet連接到JetDirect卡的IP地址,然後執行下麵的命令:

SNMP-config:0

quit

這些命令將關閉設備的SNMP服務。但必須注意的是,禁用SNMP服務會影響服務的發現操作以及利用SNMP獲取設備狀態的端口監視機製。

■RedHatLinux

對於RedHatLinux,可以用Linuxconf工具從自動啟動的服務清單中刪除SNMP,或者直接從/etc/services文件刪除啟動SNMP的行。對於其他Linux係統,操作方法應該也相似。

三、保障SNMP的安全

如果某些設備確實有必要運行SNMP,則必須保障這些設備的安全。首先要做的是確定哪些設備正在運行SNMP服務。除非定期對整個網絡進行端口掃描,全麵掌握各台機器、設備上運行的服務,否則的話,很有可能遺漏一、二個SNMP服務。特別需要注意的是,網絡交換機、打印機之類的設備同樣也會運行SNMP服務。確定SNMP服務的運行情況後,再采取下麵的措施保障服務安全。

■加載SNMP服務的補丁

安裝SNMP服務的補丁,將SNMP服務升級到2.0或更高的版本。聯係設備的製造商,了解有關安全漏洞和升級補丁的情況。

■保護SNMP通信字符串

一個很重要的保護措施是修改所有默認的通信字符串。根據設備文檔的說明,逐一檢查、修改各個標準的、非標準的通信字符串,不要遺漏任何一項,必要時可以聯係製造商獲取詳細的說明。

■過濾SNMP

另一個可以采用的保護措施是在網絡邊界上過濾SNMP通信和請求,即在防火牆或邊界路由器上,阻塞SNMP請求使用的端口。標準的SNMP服務使用161和162端口,廠商私有的實現一般使用199、391、705和1993端口。禁用這些端口通信後,外部網絡訪問內部網絡的能力就受到了限製;另外,在內部網絡的路由器上,應該編寫一個ACL,隻允許某個特定的可信任的SNMP管理係統操作SNMP。例如,下麵的ACL隻允許來自(或者走向)SNMP管理係統的SNMP通信,限製網絡上的所有其他SNMP通信:

access-list100permitiphostw.x.yany

access-list100denyudpanyanyeqsnmp

access-list100denyudpanyanyeqsnmptrap

access-list100permitipanyany

這個ACL的第一行定義了可信任管理係統(w.x.y)。利用下麵的命令可以將上述ACL應用到所有網絡接口:

interfaceserial0

ipaccess-group100in

總之,SNMP的發明代表著網絡管理的一大進步,現在它仍是高效管理大型網絡的有力工具。然而,SNMP的早期版本天生缺乏安全性,即使最新的版本同樣也存在問題。就象網絡上運行的其他服務一樣,SNMP服務的安全性也是不可忽視的。不要盲目地肯定網絡上沒有運行SNMP服務,也許它就躲藏在某個設備上。那些必不可少的網絡服務已經有太多讓人擔憂的安全問題,所以最好關閉SNMP之類並非必需的服務--至少盡量設法保障其安全。