探索 SNMPv3 魔法:armbian系统安装snmp服务并通过SNMPV3进行连接控制

本文主要是介绍探索 SNMPv3 魔法:armbian系统安装snmp服务并通过SNMPV3进行连接控制,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 说明
  • SNMP服务的安装
  • 本机连接SNMPV3操作
  • MIB Browser连接SNMPV3
  • 问题总结
    • 密码过短
    • 权限配置错误,导致OID不存在

在这里插入图片描述

说明

  • 工具
    • 建议尝试专业版ireasoning MIB brower,因为只有专业版支持SNMP v3的连接。当然,也可以尝试其他SNMP客户端工具
  • 服务器类型
    • 本文章使用armbian设备进行操作和讲解

SNMP服务的安装

  • 更为详细的安装知道,参看armbian系统安装和卸载snmp服务(SNMPV2操作版本)
  • 这里简单演示基本的操作

  1. 确保已安装相应的SNMP软件包,安装完毕后,SNMP服务将自动启动

    sudo apt update
    sudo apt install snmp snmpd snmp-mibs-downloader
    sudo systemctl status snmpd
    
  2. 打开SNMP配置文件以进行编辑:

    sudo vim /etc/snmp/snmpd.conf
    
  3. 自定义的用户名、密码和验证协议(MD5、SHA):

    createUser readWriteUser MD5 "your_auth_passphrase" DES "your_privacy_passphrase"
    # readWriteUser SNMP v3用户的名称 需要选择一个自定义的名称
    # MD5 "密码" 至少8位
    # DES "协议" 至少8位
    
    • createUser: 在SNMP v3代理中创建一个新的用户。
    • MD5: 这是认证协议的选择,使用MD5算法进行身份验证。认证协议用于验证用户的身份,并确保消息的完整性,防止篡改。
    • "your_auth_passphrase": 这是用于身份验证的密码短语。密码短语用于生成认证密钥,用于进行身份验证。
    • DES: 加密协议的选择,使用DES算法进行数据加密。加密协议用于保护传输的数据,防止被窃听和篡改。
    • "your_privacy_passphrase": 用于加密的密码短语。密码短语用于生成加密密钥,用于对数据进行加密和解密。
  4. 添加以下行来定义SNMP v3用户的访问权限:

    rouser yuanyou authPriv
    
  • SNMPv3部分完整的配置如下:
    # SNMPv3 doesn't use communities, but users with (optionally) an
    # authentication and encryption string. This user needs to be created
    # with what they can view with rouser/rwuser lines in this file.
    #
    # createUser username (MD5|SHA|SHA-512|SHA-384|SHA-256|SHA-224) authpassphrase [DES|AES] [privpassphrase]
    # e.g.
    # createuser authPrivUser SHA-512 myauthphrase AES myprivphrase
    #
    # This should be put into /var/lib/snmp/snmpd.conf 
    #
    # rouser: a SNMPv3 read-only access username
    #    arguments: username [noauth|auth|priv [OID | -V VIEW [CONTEXT]]
    rouser authPrivUser authpriv -V systemonly
    createUser yuanyou MD5 "yuanyou123" DES "yuanyou123"
    rouser yuanyou authPriv
    
  1. 保存并关闭文件(按Ctrl+X,然后按Y保存)

  2. 重启SNMP服务以使配置更改生效:

    sudo systemctl restart snmpd
    
  • 客户端连接成功的相应的内容

    Response:
    SNMPv3 report received from remote agent.
    User profile name: armbian
    Security user name: authOnlyUser
    Security engine ID: 80.00.1F.88.80.61.76.AF.15.4F.B4.73.65.00.00.00.00 (hex)
    Context name: authOnlyUser
    Context engine ID: 80.00.1F.88.80.61.76.AF.15.4F.B4.73.65.00.00.00.00 (hex)
    Authentication protocol: HMAC MD5
    Privacy protocol: None
    Security level: Authentication
    Security model: USM
    1: usmStatsUnknownUserNames.0 (counter) 2
    
    • User profile name: 用户配置文件名,表示该SNMP v3用户的配置文件名称为"armbian"。
    • Security user name: 安全用户名称,表示该SNMP v3用户的用户名为"authOnlyUser"。
    • Security engine ID: 安全引擎ID,用于唯一标识SNMP v3用户和设备。
    • Context name: 上下文名称,表示该SNMP v3用户的上下文名称与用户名相同,为"authOnlyUser"。
    • Context engine ID: 上下文引擎ID,与安全引擎ID相同。
    • Authentication protocol: 认证协议,表示该SNMP v3用户使用的认证协议为HMAC MD5。
    • Privacy protocol: 加密协议,表示该SNMP v3用户没有配置加密协议(为"None")。
    • Security level: 安全级别,表示该SNMP v3用户的安全级别为"Authentication",表示仅进行身份验证。
    • Security model: 安全模型,表示该SNMP v3用户使用的安全模型为USM(用户安全模型)。

本机连接SNMPV3操作

  • 在Armbian设备上使用SNMPv3连接命令

    snmpget -v3 -l authPriv -u yuanyou -a MD5 -A "yuanyou123" -x DES -X "yuanyou123" <IP地址或主机名> <OID>
    
  • 参数说明如下:

    • -v3:指定使用SNMPv3版本。
    • -l authPriv:指定安全级别为认证与加密。
    • -u yuanyou:指定SNMPv3用户的用户名为"yuanyou"。
    • -a MD5:指定认证算法为MD5,与createUser行中的认证算法一致。
    • -A "yuanyou123":指定认证密码为"yuanyou",与createUser行中的认证密码一致。
    • -x DES:指定加密算法为DES,与createUser行中的加密算法一致。
    • -X "yuanyou123":指定加密密码为"yuanyou",与createUser行中的加密密码一致。
    • <IP地址或主机名>:替换为Armbian设备的IP地址或主机名。
    • <OID>:替换为您要查询的OID。
  • 例如,获取本机设备并获取sysName的值:

    snmpget -v3 -l authPriv -u yuanyou -a MD5 -A "yuanyou" -x DES -X "yuanyou" 127.0.0.1 sysName.0
    
  • 查找设备支持的 OID 列表:

    snmpwalk -v3 -l authPriv -u yuanyou -a MD5 -A "yuanyou123" -x DES -X "yuanyou123" 127.0.0.1
    

MIB Browser连接SNMPV3

  • 说明MIB Browser个人免费版只能使用snmpv1/v2 无法使用v3,如有长期使用需求,请使用其他工具。专业版有30天的免费试用
    在这里插入图片描述
  1. 填写基本的连接信息
    在这里插入图片描述
  2. 然后就可以正常使用
    在这里插入图片描述

问题总结

密码过短

root@armbian:~# snmpget -v3 -l authPriv -u yuanyou -a MD5 -A "yuanyou" -x DES -X "yuanyou" 127.0.0.1 sysName.0
Error: passphrase chosen is below the length requirements of the USM (min=8).
snmpget:  (The supplied password length is too short.)
Error generating a key (Ku) from the supplied authentication pass phrase. 
  • 错误提示指出密码长度不符合USM(用户安全模型)的要求。默认情况下,USM要求密码长度至少为8个字符。

权限配置错误,导致OID不存在

root@armbian:~# snmpget -v3 -l authPriv -u yuanyou -a MD5 -A "yuanyou123" -x DES -X "yuanyou123" 127.0.0.1 sysName.0
SNMPv2-MIB::sysName.0 = No Such Object available on this agent at this OID
  • 当时的配置文件中配置的权限命令有误,注意authPriv才是正确的写法
    rouser yuanyou auth Priv 
    

这篇关于探索 SNMPv3 魔法:armbian系统安装snmp服务并通过SNMPV3进行连接控制的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/474184

相关文章

Spring IOC控制反转的实现解析

《SpringIOC控制反转的实现解析》:本文主要介绍SpringIOC控制反转的实现,IOC是Spring的核心思想之一,它通过将对象的创建、依赖注入和生命周期管理交给容器来实现解耦,使开发者... 目录1. IOC的基本概念1.1 什么是IOC1.2 IOC与DI的关系2. IOC的设计目标3. IOC

VScode连接远程Linux服务器环境配置图文教程

《VScode连接远程Linux服务器环境配置图文教程》:本文主要介绍如何安装和配置VSCode,包括安装步骤、环境配置(如汉化包、远程SSH连接)、语言包安装(如C/C++插件)等,文中给出了详... 目录一、安装vscode二、环境配置1.中文汉化包2.安装remote-ssh,用于远程连接2.1安装2

Java中使用Java Mail实现邮件服务功能示例

《Java中使用JavaMail实现邮件服务功能示例》:本文主要介绍Java中使用JavaMail实现邮件服务功能的相关资料,文章还提供了一个发送邮件的示例代码,包括创建参数类、邮件类和执行结... 目录前言一、历史背景二编程、pom依赖三、API说明(一)Session (会话)(二)Message编程客

关于rpc长连接与短连接的思考记录

《关于rpc长连接与短连接的思考记录》文章总结了RPC项目中长连接和短连接的处理方式,包括RPC和HTTP的长连接与短连接的区别、TCP的保活机制、客户端与服务器的连接模式及其利弊分析,文章强调了在实... 目录rpc项目中的长连接与短连接的思考什么是rpc项目中的长连接和短连接与tcp和http的长连接短

C#实现系统信息监控与获取功能

《C#实现系统信息监控与获取功能》在C#开发的众多应用场景中,获取系统信息以及监控用户操作有着广泛的用途,比如在系统性能优化工具中,需要实时读取CPU、GPU资源信息,本文将详细介绍如何使用C#来实现... 目录前言一、C# 监控键盘1. 原理与实现思路2. 代码实现二、读取 CPU、GPU 资源信息1.

python管理工具之conda安装部署及使用详解

《python管理工具之conda安装部署及使用详解》这篇文章详细介绍了如何安装和使用conda来管理Python环境,它涵盖了从安装部署、镜像源配置到具体的conda使用方法,包括创建、激活、安装包... 目录pytpshheraerUhon管理工具:conda部署+使用一、安装部署1、 下载2、 安装3

使用MongoDB进行数据存储的操作流程

《使用MongoDB进行数据存储的操作流程》在现代应用开发中,数据存储是一个至关重要的部分,随着数据量的增大和复杂性的增加,传统的关系型数据库有时难以应对高并发和大数据量的处理需求,MongoDB作为... 目录什么是MongoDB?MongoDB的优势使用MongoDB进行数据存储1. 安装MongoDB

在C#中获取端口号与系统信息的高效实践

《在C#中获取端口号与系统信息的高效实践》在现代软件开发中,尤其是系统管理、运维、监控和性能优化等场景中,了解计算机硬件和网络的状态至关重要,C#作为一种广泛应用的编程语言,提供了丰富的API来帮助开... 目录引言1. 获取端口号信息1.1 获取活动的 TCP 和 UDP 连接说明:应用场景:2. 获取硬

Linux使用fdisk进行磁盘的相关操作

《Linux使用fdisk进行磁盘的相关操作》fdisk命令是Linux中用于管理磁盘分区的强大文本实用程序,这篇文章主要为大家详细介绍了如何使用fdisk进行磁盘的相关操作,需要的可以了解下... 目录简介基本语法示例用法列出所有分区查看指定磁盘的区分管理指定的磁盘进入交互式模式创建一个新的分区删除一个存

C#使用HttpClient进行Post请求出现超时问题的解决及优化

《C#使用HttpClient进行Post请求出现超时问题的解决及优化》最近我的控制台程序发现有时候总是出现请求超时等问题,通常好几分钟最多只有3-4个请求,在使用apipost发现并发10个5分钟也... 目录优化结论单例HttpClient连接池耗尽和并发并发异步最终优化后优化结论我直接上优化结论吧,