web-dev-qa-db-ja.com

特定のenginedIDなしでsnmpv3トラップを受信する方法は?

Linuxでnet-snmpパッケージのsnmptrapdを使用しています。 snmpトラップを処理するPerlスクリプトを作成しようとしています。私はすでにそのようなスクリプトを持っており、snmp v1、v2cトラップ、およびsnmpv3トラップで機能しますが、configとコマンド送信トラップの両方でengineIDを明示的に指定した場合に限ります。しかし、linkDownトラップを送信するようにCiscoルーターを構成すると、engineIDとしていくつかの余分なバイトを含むMACアドレスが使用されます。そして、wiresharkのインターフェースにトラップが到着するのを見ることができますが、snmptrapdは何もしません。 engineIDを指定せずに、認証されたユーザーによるすべてのトラップを受け入れるようにsnmptrapdを構成することは可能ですか?

これが私のsnmptrapd.confです

# Example configuration file for snmptrapd
#
# No traps are handled by default, you must edit this file!
#
createUser -e 0x0102030405 myuser MD5 mypassword DES myotherpassword
createUser -e 0x0102030405 myuser2 MD5 mypassword DES myotherpassword
createUser -e 0x0102030406 myuser2 MD5 mypassword DES myotherpassword
createUser Cisco SHA Cisco123 DES Cisco123
authUser log,execute myuser
authUser log,execute myuser2
authUser log,execute Cisco
authCommunity   log,execute public
Perl do "/usr/local/share/snmp/snmptrapdhandler.pl";

私はFedora21linuxを使用しています。

$ uname -a
Linux 4.1.13-100.fc21.x86_64 #1 SMP Tue Nov 10 13:13:20 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

net-snmpのバージョンはnet-snmp-5.7.2-23.fc21.x86_64

2
user339597

EngineIDを必要とせずにsnmptrapdを使用できるようになるには、これを理解するのに長い時間がかかりました。これは、まったく新しいCisco Nexusスイッチ(nx-os)で機能し、これが他の誰かに役立つことを願っています。

format2 %V\n% Agent Address: %A \n Agent Hostname: %B \n Date: %H - %J - %K - %L - %M - %Y \n Enterprise OID: %N \n Trap Type: %W \n Trap Sub-Type: %q \n Community/Infosec Context: %P \n Uptime: %T \n Description: %W \n PDU Attribute/Value Pair Array:\n%v \n -------------- \n

/etc/snmp/snmptrapd.conf:

traphandle default /etc/snmp/send_to_email_script # make sure it is executable
traphandle default /etc/snmp/snmp-traphandle_script # can be any program
doNotLogTraps no
authUser log,execute,net ${snmp_user} # username variable
createUser ${snmp_user} MD5 ${snmp_auth} AES-128 ${snmp_auth}

ユーザーの例は次のとおりです。

# createUser networkmonitor MD5 Cisco1234! AES-128 Cisco1234!

Ciscoスイッチでは、このユーザが同じユーザ名/パスワードとpriv/authで存在することを確認してください。また、snmp Hostを追加します(これは、トラップをsnmptrapdに送信する方法です)。

# snmp-server Host ip_address traps version 3 priv networkmonitor

確認してください ip_addressはスイッチIPではなく、snmptrapdレシーバーのIPです

1
mode-js

Snmpv3を使用するCiscoデバイスからengine-idを指定せずにトラップを受信します。ただし、CiscoデバイスではMD5/DESを使用しています。

Linux 02asdf 4.4.0-38-generic #57-Ubuntu SMP Tue Sep 6 15:42:33 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

ii  snmp                                  5.7.3+dfsg-1ubuntu4     AMD64                   SNMP (Simple Network Management Protocol) applications
ii  snmp-mibs-downloader                  1.1                     all                     Install and manage Management Information Base (MIB) files
ii  snmpd                                 5.7.3+dfsg-1ubuntu4     AMD64                   SNMP (Simple Network Management Protocol) agents
ii  snmpsim                               0.2.4-1                 all                     SNMP agent simulator
ii  snmptrapd                             5.7.3+dfsg-1ubuntu4     AMD64                   Net-SNMP notification receiver
ii  snmptt                                1.4-1                   all                     SNMP trap handler for use with snmptrapd
0
nafetsreuab