iT邦幫忙

2025 iThome 鐵人賽

DAY 16
0
Security

從1到2的召喚羊駝補破網之旅系列 第 16

Day 16:羊駝跟傑生不太熟啊

  • 分享至 

  • xImage
  •  

[鐵人賽] Day 16:解決 OpenAudIT 社群版本設備名單匯入實戰

🕹 前情提要

大約一個月前,主管交辦我要把前輩研究過的 OpenAudIT 架起來。
當時其實也有討論過 GLPI、Observium、LibreNMS,但最後還是挑了 OpenAudIT。

結果一上線,馬上遇到一個大刺 —— unknown 設備一堆

https://ithelp.ithome.com.tw/upload/images/20250930/20165500f6nnTLMsSa.png


🤔 問題點

雖然 SNMP 服務是有回應的,但自動掃描卻失敗。
手動測試:

snmpget -v2c -c public 140.112.xxx.77 SNMPv2-MIB::sysDescr.0
# => HP LaserJet MFP M426fdw

換到另一台:

snmpget -v2c -c public 140.112.xxx.228 SNMPv2-MIB::sysDescr.0
# => STRING: HP ETHERNET MULTI-ENVIRONMENT

甚至 nmap 都能抓到:

nmap -sU -p161 --script snmp-info --script-args=snmpcommunity=public -Pn 140.112.xxx.228

但 OpenAudIT 就是「認不得」→ 結論:UDP 161 回應有問題,導致 自動偵測失敗

更慘的是,社群版 API 文件說有「匯入功能」,結果壓根找不到。


🔧 解法:自己寫匯入腳本

既然羊駝(Ollama)幫不上忙,那就自己來。
我寫了一個 snmp_to_csv.sh,能把多台設備的 SNMP 資訊抓出來轉 CSV。

關鍵程式

chmod +x snmp_to_csv.sh
SNMP_COMM=public SNMP_VER=2c ./snmp_to_csv.sh 140.112.xxx.77 > devices.csv

輸出結果:

ip,name,hostname,sysDescr,sysName,sysObjectID,sysUpTime,model,serial,manufacturer,mac,snmp_version,snmp_oid,snmp_enterprise_id,last_seen
140.112.xxx.77,"140.112.xxx.77","NPI27C868","HP ETHERNET MULTI-ENVIRONMENT,SN:PHB8K2T2RS,FN:1M722C7,SVCID:27130,PID:HP LaserJet MFP M426fdw","NPI27C868","SNMPv2-SMI::enterprises.11.2.3.9.1","40:9:45:42.33","HP LaserJet MFP M426fdw","PHB8K2T2RS","Hewlett Packard","00:11:22:33:44:55","2c","serial_oid","1","2025-09-30 06:14:38"

📥 匯入 OpenAudIT

拿這份 CSV,再轉成 OpenAudIT JSON 格式,就能補上原本抓不到的設備資訊。

https://ithelp.ithome.com.tw/upload/images/20250930/20165500025FJecwXk.png

原始 unknown JSON

{
  "id": 1288,
  "attributes": {
    "name": "140.112.xxx.77",
    "ip": "140.112.xxx.77",
    "hostname": "",
    "manufacturer": "",
    "model": "",
    "serial": ""
  }
}

修改後 JSON

{
  "id": 1288,
  "attributes": {
    "name": "140.112.xxx.77",
    "ip": "140.112.xxx.77",
    "hostname": "NPI27C868",
    "manufacturer": "Hewlett Packard",
    "model": "HP LaserJet MFP M426fdw",
    "serial": "PHB8K2T2RS",
    "sysDescr": "HP ETHERNET MULTI-ENVIRONMENT..."
  }
}

結果:unknown → 正常「HP Printer」!


📊 解法流程圖

flowchart TD
    A[設備 SNMP] -->|snmpget / snmpwalk| B[snmp_to_csv.sh]
    B --> C[輸出 CSV]
    C --> D[轉換成 JSON 格式]
    D --> E[OpenAudIT 匯入]
    E --> F[unknown → 正常顯示]

✅ 結論

  • OpenAudIT 社群版的 自動掃描不可靠(尤其是 SNMP UDP 回應怪異時)。
  • 羊駝幫忙寫腳本可以,但最後還是得人工 debug。
    有些坑 AI 填不掉,只能靠自己「拉線補洞」。


上一篇
Day 15:「副本」連假最後一天技術文章讀後感
下一篇
Day 17 :插播文[副本]資安院推動賞金獵人
系列文
從1到2的召喚羊駝補破網之旅18
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言