ubuntu24安装snmp服务

在 Ubuntu 24.04 上安装并配置 SNMP(Simple Network Management Protocol)服务,核心是安装 snmpd(SNMP 守护进程)、调整配置文件并验证可用性

一、基础安装

1. 更新系统包(可选但推荐)
bash 复制代码
sudo apt update && sudo apt upgrade -y
2. 安装 SNMP 核心组件
bash 复制代码
# 安装 snmpd(服务端)+ snmp(客户端工具,用于测试)
sudo apt install -y snmpd snmp

安装完成后,snmpd 会自动启动,可通过以下命令验证状态:

bash 复制代码
sudo systemctl status snmpd
# 正常输出应为 "active (running)"

二、核心配置(关键步骤)

SNMP 配置文件位于 /etc/snmp/snmpd.conf,默认配置仅允许本地访问且安全级别低,需根据场景调整。

1. 备份原配置(避免改错)
bash 复制代码
sudo cp /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.bak
2. 编辑配置文件
bash 复制代码
sudo vim /etc/snmp/snmpd.conf

根据你的需求修改以下核心项(注释掉原有内容,替换为以下配置):

场景 1:基础监控(允许内网访问,社区字符串认证)

适合小型机房/内网监控,是最常用的配置:

ini 复制代码
# 1. 监听地址(允许所有网卡,若仅内网可指定内网IP,如 192.168.1.100)
agentAddress udp:161,udp6:[::1]:161

# 2. 安全配置(替换为自定义社区字符串,避免默认 public)
# rocommunity:只读权限(推荐),rwcommunity:读写权限(谨慎使用)
rocommunity MySNMP@2025 192.168.0.0/24  # 仅允许192.168.0.0/24网段用该社区字符串访问
rocommunity MySNMP@2025 127.0.0.1       # 允许本地访问

# 3. 系统信息(可选,定义设备标识)
sysLocation "IDC Server Room - Xeon 6330"
sysContact admin@yourcompany.com

# 4. 启用标准 MIB 库(监控CPU、内存、磁盘等核心指标)
view   systemonly  included   .1.3.6.1.2.1.1
view   systemonly  included   .1.3.6.1.2.1.25.1
view   all         included   .1  # 允许访问所有MIB(如需精细化可限制)

# 5. 禁用默认的不安全配置
# 注释掉原有的 "rocommunity public" 等行
场景 2:企业级安全配置(SNMPv3,推荐生产环境)

SNMPv3 支持加密和用户认证,避免社区字符串明文传输,适配 Xeon 6330 所在的企业级场景:

ini 复制代码
# 1. 监听地址
agentAddress udp:161,udp6:[::1]:161

# 2. SNMPv3 用户配置(替换为自定义密码)
createUser snmpadmin MD5 "AdminPass@123" DES "EncryptPass@456"
rouser snmpadmin authpriv  # 要求认证+加密

# 3. 系统信息
sysLocation "Enterprise Data Center"
sysContact it-admin@yourcompany.com

# 4. 启用 MIB 库
view   all         included   .1
3. 重启 snmpd 服务使配置生效
bash 复制代码
sudo systemctl restart snmpd
# 设置开机自启(默认已开启,确认一下)
sudo systemctl enable snmpd

三、防火墙配置(关键!避免端口不通)

Ubuntu 24.04 默认启用 ufw 防火墙,需放行 SNMP 的 161/UDP 端口:

bash 复制代码
# 放行161/UDP端口(仅允许内网访问,更安全)
sudo ufw allow from 192.168.0.0/24 to any port 161 proto udp
# 若需公网访问(不推荐),直接放行:sudo ufw allow 161/udp

# 重载防火墙规则
sudo ufw reload

四、验证 SNMP 服务可用性

1. 本地测试(SNMPv2c,对应场景1)
bash 复制代码
# 使用 snmpwalk 测试,替换社区字符串和MIB路径
snmpwalk -v 2c -c MySNMP@2025 127.0.0.1 .1.3.6.1.2.1.1

正常输出会显示系统名称、位置、联系人等信息,示例:

复制代码
SNMPv2-MIB::sysDescr.0 = STRING: Linux ubuntu-xeon 6.8.0-36-generic #36-Ubuntu SMP PREEMPT_DYNAMIC Thu May 23 15:17:33 UTC 2024 x86_64
SNMPv2-MIB::sysLocation.0 = STRING: IDC Server Room - Xeon 6330
...
2. 本地测试(SNMPv3,对应场景2)
bash 复制代码
snmpwalk -v 3 -u snmpadmin -a MD5 -A "AdminPass@123" -x DES -X "EncryptPass@456" -l authPriv 127.0.0.1 .1.3.6.1.2.1.1
3. 远程测试(从监控主机/另一台机器)
bash 复制代码
# SNMPv2c
snmpwalk -v 2c -c MySNMP@2025 服务器IP .1.3.6.1.2.1.25.2.3.1  # 查看内存/存储信息
# SNMPv3
snmpwalk -v 3 -u snmpadmin -a MD5 -A "AdminPass@123" -x DES -X "EncryptPass@456" -l authPriv 服务器IP .1.3.6.1.2.1.25.2.3.1
相关推荐
安审若无几秒前
运维监控及可视化工具Prometheus和grafana
运维·grafana·prometheus
charlie1145141914 分钟前
嵌入式C++教程实战之Linux下的单片机编程(6):从点亮第一盏LED开始 —— 我们为什么要用现代C++写STM32
linux·c语言·开发语言·c++·stm32·单片机
艾莉丝努力练剑4 分钟前
【Linux系统:多线程】线程概念与控制
linux·运维·服务器·c++·后端·学习·操作系统
IMPYLH5 分钟前
Linux 的 mkfifo 命令
linux·运维·服务器·bash
M1nat0_8 分钟前
Linux 进程信号:从生活类比到内核原理
linux·运维
jinglong.zha9 分钟前
AScript + Cursor:让 AI 直接操控你的设备,一句话完成自动化编程(源代码)
运维·人工智能·自动化·ascript·openclaw
运维行者_9 分钟前
MSP网络管理破局者:IPAM+SPM插件终结IP冲突与安全威胁
运维·服务器·开发语言·网络·安全·web安全·php
网硕互联的小客服18 分钟前
CentOS 7 系统开通后如何修改数据盘挂载目录?
运维·服务器·网络·安全·自动化
【骠姚校尉】20 分钟前
Makefile核心教程(六) --- 一文吃透 Makefile 通配符
linux·makefile·通配符·核心教程
牛奶咖啡1321 分钟前
DevOps自动化运维实践_ansible-playbook的使用
运维·自动化·ansible·devops·playbook·playbook模块及其示例