snmp協議

snmp,簡單網絡管理協議,端口udp161。有三個版本:v1,v2,v3

  下面是找的的解釋:

1.SNMPv1的安全機制
  SNMPv1僅僅提供了有限的安全性,即團體的概念。
  團體是一個在代理上定義的局部概念。一個代理可以定義若干個團體,每個團體使用唯一的團體名。而每個SNMP團體是一個在SNMP代理和多個SNMP管理者之間定義的認證、訪問控制和轉換代理的關係。
  在每條SNMPv1信息中都包括community字段,在該域中填入團體名,團體名起密碼的作用。 SNMPv1假設,如果發送者知道這個密碼,就認爲該信息通過了認證,是可靠的。
  一條已通過認證的信息對MIB有何訪問權限主要通過訪問控制來實現。代理爲每一個團體定義了一個SNMPv1團體框架文件,該框架文件包括兩部分:
  ·MIB視域: MIB的一個對象子集,每個團體可以定義不同的MIB視域,一個視域中的對象集不必屬於MIB的單個子樹;
  ·SNMP訪問模式:集合(只讀、讀寫)的一個元素,每個團體只定義一個訪問模式。
  SNMP團體和SNMP團體框架文件的結合就成爲SNMPv1 訪問策略。一個通過了認證的信息必然指定了一個團體,那麼它就有自己相應的團體框架文件,且只能對該框架文件中MIB視域的指定對象進行規定的操作(只讀或讀寫)。
 
2. SNMPv2的安全機制
  SNMPv2具有支持分佈式網絡管理,擴展數據類型,可以實現大量數據的同時傳輸,豐富故障處理能力,增加集合處理功能,加強數據定義語言等特點。
  此外, SNMPv2還引入了"上下文(context)"的概念。上下文是一個可被SNMPv2實體訪問的被管理對象資源的集合,分爲本地上下文和遠程上下文:本地上下文被標識爲一個MIB視域,遠程上下文被標識爲一個轉換代理關係。
  使用了上下文的訪問控制策略由以下4個元素組成:
  ·目標:SNMP參加者,它按主體方的請求執行管理操作;
  ·主體:SNMP參加者,它請求目標方執行管理操作;
  ·資源:管理操作在其上執行的管理信息,它可表示爲一個本地MIB視域或一個代理關係,這一項被稱爲一個上下文;
  ·權限:對於一個特定的上下文可允許的操作,這些操作用可允許的協議數據單元定義,由目標代表主體執行。
  但是,SNMPv2並沒有完全實現預期的目標,尤其是安全性能沒有得到提高,如:身份驗證(如用戶初始接入時的身份驗證、信息完整性的分析、重複操作的預防)、加密、授權和訪問控制、適當的遠程安全配置和管理能力等都沒有實現。1996年發佈的SNMPv2c是 SNMPv2的修改版本,雖然功能增強了,但是安全性能仍沒有得到改善,而是繼續使用SNMPv1的基於明文密鑰的身份驗證方式。
 
3.SNMPv3的安全機制
  IETF SNMPv3工作組於1998年1月提出了互聯網建議RFC 2271~2275,正式形成SNMPv3。這一系列文件定義了包含SNMPv1,SNMPv2所有功能在內的體系框架及包含驗證服務和加密服務在內的全新的安全機制,同時還規定了一套專門的網絡安全和訪問控制規則。可以說,SNMPv3是在SNMPv2基礎之上增加了安全和管理機制。RFC 2271定義的SNMPv3體系結構體現了模塊化的設計思想,可以簡單地實現功能的增加和修改。其特點主要有:
  ·適應性強:適用於多種操作環境,既可以管理最簡單的網絡,實現基本的管理功能,又能夠提供強大的網絡管理功能,滿足複雜網絡的管理需求;
  ·擴充性好:可以根據需要增加模塊;
  ·安全性好:具有多種安全處理模塊。
  SNMPv3主要有3個模塊:信息處理和控制模塊、本地處理模塊和用戶安全模塊。
  1 信息處理和控制模塊
  信息處理和控制模塊在RFC 2272中定義,負責信息的產生和分析,並判斷信息在傳輸過程中是否要經過代理服務器等。
  2 本地處理模塊
  本地處理模塊的主要功能是進行訪問控制,處理打包的數據和中斷。訪問控制是指通過設置代理的有關信息使不同管理站的管理進程在訪問代理時具有不同的權限,在協議數據單元一級完成。常用的控制策略有兩種:限定管理站可以向代理髮出的命令或確定管理站可以訪問代理MIB的具體部分。訪問控制的策略必須預先設定。SNMPv3通過使用帶有不同參數的原語來靈活確定訪問控制方式。
  3 用戶安全模塊
  與SNMPv1和SNMPv2相比,SNMPv3增加了3個新的安全機制:身份驗證,加密和訪問控制。其中,訪問控制功能由本地處理模塊完成,而身份驗證和數據保密服務則由用戶安全模塊提供。身份驗證是指代理(管理站)接到信息時必須首先確認信息是否來自授權的管理站(代理),以及信息在傳輸過程中是否改變。這個功能的實現要求管理站和代理必須共享同一密鑰。管理站使用密鑰計算驗證碼(它是信息的函數),然後將其加入信息中,而代理則使用同一密鑰從接收的信息中提取出驗證碼,從而得到信息。加密的過程與身份驗證類似,也需要管理站和代理共享同一密鑰來實現信息的加密和解密。
 

            注意:確保snmp代理使用相同的協議,因爲每個代理都會直接拋棄與自己協議版本不相同的數據報

centos下用yum裝net-snmp net-snmp-utils。配置文件在/etc/snmp/snmpd.conf

1、首先是定義一個共同體名(community),這裏定義的默認的public,及可以訪問這個public的用戶名(sec name)這裏是notConfigUser。Public相當於用戶notConfigUser的密碼:),source定義允許訪問的來源:default默認是本機,可以換成你需要的地址。   sec.name 、source、community、都可以自己定義

 

2、這裏是notConfigGroup,及組的安全級別,把notConfigUser個用戶加到這個組中。
 

 

3、設置這個組notConfigGroup,的權限,把systemview改成all,只讀

 

4、定義一個可操作的範圍(view)名這裏是all,範圍是 .1
 

配置完以後可以測試下:snmpwalk -v 2c -c public 192.168.4.12 system
 

 

snmpwalk語法:
snmpwalk 交換機或路由器IP地址 -c SNMP讀密碼 -v 1或2(代表SNMP版本) OID(對象標示符)

用法舉例:
1、snmpwalk -c public -v 1 -m ALL 192.168.30.49 .1.3.6.1.2.1.25.1 得到取得windows端的系統進程用戶數等

2、snmpwalk -c public -v 1 -m ALL 192.168.30.49 .1.3.6.1.2.1.25.2.2 取得系統總內存

3、snmpwalk -c public -v 1 -m ALL 192.168.30.49 hrSystemNumUsers

4、snmpwalk -c public -v 1 -m ALL 192.168.30.49 .1.3.6.1.2.1.4.20 取得IP信息

5、snmpwalk -v 2c -c public 192.168.30.49 system 查看系統信息

6、snmpwalk -v 1 192.168.30.49 -c public ifDescr
 

 

小技巧:snmpd -f -Le -Dread_config  命令來查看日誌文件信息,排錯。
 

                snmpd -f -Le     屏幕顯示(net-snmpd的log文件中是同樣內容)

有用的選項:

-c FILE 指定文件爲配置文件
 -C不讀取默認的配置文件
-d dump接收和發送SNMP數據包
-D TOKEN 對於給定的TOKEN(標誌)打開調試信息 ( -Dmib_init)
-I [-]INITLIST 對於要初始化的MIB列表顯示
-M DIRLIST 指定MIB庫的路徑
-V 顯示詳細信息
-Le 把錯誤信息輸出到日誌中
-Lf FILE 把錯誤信息輸出到指定文件中
-m MIBLIST use MIBLIST instead of the default MIB list
 

源碼安裝:http://gsliuyang.blog.51cto.com/286500/108659

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章