Net-SNMP with SNMPv3 Trap

記錄在CentOS上設定Net-SNMP能轉發SNMPv3 Trap的方法。

撰寫這篇文章時,CentOS7的Net-SNMP最新版本為5.7.2,並不支援SHA2;CentOS8的Net-SNMP為5.8,支援SHA2,因此以下實驗結果為5.8的版本。其中大部分command來自於reference中,有興趣可以自行查看:

/etc/sysconfig/snmptrapd

先加debug log:

OPTIONS="-Lsd -Lf /var/log/snmptrapd.log"
之後可以執行以下cmd去看接收trap結果:
tail -f /var/log/snmptrapd.log

/etc/snmp/snmptrapd.conf

createUser -e 0x8000123acd1ab43abbfff000fa opsviewv3 SHA mySecureAuthPassword AES mySecurePrivPassword
createUser -e 0x80001370010a921096 opsviewv4 SHA-224 mySecureAuthPassword AES mySecurePrivPassword
authUser log,execute,net opsviewv3
authUser log,execute,net opsviewv4
 
createUser -e 0x8000000001020505 ovirtengine MD5 authpass AES privpass
createUser -e 0x8000000001020606 NoAuthNoPriv
authUser log,execute,net NoAuthNoPriv noauth
authUser log,execute,net ovirtengine
 
forward default 10.146.125.32
Note. 有發現如果opsviewv3設定過SHA,再設定為SHA-224會沒用,要用snmpusm去砍user。

test commands

snmptrap -e 0x8000123acd1ab43abbfff000fa -v 3 -u opsviewv3 -a SHA -A mySecureAuthPassword -x AES -XmySecurePrivPassword -l authPriv localhost 1 0
snmptrap -e 0x80001370010a921096 -v 3 -u opsviewv4 -a SHA-224 -A mySecureAuthPassword -x AES -XmySecurePrivPassword -l authPriv localhost 1 0
snmptrap -v 3 -n "" -l noAuthNoPriv -u NoAuthNoPriv -e 0x8000000001020606 localhost 0 linkUp.0
snmptrap -v 3 -n "" -a MD5 -A authpass -l authNoPriv -u ovirtengine -e 0x8000000001020505 localhost 0 linkUp.0
snmptrap -v 3 -n "" -a MD5 -A authpass -x AES -X privpass -l authPriv -u ovirtengine -e 0x8000000001020505 localhost 0 linkUp.0
結果如下:


如果要使用更高強度的authPriv像是AES-192或AES-256,必須要自己重編譯net-snmp,可以參考這篇