如何在没有特定 enginedID 的情况下接收 snmp v3 陷阱?

如何在没有特定 enginedID 的情况下接收 snmp v3 陷阱?

我在 Linux 上使用 net-snmp 包中的 snmptrapd。我正在尝试编写一些 perl 脚本来处理 snmp 陷阱。我已经有这样的脚本,它可以与 snmp v1、v2c 陷阱和 snmpv3 陷阱一起使用,但只有当我在配置和发送陷阱的命令中明确指定 engineID 时才有效。但是当我配置 cisco 路由器向我发送 linkDown 陷阱时,它使用 MAC 地址和一些额外字节作为 engineID。我可以看到陷阱到达 wireshark 中的接口,但 snmptrapd 什么也不做。是否可以配置 snmptrapd 以接受经过身份验证的用户的所有陷阱,而无需指定 engineID?

这是我的 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

答案1

我花了很长时间才弄清楚如何在不需要 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 交换机上,确保此用户存在,并且具有相同的用户名/密码和权限/身份验证。还要添加 snmp 主机(这是将陷阱发送到 snmptrapd 的方式):

# snmp-server host ip_address traps version 3 priv networkmonitor

确保ip_address不是交换机 ip,而是 snmptrapd 接收器的 ip

答案2

我们从使用 snmpv3 的 cisco 设备接收到未指定引擎 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

相关内容