在Ubuntu 20.04上安装和配置SNMP的快速方法

在本指南中,我们将学习如何在Ubuntu 20.04上安装和配置SNMP。 SNMP协议 是“简单网络管理协议”的缩写。它提供了一种无代理的方法来管理和监视网络设备和服务器,以获取健康信息,系统指标(例如CPU负载,物理内存使用情况,正在运行的进程数,服务状态等),从而支持对服务器进行轮询 SNMP 使用这种方法,您无需在主机上安装常规的Nagios NRPE代理。

在Ubuntu 20.04上安装和配置SNMP

使用Nagios或Cacti等监视工具通过SNMP监视Linux主机之前,首先需要安装和配置SNMP。在此设置中,我们将在Ubuntu 20.04上安装和配置SNMP。

在Ubuntu 20.04上安装SNMP

SNMP软件包可在默认的Ubuntu 20.04存储库上使用。

首先,您需要更新程序包缓存;

apt update

更新完成后,在Ubuntu 20.04上安装SNMP。

apt install snmpd snmp libsnmp-dev

在Ubuntu 20.04上配置SNMP

安装完成后,请按照以下步骤配置SNMP。

SNMP的默认配置文件是 /etc/snmp/snmpd.conf。该文件已被高度注释,因此,我们将只进行一些更改。因此,请先复制原始文件,然后再继续。

cp /etc/snmp/snmpd.conf{,.bak}

在Ubuntu 20.04上配置SNMP身份验证

SNMP支持三种版本的SNMP协议;

  • SNMP协议 v1
  • SNMP协议 v2c
  • SNMP v3

SNMP版本1和2c均使用以下方式提供身份验证 community string,这是代理和客户端之间的共享机密,通过网络以明文形式传递

SNMP版本3支持使用多种协议的用户身份验证和消息加密,因此更加安全。

在Ubuntu 20.04上配置SNMP版本2c社区

如上所述,SNMP v2使用 permission directive, 一种 community stringsource Address。源地址可以是监视服务器的IP,例如Nagios Server(SNMP服务器)或Cacti。该指令应采用以下格式设置:

directive community [source [OID]]

哪里

  • directive rocommunity (提供只读访问权限)或 rwcommunity (提供读写访问权限)
  • source 可以是监视服务器的IP,例如Nagios Server(SNMP服务器)或Cacti
  • OID 是提供访问权限的可选SNMP树。配置SNMP v2c

因此,请编辑 snmpd 配置文件,并将其配置为同时监听本地主机和接口IP。默认情况下,SNMP代理已设置为仅允许来自本地主机的连接。

vim /etc/snmp/snmpd.conf
...
###########################################################################
# SECTION: Agent Operating Mode
#
#   This section defines how the agent will operate when it
#   is running.
...
#agentaddress  127.0.0.1,[::1]
agentAddress udp:127.0.0.1:161,udp:192.168.58.18:161

此外,将其配置为仅允许监视服务器(在我的情况下为Cacti服务器,IP为192.168.58.3)使用社区字符串([email protected])。

...
#
SECTION: Access Control Setup
#
This section defines who is allowed to talk to your running
snmp agent.
...
rocommunity [email protected] 192.168.58.3

保存并退出配置文件。

请注意,要使对配置文件的所有更改生效,请强制执行 snmpd 服务以通过运行以下命令来重新读取配置:

systemctl restart snmpd

如果可以检查,SNMP现在正在侦听两个接口;

netstat -nlpu|grep snmp
udp        0      0 192.168.58.18:161       0.0.0.0:*                           36473/snmpd         
udp        0      0 127.0.0.1:161           0.0.0.0:*                           36473/snmpd

如果防火墙正在运行,请允许来自监视服务器的连接。

ufw allow from 192.168.58.3 to any port 161 proto udp

验证带有社区字符串的SNMP v2c连接

接下来,从监视服务器运行以下命令以验证对主机的访问;

snmpwalk -v2c -c [email protected] 192.168.58.18
iso.3.6.1.2.1.1.1.0 = STRING: "Linux ubuntu20.kifarunix-demo.com 5.4.0-51-generic #56-Ubuntu SMP Mon Oct 5 14:28:49 UTC 2020 x86_64"
iso.3.6.1.2.1.1.2.0 = OID: iso.3.6.1.4.1.8072.3.2.10
iso.3.6.1.2.1.1.3.0 = Timeticks: (2891) 0:00:28.91
iso.3.6.1.2.1.1.4.0 = STRING: "Me <[email protected]>"
iso.3.6.1.2.1.1.5.0 = STRING: "ubuntu20.kifarunix-demo.com"
iso.3.6.1.2.1.1.6.0 = STRING: "Sitting on the Dock of the Bay"
iso.3.6.1.2.1.1.7.0 = INTEGER: 72
iso.3.6.1.2.1.1.8.0 = Timeticks: (2) 0:00:00.02
iso.3.6.1.2.1.1.9.1.2.1 = OID: iso.3.6.1.6.3.10.3.1.1
iso.3.6.1.2.1.1.9.1.2.2 = OID: iso.3.6.1.6.3.11.3.1.1
iso.3.6.1.2.1.1.9.1.2.3 = OID: iso.3.6.1.6.3.15.2.1.1
iso.3.6.1.2.1.1.9.1.2.4 = OID: iso.3.6.1.6.3.1
iso.3.6.1.2.1.1.9.1.2.5 = OID: iso.3.6.1.6.3.16.2.2.1
iso.3.6.1.2.1.1.9.1.2.6 = OID: iso.3.6.1.2.1.49
iso.3.6.1.2.1.1.9.1.2.7 = OID: iso.3.6.1.2.1.4
iso.3.6.1.2.1.1.9.1.2.8 = OID: iso.3.6.1.2.1.50
iso.3.6.1.2.1.1.9.1.2.9 = OID: iso.3.6.1.6.3.13.3.1.3
iso.3.6.1.2.1.1.9.1.2.10 = OID: iso.3.6.1.2.1.92
iso.3.6.1.2.1.1.9.1.3.1 = STRING: "The SNMP Management Architecture MIB."
iso.3.6.1.2.1.1.9.1.3.2 = STRING: "The MIB for Message Processing and Dispatching."

在Ubuntu 20.04上配置SNMP版本3

SNMP v3使用用户名,权限,安全级别,身份验证和隐私密码来允许访问。因此,您需要创建用于身份验证的用户。创建后,将用户添加到以下配置文件; /etc/snmp/snmpd.conf/var/lib/net-snmp/snmpd.conf

同样,像上面一样复制原始配置文件。

cp /etc/snmp/snmpd.conf{,.bak}

停止SNMP守护程序

systemctl stop snmpd

创建SNMP v3身份验证用户

使用以下命令创建一个只读身份验证用户 net-snmp-create-v3-user 命令。命令语法为;

net-snmp-create-v3-user [-ro] [-A authpass] [-a MD5|SHA] [-X privpass][-x DES|AES] [username]

net-snmp-create-v3-user -ro -A [email protected] -a SHA -X [email protected] -x AES snmpadmin
adding the following line to /var/lib/snmp/snmpd.conf:
   createUser snmpadmin SHA "[email protected]" AES "[email protected]"
adding the following line to /usr/share/snmp/snmpd.conf:
   rouser snmpadmin

如上所述,启动SNMP守护程序并将入站防火墙规则配置到UDP端口161。

systemctl start snmpd

启用S​​NMP守护程序以在系统重新引导时运行。

systemctl enable snmpd

验证SNMP v3连接

测试以确保一切正常。

snmpwalk -v3 -a SHA -A [email protected] -x AES -X [email protected] -l authPriv -u snmpadmin localhost | head
iso.3.6.1.2.1.1.1.0 = STRING: "Linux ubuntu20.kifarunix-demo.com 5.4.0-51-generic #56-Ubuntu SMP Mon Oct 5 14:28:49 UTC 2020 x86_64"
iso.3.6.1.2.1.1.2.0 = OID: iso.3.6.1.4.1.8072.3.2.10
iso.3.6.1.2.1.1.3.0 = Timeticks: (6269) 0:01:02.69
iso.3.6.1.2.1.1.4.0 = STRING: "Me [email protected]"
iso.3.6.1.2.1.1.5.0 = STRING: "ubuntu20.kifarunix-demo.com"
iso.3.6.1.2.1.1.6.0 = STRING: "Sitting on the Dock of the Bay"
iso.3.6.1.2.1.1.7.0 = INTEGER: 72
iso.3.6.1.2.1.1.8.0 = Timeticks: (1) 0:00:00.01
iso.3.6.1.2.1.1.9.1.2.1 = OID: iso.3.6.1.6.3.10.3.1.1
iso.3.6.1.2.1.1.9.1.2.2 = OID: iso.3.6.1.6.3.11.3.1.1

从远程主机;

snmpwalk -v3 -a SHA -A [email protected] -x AES -X [email protected] -l authPriv -u snmpadmin 192.168.58.18 | head
iso.3.6.1.2.1.1.1.0 = STRING: "Linux ubuntu20.kifarunix-demo.com 5.4.0-51-generic #56-Ubuntu SMP Mon Oct 5 14:28:49 UTC 2020 x86_64"
iso.3.6.1.2.1.1.2.0 = OID: iso.3.6.1.4.1.8072.3.2.10
iso.3.6.1.2.1.1.3.0 = Timeticks: (11693) 0:01:56.93
iso.3.6.1.2.1.1.4.0 = STRING: "Me <[email protected]>"
iso.3.6.1.2.1.1.5.0 = STRING: "ubuntu20.kifarunix-demo.com"
iso.3.6.1.2.1.1.6.0 = STRING: "Sitting on the Dock of the Bay"
iso.3.6.1.2.1.1.7.0 = INTEGER: 72
iso.3.6.1.2.1.1.8.0 = Timeticks: (1) 0:00:00.01
iso.3.6.1.2.1.1.9.1.2.1 = OID: iso.3.6.1.6.3.10.3.1.1
iso.3.6.1.2.1.1.9.1.2.2 = OID: iso.3.6.1.6.3.11.3.1.1

大! !您已经在Ubuntu 20.04系统上成功设置了SNMP v2c和SNMP v3。现在,您可以配置服务器,以使用SNMP字符串或SNMP v3从删除监视服务器进行轮询。

这使我们结束了有关如何在Ubuntu 20.04上安装和配置SNMP的教程的结尾。

其他教程

在CentOS 8上安装和配置SNMP

在Debian 10 Buster上安装和配置SNMP

如何在Debian 9上配置SNMP版本3

如何在Debian 9上配置SNMP版本2c

在Ubuntu 18.04和CentOS 7上安装和配置SNMP

Naiens SNMP监视AlienVault USM / OSSIM上的Linux主机

Sidebar