1樓:匿名使用者
snmp 就是簡單網路管理協議
****** network management protocol
比如吧,電腦之間互聯共享資料夾,共享印表機,都要這個協議。
2樓:匿名使用者
snmp開發於九十年代早期,其目的是簡化大型網路中裝置的管理和資料的獲取。許多與網路有關的軟體包,如hp的openview和nortel networks的optivity network management system,還有multi router traffic grapher(mrtg)之類的免費軟體,都用snmp服務來簡化網路的管理和維護。
由於snmp的效果實在太好了,所以網路硬體廠商開始把snmp加入到它們製造的每一臺裝置。今天,各種網路裝置上都可以看到預設啟用的snmp服務,從交換機到路由器,從防火牆到網路印表機,無一例外。
僅僅是分佈廣泛還不足以造成威脅,問題是許多廠商安裝的snmp都採用了預設的通訊字串(例如密碼),這些通訊字串是程式獲取裝置資訊和修改配置必不可少的。採用預設通訊字串的好處是網路上的軟體可以直接訪問裝置,無需經過複雜的配置。
通訊字串主要包含兩類命令:get命令,set命令。get命令從裝置讀取資料,這些資料通常是操作引數,例如連線狀態、介面名稱等。
set命令允許設定裝置的某些引數,這類功能一般有限制,例如關閉某個網路介面、修改路由器引數等功能。但很顯然,get、set命令都可能被用於拒絕服務攻擊(dos)和惡意修改網路引數。
最常見的預設通訊字串是public(只讀)和private(讀/寫),除此之外還有許多廠商私有的預設通訊字串。幾乎所有執行snmp的網路裝置上,都可以找到某種形式的預設通訊字串。
snmp 2.0和snmp 1.0的安全機制比較脆弱,通訊不加密,所有通訊字串和資料都以明文形式傳送。
攻擊者一旦捕獲了網路通訊,就可以利用各種嗅探工具直接獲取通訊字串,即使使用者改變了通訊字串的預設值也無濟於事。
近幾年才出現的snmp 3.0解決了一部分問題。為保護通訊字串,snmp 3.
0使用des(data encryption standard)演算法加密資料通訊;另外,snmp 3.0還能夠用md5和sha(secure hash algorithm)技術驗證節點的識別符號,從而防止攻擊者冒充管理節點的身份操作網路。
雖然snmp 3.0出現已經有一段時間了,但目前還沒有廣泛應用。如果裝置是2、3年前的產品,很可能根本不支援snmp 3.
0;甚至有些較新的裝置也只有snmp 2.0或snmp 1.0。
即使裝置已經支援snmp 3.0,許多廠商使用的還是標準的通訊字串,這些字串對黑客組織來說根本不是祕密。因此,雖然snmp 3.
0比以前的版本提供了更多的安全特性,如果配置不當,其實際效果仍舊有限。
〖二、禁用snmp〗
要避免snmp服務帶來的安全風險,最徹底的辦法是禁用snmp。如果你沒有用snmp來管理網路,那就沒有必要執行它;如果你不清楚是否有必要執行snmp,很可能實際上不需要。即使你打算以後使用snmp,只要現在沒有用,也應該先禁用snmp,直到確實需要使用snmp時才啟用它。
下面列出瞭如何在常見的平臺上禁用snmp服務。
■ windows xp和windows 2000
在xp和win 2k中,右擊“我的電腦”,選擇“管理”。“服務和應用程式”、“服務”,從服務的清單中選擇snmp服務,停止該服務。然後開啟服務的“屬性”對話方塊,將啟動型別該為“禁用”(按照微軟的預設設定,win 2k/xp預設不安裝snmp服務,但許多軟體會自動安裝該服務)。
snmp規定了5種協議資料單元pdu(也就是snmp報文),用來在管理程序和**之間的交換。get-request操作:從**程序處提取一個或多個引數值get-next-request操作:
從**程序處提取緊跟當前引數值的下一個引數值set-request操作:設定**程序的一個或多個引數值get-response操作:返回的一個或多個引數值。
這個操作是由**程序發出的,它是前面三種操作的響應操作。trap操作:**程序主動發出的報文,通知管理程序有某些事情發生。
圖1 snmp的5種報文操作
前面的3種操作是由管理程序向**程序發出的,後面的2個操作是**程序發給管理程序的,為了簡化起見,前面3個操作今後叫做get、get-next和set操作。圖1描述了snmp的這5種圖2 snmp報文格式報文操作。請注意,在**程序端是用熟知埠161倆接收get或set報文,而在管理程序端是用熟知埠162來接收trap報文。
圖2是封裝成udp資料包的5種操作的snmp報文格式。可見一個snmp報文共有三個部分組成,即公共snmp首部、get/set首部trap首部、變數繫結。
〖公共snmp首部〗
■ 版本
寫入版本欄位的是版本號減1,對於snmp(即snmpv1)則應寫入0。
�8�5
■共同體(community)
共同體就是一個字串,作為管理程序和**程序之間的明文口令,常用的是6個字元“public”。表1 pdu型別
�8�5
〖pdu型別〗
根據pdu的型別,填入0~4中的一個數字,其對應關係如表1所示意圖。
〖get/set首部〗
�8�5
■請求識別符號(request id)
這是由管理程序設定的一個整數值。**程序在傳送get-response報文時也要返回此請求識別符號。管理程序可同時向許多**發出get報文,這些報文都使用udp傳送,先傳送的有可能後到達。
設定了請求識別符號可使管理程序能夠識別返回的響應報文對於哪一個請求報文
表2 差錯狀態描述�8�5 ■差錯狀態(error status)
由**程序回答時填入0~5中的一個數字,見表2的描述。
�8�5 ■ 差錯索引(error index)
當出現nosuchname、badvalue或readonly的差錯時,由**程序在回答時設定的一個整數,它指明有差錯的變數在變數列表中的偏移。
〖trap首部〗
�8�5
■企業(enterprise)
填入trap報文的網路裝置的物件識別符號。此物件識別符號肯定是在圖3的物件命名樹上的enterprise結點下面的一棵子表3 trap型別樹上。
�8�5 〖trap型別〗
此欄位正式的名稱是generic-trap,共分為表3中的7種。
型別2、3、5時,在報文後面變數部分的第一個變數應標識響應的介面。
�8�5
■特定**(specific-code)
指明**自定義的時間(若trap型別為6),否則為0。
�8�5
■ 時間戳(timestamp)
指明自**程序初始化到trap報告的事件發生所經歷的時間,單位為10ms。例如時間戳為1908表明在**初始化後1908ms發生了該時間。
■變數繫結(variable-bindings)
指明一個或多個變數的名和對應的值。在get或get-next報文中,變數的值應忽略。
snmp是什麼協議?
3樓:秒懂百科
snmp:ip 網路管理網路節點的一種標準協議
4樓:匿名使用者
西茉納,到林中去吧:樹葉已飄落了;
它們鋪著蒼苔、石頭和小徑。
西茉納,你愛死葉上的步履聲嗎?
它們有如此柔美的顏色,如此沉著的調子,
它們在地上哈哈是如此脆弱的殘片!
mysql資料庫伺服器一般多少記憶體
愛可生雲資料庫 我們仍然使用兩個會話,一個會話 run,用於執行主 sql 另一個會話 ps,用於進行 performance schema 的觀察 將 performance schema 中的統計量重置,臨時表的表大小限制取決於引數 tmp table size 和 max heap table...
linux伺服器 一般都用啥作業系統
1.linux伺服器通常都會安裝些啥應用在上面?解答 非常多,最常見的比如 web服務 nginx,apache,php,tomcat 2.linux好像有很多版本啥小紅帽,ubuntu。分不清楚這些是幹啥的。解答 1.5 如何選擇服務端linux版本 1.5.1 linux發行版本介紹 linux...
一般企業用的linu伺服器是什麼版本的
一般企業用的linux伺服器有以下幾個版本 1 ubuntu系列產品發行版 ubuntu版本的命名規則是根據正式版釋出的年月命名,ubuntu 8.10也就意味著2008年10月釋出的ubuntu,研發人員與使用者可從版本號碼就知道正式釋出的時間。ubuntu是基於debian開發的linux釋出版...