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

文章目录

说明

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

SNMP服务的安装


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

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

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

    bash 复制代码
    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用户的访问权限:

    bash 复制代码
    rouser yuanyou authPriv
  • SNMPv3部分完整的配置如下:

    bash 复制代码
    # 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服务以使配置更改生效:

    bash 复制代码
    sudo systemctl restart snmpd
  • 客户端连接成功的相应的内容

    bash 复制代码
    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连接命令

    bash 复制代码
    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的值:

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

    bash 复制代码
    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. 然后就可以正常使用

问题总结

密码过短

bash 复制代码
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不存在

bash 复制代码
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才是正确的写法

    bash 复制代码
    rouser yuanyou auth Priv 
相关推荐
摇滚侠9 小时前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
bush410 小时前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行52010 小时前
Linux 11 动态监控指令top
linux
网络研究院11 小时前
2026年网络安全
网络·安全·法律·法规·趋势·发展
酣大智11 小时前
ARP代理--工作原理
运维·网络·arp·arp代理
treesforest11 小时前
AI安全系统如何识别异常访问?IP风险识别正在成为关键能力
网络·人工智能·tcp/ip·安全·web安全
不会C语言的男孩11 小时前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言
shushangyun_11 小时前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
古城小栈12 小时前
Unix 与 Linux 异同小叙
linux·服务器·unix
2601_9618451512 小时前
粉笔行测题库|系统班|刷题
网络·百度·微信·微信公众平台·facebook·新浪微博