怎么配置服务器接收SNMP信息?

1、在目标服务器上安装并配置SNMP代理:让服务器“说”SNMP协议。

2、从管理站进行测试:使用SNMP工具从另一台机器查询该服务器。

我们将分别介绍在LinuxWindows服务器上的配置方法。

第一部分:在 Linux 服务器上配置 (以 Ubuntu/CentOS 为例)

步骤 1:安装 SNMP 软件包

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

现在使用文本编辑器(如vimnano) 编辑配置文件:

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"

步骤 3:启动并启用 SNMP 服务

配置完成后,启动服务并设置为开机自启。

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

步骤 4:配置防火墙

如果系统防火墙开启,需要开放 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:安装 SNMP 服务

1、 打开服务器管理器

2、 点击“管理” ->“添加角色和功能”

3、 一路点击“下一步”,直到“功能” 页面。

4、 在功能列表中,找到并展开SNMP 服务

5、 勾选SNMP 服务,在弹出的窗口中点击“添加功能”

6、 点击“下一步”,然后“安装”

7、 安装完成后,点击“关闭”

步骤 2:配置 SNMP 服务

1、 打开服务 应用程序 (services.msc)。

2、 在服务列表中找到SNMP Service,右键点击并选择属性

3、 切换到“安全” 选项卡。

a.添加团体名 (Community String)

- 点击“添加...”

- 在“团体名称” 中输入您的只读团体名,例如myreadcommunity

- 在“团体权限” 下拉菜单中选择READ ONLY

- 点击“添加”

*同样,强烈建议不要使用默认的 ‘public‘。

b.接受来自哪些主机的 SNMP 请求

- 在“接受来自这些主机的 SNMP 数据包” 区域,点击“添加...”

- 输入您的SNMP管理站的IP地址,或者选择“localhost” 仅用于本地测试。

- 点击“确定”

4、 切换到“代理” 选项卡:

填写“联系人”“位置”,这些信息会通过SNMP暴露出去,便于管理。

5、 点击“应用”“确定”

6、 在服务属性窗口中,点击“确定”,如果服务未运行,您可能需要右键点击服务并选择“启动”

步骤 3:配置防火墙

1、 打开Windows Defender 防火墙 高级安全设置。

2、 点击入站规则

3、 在右侧操作栏点击新建规则...

4、 选择端口,点击下一步

5、 选择UDP,并指定端口161,点击下一步

6、 选择允许连接,点击下一步

7、 根据需要选择应用此规则的配置文件(域、专用、公用),点击下一步

8、 给规则起一个名字,“SNMP Inbound”,点击完成

第三部分:从管理站测试 SNMP 查询

在另一台能够网络互通的管理站机器上,使用snmpwalksnmpget 工具进行测试。

1、安装测试工具

- Linux:sudo apt install snmpsudo 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。system1.3.6.1.2.1.1 的别名。

如果配置成功,您将看到从目标服务器返回的一系列SNMP数据。

安全建议

1、永远不要使用默认团体名publicprivate 是众所周知的,必须更改。

2、限制访问源: 在配置文件中,将团体名与允许查询的源IP地址绑定。

3、使用 SNMP v3: 对于高安全要求的环境,应使用 SNMP v3,它支持加密和用户认证,而不是 v2c 的明文团体名。

4、最小权限原则: 只暴露必要的 OID 子树,不要开放整个.1 树。

5、防火墙策略: 严格限制访问 UDP 161 端源的源IP。

按照以上步骤,您应该能成功配置服务器以接收(响应)SNMP查询。

文章摘自:https://idc.huochengrm.cn/fwq/17073.html

评论