Назад | Перейти на главную страницу

Как получить ловушки snmp v3 без определенного идентификатора двигателя?

Я использую snmptrapd в Linux из пакета net-snmp. Я пытаюсь создать сценарий Perl для обработки ловушек snmp. У меня уже есть такой скрипт, и он работает с ловушками snmp v1, v2c и с ловушками snmpv3, но только когда я явно указываю engineID как в config, так и в ловушке отправки команд. Но когда я настраиваю маршрутизатор cisco для отправки мне ловушки linkDown, он использует MAC-адрес с некоторыми дополнительными байтами в качестве идентификатора двигателя. И я вижу, что ловушка поступает на интерфейс в wirehark, но snmptrapd ничего не делает. Можно ли настроить 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";

Я использую Fedora 21 linux,

$ 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

Потребовалось много времени, чтобы понять это, чтобы можно было использовать snmptrapd без необходимости в engineID. Это работает с новым коммутатором 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 (именно так вы отправляете ловушку в snmptrapd):

# snmp-server host ip_address traps version 3 priv networkmonitor

Удостовериться ip_address это не IP-адрес переключателя, а IP-адрес получателя snmptrapd

Мы получаем ловушки без указания идентификатора двигателя от устройств cisco с snmpv3. Но мы используем MD5 / DES на устройстве cisco.

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