文章目錄
- 說明
- SNMP服務的安裝
- 本機連接SNMPV3操作
- MIB Browser連接SNMPV3
- 問題總結
- 密碼過短
- 權限配置錯誤,導致OID不存在

說明
- 工具
- 建議嘗試專業版ireasoning MIB brower,因為只有專業版支持SNMP v3的連接。當然,也可以嘗試其他SNMP客戶端工具
- 服務器類型
- 本文章使用armbian設備進行操作和講解
SNMP服務的安裝
- 更為詳細的安裝知道,參看armbian系統安裝和卸載snmp服務(SNMPV2操作版本)
- 這里簡單演示基本的操作
-
確保已安裝相應的SNMP軟件包,安裝完畢后,SNMP服務將自動啟動
sudo apt update sudo apt install snmp snmpd snmp-mibs-downloader sudo systemctl status snmpd
-
打開SNMP配置文件以進行編輯:
sudo vim /etc/snmp/snmpd.conf
-
自定義的用戶名、密碼和驗證協議(MD5、SHA):
createUser readWriteUser MD5 "your_auth_passphrase" DES "your_privacy_passphrase" # readWriteUser SNMP v3用戶的名稱 需要選擇一個自定義的名稱 # MD5 "密碼" 至少8位 # DES "協議" 至少8位
createUser
: 在SNMP v3代理中創建一個新的用戶。MD5
: 這是認證協議的選擇,使用MD5算法進行身份驗證。認證協議用于驗證用戶的身份,并確保消息的完整性,防止篡改。"your_auth_passphrase"
: 這是用于身份驗證的密碼短語。密碼短語用于生成認證密鑰,用于進行身份驗證。DES
: 加密協議的選擇,使用DES算法進行數據加密。加密協議用于保護傳輸的數據,防止被竊聽和篡改。"your_privacy_passphrase"
: 用于加密的密碼短語。密碼短語用于生成加密密鑰,用于對數據進行加密和解密。
-
添加以下行來定義SNMP v3用戶的訪問權限:
rouser yuanyou authPriv
- SNMPv3部分完整的配置如下:
# SNMPv3 doesn't use communities, but users with (optionally) an # authentication and encryption string. This user needs to be created # with what they can view with rouser/rwuser lines in this file. # # createUser username (MD5|SHA|SHA-512|SHA-384|SHA-256|SHA-224) authpassphrase [DES|AES] [privpassphrase] # e.g. # createuser authPrivUser SHA-512 myauthphrase AES myprivphrase # # This should be put into /var/lib/snmp/snmpd.conf # # rouser: a SNMPv3 read-only access username # arguments: username [noauth|auth|priv [OID | -V VIEW [CONTEXT]] rouser authPrivUser authpriv -V systemonly createUser yuanyou MD5 "yuanyou123" DES "yuanyou123" rouser yuanyou authPriv
-
保存并關閉文件(按Ctrl+X,然后按Y保存)
-
重啟SNMP服務以使配置更改生效:
sudo systemctl restart snmpd
-
客戶端連接成功的相應的內容
Response: SNMPv3 report received from remote agent. User profile name: armbian Security user name: authOnlyUser Security engine ID: 80.00.1F.88.80.61.76.AF.15.4F.B4.73.65.00.00.00.00 (hex) Context name: authOnlyUser Context engine ID: 80.00.1F.88.80.61.76.AF.15.4F.B4.73.65.00.00.00.00 (hex) Authentication protocol: HMAC MD5 Privacy protocol: None Security level: Authentication Security model: USM 1: usmStatsUnknownUserNames.0 (counter) 2
- User profile name: 用戶配置文件名,表示該SNMP v3用戶的配置文件名稱為"armbian"。
- Security user name: 安全用戶名稱,表示該SNMP v3用戶的用戶名為"authOnlyUser"。
- Security engine ID: 安全引擎ID,用于唯一標識SNMP v3用戶和設備。
- Context name: 上下文名稱,表示該SNMP v3用戶的上下文名稱與用戶名相同,為"authOnlyUser"。
- Context engine ID: 上下文引擎ID,與安全引擎ID相同。
- Authentication protocol: 認證協議,表示該SNMP v3用戶使用的認證協議為HMAC MD5。
- Privacy protocol: 加密協議,表示該SNMP v3用戶沒有配置加密協議(為"None")。
- Security level: 安全級別,表示該SNMP v3用戶的安全級別為"Authentication",表示僅進行身份驗證。
- Security model: 安全模型,表示該SNMP v3用戶使用的安全模型為USM(用戶安全模型)。
本機連接SNMPV3操作
-
在Armbian設備上使用SNMPv3連接命令
snmpget -v3 -l authPriv -u yuanyou -a MD5 -A "yuanyou123" -x DES -X "yuanyou123" <IP地址或主機名> <OID>
-
參數說明如下:
-v3
:指定使用SNMPv3版本。-l authPriv
:指定安全級別為認證與加密。-u yuanyou
:指定SNMPv3用戶的用戶名為"yuanyou"。-a MD5
:指定認證算法為MD5,與createUser
行中的認證算法一致。-A "yuanyou123"
:指定認證密碼為"yuanyou",與createUser
行中的認證密碼一致。-x DES
:指定加密算法為DES,與createUser
行中的加密算法一致。-X "yuanyou123"
:指定加密密碼為"yuanyou",與createUser
行中的加密密碼一致。<IP地址或主機名>
:替換為Armbian設備的IP地址或主機名。<OID>
:替換為您要查詢的OID。
-
例如,獲取本機設備并獲取sysName的值:
snmpget -v3 -l authPriv -u yuanyou -a MD5 -A "yuanyou" -x DES -X "yuanyou" 127.0.0.1 sysName.0
-
查找設備支持的 OID 列表:
snmpwalk -v3 -l authPriv -u yuanyou -a MD5 -A "yuanyou123" -x DES -X "yuanyou123" 127.0.0.1
MIB Browser連接SNMPV3
- 說明MIB Browser個人免費版只能使用snmpv1/v2 無法使用v3,如有長期使用需求,請使用其他工具。專業版有30天的免費試用
- 填寫基本的連接信息
- 然后就可以正常使用
問題總結
密碼過短
root@armbian:~# snmpget -v3 -l authPriv -u yuanyou -a MD5 -A "yuanyou" -x DES -X "yuanyou" 127.0.0.1 sysName.0
Error: passphrase chosen is below the length requirements of the USM (min=8).
snmpget: (The supplied password length is too short.)
Error generating a key (Ku) from the supplied authentication pass phrase.
- 錯誤提示指出密碼長度不符合USM(用戶安全模型)的要求。默認情況下,USM要求密碼長度至少為8個字符。
權限配置錯誤,導致OID不存在
root@armbian:~# snmpget -v3 -l authPriv -u yuanyou -a MD5 -A "yuanyou123" -x DES -X "yuanyou123" 127.0.0.1 sysName.0
SNMPv2-MIB::sysName.0 = No Such Object available on this agent at this OID
- 當時的配置文件中配置的權限命令有誤,注意authPriv才是正確的寫法
rouser yuanyou auth Priv