Zabbix

配置snmptrapd以接收SNMPv3通知

2021-12-01  本文已影响0人  Habit_1027

一、SNMPv3 INFORMs(通知) 和 SNMP TRAPs

具有基于用户的安全模型(USM)的SNMPv3为SNMPv3应用程序使用具有权威性的EngineID标识符(即控制信息流的标识符):
对于SNMPv3 TRAPs,权威引擎是发送trap的引擎
使用SNMPv3 INFORMs,权威引擎是接收trap的引擎
SNMPv3 USM用户由权威EngineID和用户名的组合唯一定义

二、配置snmptrapd以接收SNMPv3通知

2.1、配置SNMPv3 trap用户

由于发送trap的应用程序是授权的,这意味着在snmptrapd中创建的用户必须绑定到发送trap的EngineID。您可以在/var/net- snmp/snmptrapd.conf文件中创建一行,如下所示:

 createUser -e engineID myuser SHA "my authentication pass" AES "my encryption pass"

# engineID 将要发送trap的应用程序的EngineID
# myuser 将要发送trap的USM用户名
# SHA  身份验证类型(SHA或MD5,其中SHA更好)
# my authentication pass 用于生成机密身份验证密钥的身份验证密码短语。如果包含空格,请用引号将其括起来
# AES 要使用的加密类型(AES或DES,AES更好)
# my encryption pass 用于生成机密加密密钥的加密密码短语。如果包含空格,请用引号将其括起来。如果您将其禁用,它将设置为与身份验证密码相同的密码短语。

2.2、配置SNMPv3 INFORM (通知)用户

由于接收通知的应用程序是权威的,这意味着snmptrapd应用程序的EngineID将用于帮助唯一标识用户。只需在/var/net-snmp/snmptrapd.conf文件中创建一行,即可在snmptrapd应用程序中创建一个新的SNMPv3用户,该用户与snmptrapd引擎相关联

 createUser  myuser SHA "my authentication pass" AES "my encryption pass"

三、授权用户对收到的通知执行操作

现在您的用户已经被正确创建,您仍然需要允许snmptrapd处理traps,并通知被发送的用户。例如,仅仅因为已经收到请求并且(加密)验证了它是真实的,如果不允许的话,snmptrapd仍然不会对通知做任何事情, 在/etc/snmp/snmptrapd.conf设置

 authUser log,execute,net myuser
#这一行允许snmptrapd接收通过myuser密码日志验证的traps,执行命令并转发它们。(默认情况下,snmptrapd只记录收到的通知,但可以设置为执行命令并将通知转发到其他地方)
#如果要接收随noAuthNoPriv发送的v3 traps(或通知),则需要将noauth添加到authUser行
 authUser log,execute,net myuser noauth

四、案例

4.1、SNMPv3 TRAP

1、为此,我编写一个engineID使用:0x800000001020304
/tmp/snmptrapd.conf文件中,输入

createUser -e 0x8000000001020304 traptest SHA mypassword AES
authuser log traptest

2、然后启动指向该文件的snmptrapd(在前台运行,仅使用该配置文件并记录到stderr)

 snmptrapd -f -C -c /tmp/snmptrapd.conf -Le

3、然后运行snmptrap(在另一个窗口中)发送链接trap

 snmptrap -v 3 -n "" -a SHA -A mypassword -x AES -X mypassword -l authPriv -u traptest -e 0x8000000001020304 localhost 0 linkUp.0

4、可以在运行snmptrapd的窗口的输出中看到这一点

2021-12-01 14:34:49 localhost [UDP: [127.0.0.1]:54815->[127.0.0.1]:162]:
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (0) 0:00:00.00 SNMPv2-MIB::snmpTrapOID.0 = OID: IF-MIB::linkUp.0

Success!

4.2、SNMPv3 INFORM (通知)

1、在/tmp/snmptrapd.conf文件中,输入

createUser informtest SHA mypassword AES
authuser log informtest

2、然后启动指向该文件的snmptrapd(在前台运行,仅使用该配置文件并记录到stderr)

 snmptrapd -f -C -c /tmp/snmptrapd.conf -Le

3、然后运行snmptrap(在另一个窗口中)发送链接通知(-Ci开关使snmptrap发送通知)

 snmptrap -Ci -v 3 -a SHA -A mypassword -x AES -X mypassword -l authPriv -u informtest localhost 0 linkUp.0

4、可以在运行snmptrapd的窗口的输出中看到这一点

2021-12-01 14:44:04 localhost [UDP: [127.0.0.1]:60098->[127.0.0.1]:162]:
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (0) 0:00:00.00 SNMPv2-MIB::snmpTrapOID.0 = OID: IF-MIB::linkUp.0

Success!

上一篇 下一篇

猜你喜欢

热点阅读