CentOS7配置SNMPv3版本陷阱触发

前言:因为工作需要,需求在linux操作系统上能收发SNMP v3版本的消息转发,在网上找了一圈发现讲述配置SNMPv3版本trap的实在少之又少,本篇博客讲述在已有SNMP服务器正常运行并且配置了trap的情况下如何配置snmptrapd.conf配置文件接收v1,v3协议下转发的trap消息。

SNMP协议介绍

SNMP(Simple Network Management Protocol)全称是简单网络管理协议,是一个通过网络来管理网络上各个设备的用途。这里的设备可以包括工作站,路由器,交换机,集线器和其他应用配置SNMP协议的物理设备。SNMP协议处于七层网络的第四层属于传输层协议,使用UDP封装进行传输。SNMP协议被应用于来抓取网络设备,服务器硬件设备的状态从而被应用于监控软件当中。

SNMP 是一种简单的request/response协议。网络管理系统发出一个请求,被管理设备返回相应。这些行为由四种协议操作组成:Get,GetNext,Set 和Trap。Get操作使用NMS来获取agent的一个或多个对象实例。如果agent返回get操作不能提供列表所有对象实例的值,就不能提供任何值。GetNext 操作是NMS用来从agent表中获取表中下一个对象实例。Set操作NMS用来设置agent对象实例的值。trap操作用于agent向NMS通告有意义的事件。

SNMP v3协议中设置了三种加密方式,分别如下:
noAuthNoPriv 级别指明了没有认证或私密性被执行.
authNoPriv 级别指明了认证被执行但没有私密性被执行.
authPriv 级别指明了认证和私密性都被执行.

参数中auth—认证 支持MD5 or SHA,priv—加密 支持DES or RSA,这也就意味着SNMPv3中的需要配置的参数会要复杂的多。并且在SNMPv3协议中将团体名做了修改,改成了用户名(这里其实理解为一串验证字符串的概念比较合适)。当远端SNMPtrapd开启并默认监听162端口时如果snmptrapd.conf中没有配置相对应的用户名,则snmp server端发送的消息会被自动丢弃掉。v3协议版本会将用户名加引擎标识作为一组组合存在数据库中,如果远端想要收取到snmp server端的trap则同样需要提供相对的用户名和引擎标识。所以在配置SNMPtrapd的配置文件时我们遵循这个思路,首先了解到snmp server端的用户名和引擎标识(引擎标识可以通过engineID来获取),之后配置加密认证方式,最后验证结果。

获取引擎识别码

这里我们使用snmp自带的命令snmpwalk命令通过已知的engineID来获取实例的引擎标识:

#snmpwalk -v 3 -u houminxi -l authPriv -a sha -A houminxi -x aes -X houminxi 172.16.10.100 ".1.2.3.4.5.6.7.8.9.10.0"

-v表示版本信息
-l表示设置安全级别,安全级别分为(noAuthNoPriv|authNoPriv|authPriv)
-a 设置认证协议,协议分为(MD5|SHA)
-A设置认证字符串,这里需要与XClarity中认证密码中的字符串对应
-x设置隐私协议,协议分为(DES|AES)
-X设置隐私协议的加密字符串,这里需要与XClarity中的隐私密码对应。
IP地址填写为XClarity server的IP地址
".1.3.6.1.6.3.10.2.1.1.0"为XClarity用户手册中给出的EngineID

命令操作返回结果如下:
这里写图片描述
这里会返回一个十六进制码形如:

0x0102030405

返回结果的Hex-STRING为我们所需要的写入snmptrapd.conf配置文件中的实例的引擎标识。

配置snmptrapd.conf文件

这里我在snmp server端配置了用户识别为“houminxi”,加密方式使用的是SHA,加密字符串为“houminxi”,隐私协议设置为AES,隐私协议使用的字符串为“houminxi”。在已知这些的情况下需要再远端snmptrapd配置文件中创建一个用户,该用户需要与SNMP server端我表述的配置一致。

编辑snmptrapd.conf配置文件如下
这里写图片描述

CreateUser配置trap消息接收时项遵循如下配置要求:

#createUser –e myuser MD5 mypassword DES myotherpassword

-e参数指定 实例的引擎标识,其余验证方式以及验证码的填入按照指定要求填写。

验证配置

这里会使用到snmptrapd命令来测试snmp sevrer端发送的消息是否被snmptrapd接收端正确接收了。

snmptrapd常用参数详解
-C : 表示不使用net-snmp默认路径下的配置文snmptrapd.conf;
-c : 指定snmptrapd.conf文件;
-d : 显示收到和发送的数据报,通过这个选项可以看到数据报文;
-f  : 默认情况下,snmptrapd是在后台中运行的,加上这个选项,表示在前台运行;
-L : 指定日志记录在哪里,后面的o表示直接输出到屏幕上,如果是跟着f表示日志记录到指定的文件
以下用于SNMPv3的消息验证
-D:开启debug模式查看TOKEN
-u:设置用户标识

snmptrap接收端使用debug命令测试用户以及验证密码配置正确。当看到用户名和引擎码被正确识别时表示验证通过。

# snmptrapd -Dusm -Lo

这里写图片描述
这里可以看到用户拿着实例的引擎标识成功登录。如果出现“error”说明配置的实例引擎标识符与服务器端不符。
如果出现“no such user”说明需要创建一个与服务器端对应的用户标识。

使用如下命令监听

# snmptrapd -df –Lo

这里写图片描述

此时说明配置已经生效了。这里需要注意的一点就是如果需要侦听实例的不同部分,例如张三只需要关注服务器的硬件信息,而李四需要关注网络设备的硬件信息。则在snmp sever端需要创建不同的用户标识用来向snmptrapd发送不同的信息。此时snmptrapd接收端的配置文件中也需要创建对应张三,李四的用户标识和对应的实例引擎标识。

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值