1、在目标服务器上安装并配置SNMP代理:让服务器“说”SNMP协议。
2、从管理站进行测试:使用SNMP工具从另一台机器查询该服务器。
我们将分别介绍在Linux和Windows服务器上的配置方法。
第一部分:在 Linux 服务器上配置 (以 Ubuntu/CentOS 为例)
SNMP的功能主要由snmpd
(SNMP守护进程) 这个服务提供。
Ubuntu/Debian:
sudo apt update sudo apt install snmpd snmp
CentOS/RHEL/Rocky Linux:
sudo dnf install net-snmp net-snmp-utils # 或者对于较老的版本使用 yum # sudo yum install net-snmp net-snmp-utils
步骤 2:配置 SNMP 守护进程 (snmpd
)
主要的配置文件是/etc/snmp/snmpd.conf
,在修改之前,建议先备份原始文件。
sudo cp /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.backup
现在使用文本编辑器(如vim
或nano
) 编辑配置文件:
sudo vim /etc/snmp/snmpd.conf
以下是关键的配置项,您可以根据需要修改:
1、配置 SNMP 团体名 (Community String):
团体名相当于一个密码,默认的public
(只读)和private
(读写)非常不安全,务必修改。
# 定义一个只读的团体名 ‘myreadcommunity‘, 并限制其可访问的 OID 范围(.1 表示整个 MIB 树) rocommunity myreadcommunity default .1 # 定义一个读写的团体名 ‘mywritecommunity‘, 强烈建议在生产环境中禁用或极其严格地限制 # rwcommunity mywritecommunity default .1
rocommunity
: 只读团体。
default
: 允许来自任何来源的请求,为了安全,可以替换为您的SNMP管理站的IP地址,例如192.168.1.100
。
.1
: 允许访问整个 OID 树,您可以将其限制为更小的范围以提高安全性。
2、控制监听接口 (可选,但建议):
默认snmpd
监听所有接口 (0.0.0.0:161
),为了安全,可以将其绑定到管理网络接口。
# 监听所有接口的 161 端口 (默认) # agentAddress udp:161 # 只监听本地回环和特定网络接口 agentAddress udp:127.0.0.1:161 agentAddress udp:192.168.1.50:161
将192.168.1.50
替换为您的服务器的IP地址。
3、定义系统信息 (可选):
这些信息可以帮助您识别设备。
sysLocation "Server Room, Rack 15" sysContact "admin@yourcompany.com" # sysName 通常自动使用主机名,但也可以手动指定 sysName "my-ubuntu-web-01"
配置完成后,启动服务并设置为开机自启。
Ubuntu/Debian (使用 systemd):
sudo systemctl restart snmpd sudo systemctl enable snmpd sudo systemctl status snmpd # 检查状态是否运行正常
CentOS/RHEL (使用 systemd):
sudo systemctl restart snmpd sudo systemctl enable snmpd sudo systemctl status snmpd
如果系统防火墙开启,需要开放 UDP 161 端口。
UFW (Ubuntu):
sudo ufw allow from 192.168.1.0/24 to any port 161 proto udp
FirewallD (CentOS/RHEL):
sudo firewall-cmd --permanent --add-rich-rule=’rule family=“ipv4” source address=“192.168.1.0/24” port protocol=“udp” port=“161” accept‘ sudo firewall-cmd --reload
*请将192.168.1.0/24
替换为您的SNMP管理站所在的网络段。
第二部分:在 Windows 服务器上配置
1、 打开服务器管理器。
2、 点击“管理” ->“添加角色和功能”。
3、 一路点击“下一步”,直到“功能” 页面。
4、 在功能列表中,找到并展开SNMP 服务。
5、 勾选SNMP 服务,在弹出的窗口中点击“添加功能”。
6、 点击“下一步”,然后“安装”。
7、 安装完成后,点击“关闭”。
1、 打开服务 应用程序 (services.msc
)。
2、 在服务列表中找到SNMP Service,右键点击并选择属性。
3、 切换到“安全” 选项卡。
a.添加团体名 (Community String):
- 点击“添加...”。
- 在“团体名称” 中输入您的只读团体名,例如myreadcommunity
。
- 在“团体权限” 下拉菜单中选择READ ONLY。
- 点击“添加”。
*同样,强烈建议不要使用默认的 ‘public‘。
b.接受来自哪些主机的 SNMP 请求:
- 在“接受来自这些主机的 SNMP 数据包” 区域,点击“添加...”。
- 输入您的SNMP管理站的IP地址,或者选择“localhost” 仅用于本地测试。
- 点击“确定”。
4、 切换到“代理” 选项卡:
填写“联系人” 和“位置”,这些信息会通过SNMP暴露出去,便于管理。
5、 点击“应用” 和“确定”。
6、 在服务属性窗口中,点击“确定”,如果服务未运行,您可能需要右键点击服务并选择“启动”。
1、 打开Windows Defender 防火墙 高级安全设置。
2、 点击入站规则。
3、 在右侧操作栏点击新建规则...。
4、 选择端口,点击下一步。
5、 选择UDP,并指定端口161,点击下一步。
6、 选择允许连接,点击下一步。
7、 根据需要选择应用此规则的配置文件(域、专用、公用),点击下一步。
8、 给规则起一个名字,“SNMP Inbound”,点击完成。
在另一台能够网络互通的管理站机器上,使用snmpwalk
或snmpget
工具进行测试。
1、安装测试工具:
- Linux:sudo apt install snmp
或sudo yum install net-snmp-utils
- Windows: 可以安装第三方工具如 Paessler SNMP Tester,或使用 Linux 子系统。
2、执行测试命令:
# 基本语法 snmpwalk -v 2c -c <团体名> <服务器IP地址> <OID> # 示例:查询系统的描述信息 snmpwalk -v 2c -c myreadcommunity 192.168.1.50 1.3.6.1.2.1.1.1 # 或者使用更易读的MIB名称(如果系统加载了MIBs) snmpwalk -v 2c -c myreadcommunity 192.168.1.50 sysDescr # 查询整个系统组的信息 snmpwalk -v 2c -c myreadcommunity 192.168.1.50 system
-v 2c
: 指定使用 SNMP 版本 2c (最常用)。
-c
: 指定您在服务器上配置的团体名。
- 最后的参数是您要查询的 OID。system
是1.3.6.1.2.1.1
的别名。
如果配置成功,您将看到从目标服务器返回的一系列SNMP数据。
1、永远不要使用默认团体名:public
和private
是众所周知的,必须更改。
2、限制访问源: 在配置文件中,将团体名与允许查询的源IP地址绑定。
3、使用 SNMP v3: 对于高安全要求的环境,应使用 SNMP v3,它支持加密和用户认证,而不是 v2c 的明文团体名。
4、最小权限原则: 只暴露必要的 OID 子树,不要开放整个.1
树。
5、防火墙策略: 严格限制访问 UDP 161 端源的源IP。
按照以上步骤,您应该能成功配置服务器以接收(响应)SNMP查询。
文章摘自:https://idc.huochengrm.cn/fwq/17073.html
评论