這篇文章主要紀錄在CentOS如何設定Net-SNMP,使得能夠轉發(Forwarding)的方法
SNMP簡介
簡單網路管理協定(Simple Network Management Protocol; SNMP),是用以管理網路設備之通訊協定
SNMP 是用於管理和監視網路元素的廣泛接受的通訊協定之一
SNMP Trap Forwarding
由發送者發送一個SNMP Trap給Forwarder,Forwarder再將SNMP Trap轉發至Receiver
設定與查看Debug log
設定log方便在trace問題的時候看
在 /etc/sysconfig/snmptrapd 加上下方指令:
OPTIONS="-Lsd -Lf /var/log/snmptrapd.log"
接著就可以在 /var/log/snmptrapd.log 中查看log
或者使用以下指令查看
tail -f /var/log/snmptrapd.log
SNMPv1 Trap Forward 設定
/etc/snmp/snmptrapd.config
authCommunity是給SNMP V1 / V2 使用的
參數說明:
execute:設定 commuinty 是否具有 Handler 的權限。
log:設定 commuinty 是否具有 Trap 紀錄在 syslog 的權限。
net:設定 commuinty 是否具有 Trap Forward 出去的權限。
然後最重要的forward就是要設定要轉發的目標機器IP
default指的是只要接收到SNMP Trap就進行轉發,也可以設定收到特定的OID才做forward
SNMPv3 Trap Forward 設定
/etc/snmp/snmptrapd.config
createUser -e engineID username [ Authentication Protocol ] userpassword [ Encryption Protocol ] privpassword
這個指令是給SNMPv3設定使用的
▲圖片上為沒有設定authentication, encryption protocol的方式
-e engineID 對於SNMPv3 Trap是必要的設定,必須和發送者的engine id 是相同的
Net-SNMP不同版本在針對authentication, encryption protocol是有一些限制的
CentOS7的Net-SNMP最新版本為5.7.2,並不支援SHA2;CentOS8的Net-SNMP為5.8,支援SHA2
Note: 如果自己要將Net-SNMP升級至 5.8以上,記得也要同時將openssl升級到1.1.1
否則會一樣無法支援SHA2
▲針對authentication設定為SHA-224的方法,沒有設定encryption
▲針對authentication設定為SHA-224,設定encryption為AES的方法
可以自己在CentOS使用指令測試是否設定成功
把自己的本機當作Sender和Fowarder,並確認Receiver是否有收到對應的SNMP Trap
snmptrap -e 0x80001370017f000001 -v 3 -u Mark -a SHA-224 -A 12345678 -x AES -X 12345678 -l authPriv localhost 1 0
下完指令後可以確認兩件事:
1. 去/var/log/snmptrapd.log 中查看log,是否有收到SNMP Trap
2. 確認Receiver是否有收到對應的SNMP Trap
設定authentication, encryption實驗結果如下表
若要使用更高強度的authPriv像是AES-192或AES-256,必須要自己重編譯net-snmp
刪除User的方式
如果同一個user設定過某一種authentication,再設定別種會沒用,
例如: 剛剛我們把Mark設定成SHA-224,如果改成SHA-256,這樣的設定會無效
解決的辦法是要把user刪除,或者是新增一個新的user而不修改本來user資訊
要刪除user有兩種方式:
方法1:
- systemctl stop snmptrapd
- delete /var/lib/net-snmp/snmptrapd.conf all about usmUser
方法2:
使用 snmpusm 指令刪除,參考 這篇
個人偏好使用第一種方式,比較簡單,而且可以一次刪除多個user,不用一個一個下指令
Reference:
[1] https://blog.xuite.net/aflyfish/blog/86126735-%5B+NetSNMP+%5D+snmptrapd.conf+%E8%A8%AD%E5%AE%9A
[2] https://blog.csdn.net/minxihou/article/details/78424495
[3] https://www.mankier.com/5/snmpd.conf#Agent_Behaviour-SNMPv3_with_the_User-based_Security_Model_(USM)
[4] https://blog.xuite.net/aflyfish/blog/86126785-%5B+NetSNMP+%5D+SNMP+v3
[5] https://tonylin.idv.tw/dokuwiki/doku.php/snmp:snmptrap:net-snmp_with_snmpv3trap
[6] http://net-snmp.sourceforge.net/wiki/index.php/Strong_Authentication_or_Encryption