天天看點

SNMP V3錯誤筆記整理vi /usr/local/certifier/conf/engine.conf

應用場景:

Linux系統中,配置PKI NE的snmp協定,驗證snmp v3能從網元walk回資料。

配置檔案:

vi /usr/local/certifier/conf/engine.conf

把security-name配置為你設定的使用者名;

    security-passphrase密碼通過指令把明文變為密文(在PKI網元上執行該指令),配置到上述檔案中:

[[email protected] bin]# echo 明文密碼 | bin/ssh-encrypt -E -s -x -c aes-cbc

e.g.:

[[email protected] ~]# echo testtest | /usr/local/certifier/bin/ssh-encrypt -E -s -x -c aes-cbc

6b1c33cb6daa9834ce6e2dd57100495b

[[email protected] ~]#

發現問題:

工作中,在Linux上執行SNMP V3的指令:

[[email protected] bin]# snmpwalk -v 3 -u testtest -l authPriv -a MD5 -A testtest -x DES -X testtest 10.68.179.158

snmpwalk: Unknown user name (Sub-id not found: (top) -> sysDescr)

反複使用建立使用者的指令,snmpwalk傳回結果一樣。

找到原因:

找到snmpd.conf檔案,如下執行:

[[email protected] net-snmp]# locate snmpd.conf

/etc/snmp/snmpd.conf

/etc/snmp/snmpd.conf.gq20140224

/etc/snmp/snmpd.conf.sj20140221

/usr/local/net-snmp/share/snmp/snmpd.conf

/usr/share/man/man5/snmpd.conf.5.gz

/var/lib/net-snmp/snmpd.conf

[[email protected] net-snmp]# 

/var/lib/net-snmp/snmpd.conf這個檔案裡面應該儲存解析後的賬号資訊,但是由于讀寫有問題,導緻檔案裡面一直儲存的最原始的資訊,沒有轉換。是以每次snmpwalk會提示找不到使用者Unknown user name。資訊如下:

[[email protected] net-snmp]# cat /var/lib/net-snmp/snmpd.conf

createUser testtest MD5 "testtest" DES testtest

解決辦法:

1、啟動snmpd程序

[[email protected] ~]# service snmpd restart

2、删除/var/lib/net-snmp/snmpd.conf檔案

[[email protected] ~]# rm /var/lib/net-snmp/snmpd.conf

3、關閉snmpd程序,檢查是否自動生成/var/lib/net-snmp/snmpd.conf檔案,并且權限為600

[[email protected] ~]# service snmpd stop

關閉snmpd成功,沒有/var/lib/net-snmp/snmpd.conf檔案自動生成。該檔案應該會在第4步執行建立使用者指令後才生成。

4、建立snmp使用者

[[email protected] bin]# locate net-snmp*

/usr/bin/net-snmp-create-v3-user

/usr/share/man/man1/net-snmp-create-v3-user.1.gz

使用/usr/bin/net-snmp-create-v3-user腳本執行以下指令(在789node04上執行):

/usr/bin/net-snmp-create-v3-user -A username -X password -a MD5 -x DES username

e.g.:

/usr/bin/net-snmp-create-v3-user -A testtest -X testtest -a MD5 -x DES testtest

5、删除/etc/snmp/snmpd.conf裡多餘的rwuser

6、啟動snmp,檢查message是否打開/var/lib/net-snmp/snmpd.conf失敗的資訊,如果沒有就基本成功了,可以在看看/var/lib/net-snmp/snmpd.conf裡面的資訊是否被編譯。

[[email protected] ~]# service snmpd start

[[email protected] ~]# vi /var/lib/net-snmp/snmpd.conf

engineBoots 18

oldEngineID 0x80001f8804636572746966696572

若是被編譯,那麼snmpd.conf檔案的最後就會出現以上内容。

7、使用snmpwalk測試,是否可以抓取資訊。

[[email protected] ~]# snmpwalk -v 3 -u testtest -l authPriv -a MD5 -A testtest -x DES -X testtest 10.68.179.158

SNMPv2-MIB::sysDescr.0 = STRING: Linux localhost.localdomain 2.6.32-358.el6.x86_64 #1 SMP Fri Feb 22 00:31:26 UTC 2013 x86_64

SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10

DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (827528) 2:17:55.28

SNMPv2-MIB::sysContact.0 = STRING: syscoco

SNMPv2-MIB::sysName.0 = STRING: localhost.localdomain

SNMPv2-MIB::sysLocation.0 = STRING: sysloco

SNMPv2-MIB::sysORLastChange.0 = Timeticks: (1) 0:00:00.01

SNMPv2-MIB::sysORID.1 = OID: SNMP-MPD-MIB::snmpMPDMIBObjects.3.1.1

SNMPv2-MIB::sysORID.2 = OID: SNMP-USER-BASED-SM-MIB::usmMIBCompliance

SNMPv2-MIB::sysORID.3 = OID: SNMP-FRAMEWORK-MIB::snmpFrameworkMIBCompliance

出現以上資訊就是可以正常抓取資訊了。

SNMP V3常見問題Troubleshooting:

1. snmpwalk: Timeout (Sub-id not found: (top) -> sysDescr)

通常使用SNMP協定版本v3時會遇到這類錯誤,可能的原因有:

 a、IP位址通路不到?

    您可以使用 ping, traceroute/tracert 測試該IP。

 b、端口通路不到?

    您可以 netstat 檢視該端口是否正常監聽, Linux下 ps 檢視 snmpd 程序是否允許, windows 下看服務是否開啟。 

 c、防火牆沒有開放該端口?

    嘗試關掉防火牆試試,如果關掉防火牆能成功,則說明是防火牆的問題,具體防火牆配置的方法請查詢防火牆相關資料。

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

通常使用SNMP協定版本v3時會遇到這類錯誤,可能的原因有:

  a、密碼填寫錯誤?

  b、加密方法 (MD5/SHA) 填寫錯誤?

3. snmpwalk: Unknown user name (Sub-id not found: (top) -> sysDescr)

通常使用SNMP協定版本v3時會遇到這類錯誤,可能的原因有:

  a、使用者名填寫錯誤

  b、還是使用初始的使用者名,執行上文操作步驟解決。