SNMP

Simple Network Management Protocol(SNMP)是一個用於管理網路設備的協定,可以取得網路設備的設定與資訊,又或者去設定網路設備。由SNMP的觀念衍生出許多高階的Application,基本上大廠牌都有一套自己的軟體,如Aruba Airwave等。SNMP的使用上可是相當頻繁,成為一位「P級」的一定得去學學。

本文根據「維基百科」為主,把資料做整理,並做一些解釋。

Protocol NameVersionPortFunctionRFC
SNMP1161
162
簡單的網路管理RFC 1155
RFC 1156
RFC 1157
SNMP2c161
162
可以一次詢問多種資訊,初階加密RFC 1901–RFC 1908
SNMP3161
162
SNMP第三版提供三項重要的服務:認證、隱私和存取控制RFC3411-RFC3418
最主要使用的是2c跟3版

一個SNMP管理的網路由下列三個關鍵元件組成:

  1. 網路管理系統(NMSs,Network-management systems)
  2. 被管理的裝置(managed device)
  3. 代理者(agent)

以戰場為例:agent是指揮官,被管理裝置(MD)是它的手下,網路管理系統(NMS)則是將軍。

今天要詢問狀況,會由agent去向MD問,問說哪個介面目前流量如何?問你叫甚麼名字?但這是人的問法,換成機器,流量、Hostname這些資訊放在管理資訊庫(MIB,Management Information Base)的特定位置,如:1.3.6.1.2.1.25.3.3.1.2 表示要監視所有 CPU Core 使用狀況。但是,不同家的資訊位置會略有不同,正確位置可以去其官網查表。

再簡單敘述一遍,如果想要知道甚麼資訊,就去MIB查該參數存放至哪裡,得到一串類似「1.2.3.4.5.6.7.8.9」的字串,agent去向MD問這字串,MD就會回覆對應的參數。

使用概念:

SNMP在1版跟2c版都是以 community 作為通關口號,只要agent跟MD兩邊的community string對得上,就可以順利管理。但這樣的安全性是低的,它太簡單了。

SNMP在3版同時強化了驗證與加密功能,可以使用帳號密碼去做驗證,並且使用加密讓關鍵訊息增加破解的難度。

為了安全,所以多半使用v3的authPriv。要是自家SNMP的方式被破解,相當於控制權會被拿走,想一想其實相當可怕。

實戰練習: