這篇文章主要紀錄在CentOS如何設定Net-SNMP,使得能夠轉發(Forwarding)的方法

 

SNMP簡介

簡單網路管理協定(Simple Network Management Protocol; SNMP),是用以管理網路設備之通訊協定

SNMP 是用於管理和監視網路元素的廣泛接受的通訊協定之一

 

SNMP Trap Forwarding

SNMP Trap Forwarding.png

由發送者發送一個SNMP Trap給Forwarder,Forwarder再將SNMP Trap轉發至Receiver

 

設定與查看Debug log

設定log方便在trace問題的時候看

在 /etc/sysconfig/snmptrapd 加上下方指令:

OPTIONS="-Lsd -Lf /var/log/snmptrapd.log"

 

debug log.png

接著就可以在 /var/log/snmptrapd.log 中查看log

或者使用以下指令查看

tail -f /var/log/snmptrapd.log 

 

SNMPv1 Trap Forward 設定

/etc/snmp/snmptrapd.config

SNMPv1.png

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設定使用的

SNMPv3_noauth.png

▲圖片上為沒有設定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

 

SNMPv3_sha224.png

▲針對authentication設定為SHA-224的方法,沒有設定encryption

 

SNMPv3_sha224_AES.png

▲針對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實驗結果如下表

result.png

若要使用更高強度的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

remove user.png

方法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

arrow
arrow

    Mark Zhang 發表在 痞客邦 留言(0) 人氣()