我在 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