概念: 參考
SNMP在v3,有三種安全等級:1. noAuthNoPriv 2. authNoPriv 3. authPriv。
Auth為Authentication,也就是對於帳密進行雜湊運算。
Priv為Privacy,也就是對於內容進行加密運算。
※提示:雜湊是破壞性的,不可逆向還原。加密可以逆性還原。
v3的User會採取哪種安全級別,是取決於User屬於甚麼Group。因此要先建立Group並設定其安全級別,再設定User。如果沒有設定Group,是無法通過驗證的。再設定User時,其安全級別也要跟其Group一致。
環境:
目標:
- R1使用v3,安全等級noAuth,成功添加Sensor。
- R2使用v3,安全等級authNoPriv,成功添加Sensor。
- R2使用v3,安全等級authPriv,成功添加Sensor。
設定:

!R1 noAuthNoPriv
conf t
int g0/0
ip addr 11.12.13.10 255.255.255.0
no sh
snmp-server group admin1 v3 noauth
snmp-server user jn1 admin1 v3
!R2 authNoPriv
conf t
int g0/0
ip addr 11.12.13.20 255.255.255.0
no sh
snmp-server group admin2 v3 auth
snmp-server user jn2 admin2 v3 auth sha 12345678
!R3 authPriv
conf t
int g0/0
ip addr 11.12.13.30 255.255.255.0
no sh
snmp-server group admin3 v3 priv
snmp-server user jn3 admin3 v3 auth sha 12345678 priv aes 128 12345678
! aes 128 是PRTG能支援的上限,用192或256都無法讀取到
其餘在PRTG網頁版手動設定,

最後使用wireshark錄封包,觀察三者的差異。

所有的封包都可以看到Username,如果使用noAuth就可以直接被看光,如沒有ACL就可以隨便拿一個外接設備去看MD的資訊,再不小心就能讀寫了。
而authNoPriv,可以看到向MD要了甚麼資訊。
最後authPriv,看不到了要了甚麼。
雖然破解所需的必要資訊都在封包上看得到,不過要破解速度上太難。
除錯 TroubleShooting
錯誤代碼:
#16: Authorization Error:檢查MD的group跟user是否一致,user所屬的groupg是否存在。
#33: SNMPERR_UNKNOWN_USER_NAME:檢查NMS或MD的輸入的User Name是否正確。
#34: SNMPERR_UNSUPPORTED_SEC_LEVEL:檢查NMS是否有多輸入,如noAuth的User卻輸入了密碼。
#35: SNMPERR_AUTHENTICATION_FAILURE:檢查NMS與MD的Authentication是否一致。
SNMP的TroubleShooting通常是檢查兩端設定是否一致,這也是最常見的錯誤,如漏打一個字母。面對這種可能,只有眼睛張大一點,看仔細一點去發現。需要「一致性」的設定,建議都是複製貼上會保險一點。手Key很難保證不手抖一下。