第一章 讓 snmpd 能動

環境

  • 環境: OSX 10.9、有內建 Net-SNMP
  • 服務: snmpd 用 launchctl 管理、名稱為 org.net-snmp.snmpd
  • 設定檔:
    • /usr/share/snmp/snmpd.conf (這個放設定值)
    • /var/db/net-snmp/snmpd.conf (這個放帳號、密碼、傳輸金鑰)
    • /etc/snmpd.conf (這個不要用比較好)

任務

  • 使用 SNMP v3 協定
  • 使用 Read-only 方式存取
  • 監視 CPU、RAM、Disk、Mount Point

線索

snmpd 服務操作

# 停用服務
$ sudo launchctl unload /System/Library/LaunchDaemons/org.net-snmp.snmpd.plist
# 啟用服務
$ sudo launchctl load /System/Library/LaunchDaemons/org.net-snmp.snmpd.plist
# 檢查狀態
$ sudo launchctl list | grep snmp

產生 SNMP v3 用戶

  • 這個作法適用於產生第一個帳號,第二個帳號不要這樣做
  • 產生用戶前,需要停用 snmpd (參考前面的指令)
# 密碼和傳輸金鑰一樣
$ sudo net-snmp-create-v3-user -ro \
   -a SHA -A "${pass}" \
   -x AES \
   ${user}

# 密碼和傳輸金鑰分開
$ sudo net-snmp-create-v3-user -ro \
   -a SHA -A "${pass}" \
   -x AES -X "${tkey}" \
   ${user}

# 執行結果
adding the following line to /var/db/net-snmp/snmpd.conf:
   createUser ... SHA ... AES ...
adding the following line to /usr/share/snmp/snmpd.conf:
   rouser ...

測試一下

# 注意!! 這裡的 -X 參數不能省略,即使 $pass 與 $tkey 相同
$ snmpwalk -v 3 -l authPriv -u ${user} \
   -a SHA -A "${pass}" \
   -x AES -X "${tkey}" \
   localhost .1.3.6.1.4.1.2021.11

如果成功的話,會看到長這樣的訊息

SNMPv2-MIB::sysDescr.0 = STRING: Darwin ... 14.5.0 Darwin Kernel Version 14.5.0: Thu Jun 16 19:58:21 PDT 2016; root:xnu-2782.50.4~1/RELEASE_X86_64 x86_64
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.255
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (4921) 0:00:49.21
SNMPv2-MIB::sysContact.0 = STRING: [email protected]
SNMPv2-MIB::sysName.0 = STRING: ...
SNMPv2-MIB::sysLocation.0 = STRING: Unknown
SNMPv2-MIB::sysORLastChange.0 = Timeticks: (0) 0:00:00.00
...

如果密碼錯誤 (-A 參數)

snmpwalk: Authentication failure (incorrect password, community or key) (Sub-id not found: (top) -> system)

如果傳輸金鑰錯誤 (-X 參數)

Timeout: No Response from localhost

如果漏了傳輸金鑰 (-X 參數)

No log handling enabled - using stderr logging
snmpwalk: USM generic error (Sub-id not found: (top) -> system)

results matching ""

    No results matching ""