2. SNMP

简介

SNMP代表简单网络管理协议(Simple Network Management Protocol)。它是一种用于网络设备管理和监控的协议,允许网络管理员远程监视和管理网络设备的性能、状态和配置。

SNMP的主要功能是收集和管理网络设备的信息。它通过网络管理系统(NMS)与网络设备进行通信。SNMP定义了一组标准的管理对象和管理信息库(MIB),这些MIB包含了关于网络设备的各种信息,如设备状态、性能指标、配置参数等。网络设备通过SNMP代理程序实现对这些信息的访问,并通过SNMP协议将这些信息发送给NMS。

SNMP使用客户端-服务器模型进行通信。NMS充当客户端,向网络设备发送SNMP请求(如获取设备信息、修改设备配置等),而网络设备上的SNMP代理程序则充当服务器,接收并响应这些请求。SNMP协议使用UDP作为传输协议,通常使用161端口进行通信。

SNMP定义了一组基本的操作命令,用于管理和监控网络设备。常见的操作命令包括获取 (GET)、设置(SET)、轮询(GETNEXT)、陷阱(TRAP)等。通过这些操作命令,管理员可以获取设备的状态信息、配置参数,对设备进行配置和修改,并接收设备发送的警报和事件通知。

SNMP是一个广泛应用于网络管理的标准协议,它使网络管理员能够远程监视和管理网络设备,实现设备的集中管理、故障排除和性能优化。

环境部署
Windows

先在Windows主机上添加功能,步骤如下:

==步骤1.==右键点击左下角的开始,选择“设置”。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RWI74pHQ-1686318896461)(./%E6%9C%9F%E6%9C%ABkali%20Linux%E7%AC%94%E8%AE%B0.assets/image-20230531153215847.png)]

找到并点击“应用”。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-U1LgeSAR-1686318896462)(./%E6%9C%9F%E6%9C%ABkali%20Linux%E7%AC%94%E8%AE%B0.assets/image-20230531153351603.png)]

左侧栏选择“应用和功能”,右侧栏点击“可选功能”。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uvpucCyT-1686318896462)(./%E6%9C%9F%E6%9C%ABkali%20Linux%E7%AC%94%E8%AE%B0.assets/image-20230531153428925.png)]

点击可选功能下的“添加功能”。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1lEuEy7h-1686318896463)(./%E6%9C%9F%E6%9C%ABkali%20Linux%E7%AC%94%E8%AE%B0.assets/image-20230531153539637.png)]

搜索框输入“snmp”,然后勾选“简单网络管理协议 (SNMP)”,最后点击“安装”即可。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aT2ddLYw-1686318896463)(./%E6%9C%9F%E6%9C%ABkali%20Linux%E7%AC%94%E8%AE%B0.assets/image-20230531153831169.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TbsHFnAy-1686318896463)(./%E6%9C%9F%E6%9C%ABkali%20Linux%E7%AC%94%E8%AE%B0.assets/image-20230531153716413.png)]

步骤2

左下角搜索“服务”,打开

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KQgCl7We-1686318896464)(./%E6%9C%9F%E6%9C%ABkali%20Linux%E7%AC%94%E8%AE%B0.assets/image-20230531165707097.png)]

往下滑,找到”SNMP服务

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-akM6tN6U-1686318896464)(./%E6%9C%9F%E6%9C%ABkali%20Linux%E7%AC%94%E8%AE%B0.assets/image-20230531165923729.png)]

单击SNMP,右键,选择属性

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7p2X3cEG-1686318896464)(./%E6%9C%9F%E6%9C%ABkali%20Linux%E7%AC%94%E8%AE%B0.assets/image-20230531170319374.png)]

在属性中打开:安全 ,并添加社区”public “ 下方选择 “接受来自任何而主机的SNMP数据包”,之后点确定便可。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-U8QtSscS-1686318896464)(./%E6%9C%9F%E6%9C%ABkali%20Linux%E7%AC%94%E8%AE%B0.assets/image-20230531170700263.png)]

OK,Windows主机的设置到此结束

打开kalil inux

使用 Snmpwalk 命令测试 Windows 主机

执行命令如下所示:

IP地址是你自己宿主机的ip地址(win+r,输入cmd,输入命令:ipconfig)

root@kali:~# snmpwalk -c public 169.254.218.205 -v 2c
snmpwalk -v 2c -c public 169.254.218.205

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BNkZ7UGM-1686318896465)(./%E6%9C%9F%E6%9C%ABkali%20Linux%E7%AC%94%E8%AE%B0.assets/image-20230606120033628-1686024045661-12-1686024047468-14.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-f1wkbc7w-1686318896465)(./%E6%9C%9F%E6%9C%ABkali%20Linux%E7%AC%94%E8%AE%B0.assets/image-20230606120234024.png)]

CentOS

要在CentOS上搭建SNMP服务,可以按照以下步骤进行操作:

1.确保CentOS系统已经安装了snmp软件包。

使用以下命令检查是否已安装:

rpm -qa | grep net-snmp

如果没有输出结果,则表示未安装SNMP软件包。可以使用以下命令安装:

sudo vi /etc/snmp/snmpd.conf

2.配置SNMP设置。编辑SNMP的主配置文件 /etc/snmp/snmpd.conf ,可以使用任何文本编辑器打 开:

sudo vi /etc/snmp/snmpd.conf

在文件中,你可以配置SNMP团体字符串、允许的主机访问等设置。根据需求进行相应的修改。

启动SNMP服务。使用以下命令启动SNMP服务:

sudo systemctl start snmpd

我的步骤:

1.使用联网的yum 安装组件

需要安装的大概有一下几个:

yum install -y net-snmp

yum install -y net-snmp-devel

yum install -y net-snmp-libs

yum install -y net-snmp-perl

yum install -y net-snmp-utils

yum install -y mrtg
yum install -y net-snmp

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7ig0k6Ho-1686318896466)(./%E6%9C%9F%E6%9C%ABkali%20Linux%E7%AC%94%E8%AE%B0.assets/image-20230605202337747.png)]

yum install -y net-snmp-devel

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pdMQhjNg-1686318896466)(./%E6%9C%9F%E6%9C%ABkali%20Linux%E7%AC%94%E8%AE%B0.assets/image-20230605202555842.png)]

yum install -y net-snmp-libs

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GwG8lsDc-1686318896466)(./%E6%9C%9F%E6%9C%ABkali%20Linux%E7%AC%94%E8%AE%B0.assets/image-20230605203235788.png)]

yum install -y net-snmp-perl

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HwuwtaN9-1686318896467)(./%E6%9C%9F%E6%9C%ABkali%20Linux%E7%AC%94%E8%AE%B0.assets/image-20230605203415006.png)]

yum install -y net-snmp-utils

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wt4Wzk8I-1686318896467)(./%E6%9C%9F%E6%9C%ABkali%20Linux%E7%AC%94%E8%AE%B0.assets/image-20230605203508893.png)]

yum install -y mrtg

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8kwlIqxI-1686318896467)(./%E6%9C%9F%E6%9C%ABkali%20Linux%E7%AC%94%E8%AE%B0.assets/image-20230605203718412.png)]

查看是否安装成功!

rpm -qa |grep snmp

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zewJaQEg-1686318896467)(./%E6%9C%9F%E6%9C%ABkali%20Linux%E7%AC%94%E8%AE%B0.assets/image-20230605203838422.png)]

2.启动SNMP

输入 service snmpd start 并用 service snmpd status 查看服务状态。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8F8qFUUO-1686318896468)(./%E6%9C%9F%E6%9C%ABkali%20Linux%E7%AC%94%E8%AE%B0.assets/image-20230606140814804-1686031696554-23.png)]

3.配置SNMP

命令如下:

vi /etc/snmp/snmpd.conf

配置snmpd.conf文件需要更改四个地方(默认配置基础上):

(1)配置snmp团体名(默认是public): com2sec notConfigUser default public 建议更改public为您使用的团体名称(也可以不修改)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mG0z1AJK-1686318896468)(./%E6%9C%9F%E6%9C%ABkali%20Linux%E7%AC%94%E8%AE%B0.assets/image-20230606142208426-1686032529718-25.png)]

添加内容:

允许本机访问用于测试 社区名称为 public

com2sec notConfigUser default public修改为:com2sec notConfigUser 127.0.0.1 public

允许ip为192.168.18.133的管理主机访问 社区名称为 public(192.168.18.133为kali Linux的ip地址

com2sec notConfigUser 192.168.18.133 public

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wopdX3SX-1686318896468)(./%E6%9C%9F%E6%9C%ABkali%20Linux%E7%AC%94%E8%AE%B0.assets/image-20230606143231252.png)]

(2)将access notConfigGroup "" any noauth exact systemview none none更改为access notConfigGroup "" any noauth exact all none none

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SNzH6icb-1686318896469)(./%E6%9C%9F%E6%9C%ABkali%20Linux%E7%AC%94%E8%AE%B0.assets/image-20230606143828594-1686033510012-29.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5CE51pAu-1686318896469)(./%E6%9C%9F%E6%9C%ABkali%20Linux%E7%AC%94%E8%AE%B0.assets/image-20230606143729883-1686033452344-27.png)]

(3)将如下两行前面的注释去掉

# view all included .1 80

# view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jjBLRx6P-1686318896469)(./%E6%9C%9F%E6%9C%ABkali%20Linux%E7%AC%94%E8%AE%B0.assets/image-20230606144232113-1686033753952-31.png)]

(4)将下面俩行前面的注释去掉

# access MyROGroup "" any noauth 0 all none none

# access MyRWGroup "" any noauth 0 all all all

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cDK1gadJ-1686318896469)(./%E6%9C%9F%E6%9C%ABkali%20Linux%E7%AC%94%E8%AE%B0.assets/image-20230606144545006.png)]

配置文件修改完后,保存。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hsRpc5f8-1686318896470)(./%E6%9C%9F%E6%9C%ABkali%20Linux%E7%AC%94%E8%AE%B0.assets/image-20230606145057070-1686034258493-33.png)]

4.重启服务

命令如下:

systemctl start snmpd.service  #启动SNMP服务
systemctl enable snmpd.service  #开机启动SNMP服务

查看服务状态:

service snmpd status
>>
Redirecting to /bin/systemctl status snmpd.service
● snmpd.service - Simple Network Management Protocol (SNMP) Daemon.
   Loaded: loaded (/usr/lib/systemd/system/snmpd.service; enabled; vendor preset: disabled)
   Active: active (running) since 四 2023-06-08 17:55:45 CST; 31min ago
 Main PID: 1171 (snmpd)
    Tasks: 1
   CGroup: /system.slice/snmpd.service
           └─1171 /usr/sbin/snmpd -LS0-6d -f
6月 08 17:55:44 defense snmpd[1171]: /etc/snmp/snmpd.conf: line 77: Error:...ed
6月 08 17:55:44 defense snmpd[1171]: /etc/snmp/snmpd.conf: line 80: Error:...ay
6月 08 17:55:44 defense snmpd[1171]: /etc/snmp/snmpd.conf: line 81: Error:...ay
6月 08 17:55:44 defense snmpd[1171]: /etc/snmp/snmpd.conf: line 95: Error:...ay
6月 08 17:55:44 defense snmpd[1171]: /etc/snmp/snmpd.conf: line 96: Error:...ay
6月 08 17:55:44 defense snmpd[1171]: /etc/snmp/snmpd.conf: line 129: Error...id
6月 08 17:55:45 defense snmpd[1171]: /etc/snmp/snmpd.conf: line 130: Error...id
6月 08 17:55:45 defense snmpd[1171]: net-snmp: 8 error(s) in config file(s)
6月 08 17:55:45 defense snmpd[1171]: NET-SNMP version 5.7.2
6月 08 17:55:45 defense systemd[1]: Started Simple Network Management Prot.....
Hint: Some lines were ellipsized, use -l to show in full.

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mmPqFjVp-1686318896470)(./%E6%9C%9F%E6%9C%ABkali%20Linux%E7%AC%94%E8%AE%B0.assets/image-20230606150016588-1686034818217-35.png)]

5.验证

可以使用一个简单命令判断snmp服务是否已经成功启动:

netstat -ln | grep 161
>>
udp        0      0 0.0.0.0:161             0.0.0.0:* 

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-E58zu9pW-1686318896470)(./%E6%9C%9F%E6%9C%ABkali%20Linux%E7%AC%94%E8%AE%B0.assets/image-20230606150259808-1686034980911-37.png)]

6.关闭防火墙

命令如下:

systemctl stop firewalld.service

禁止firewall开机启动

systemctl disable firewalld.service
>>
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

查看默认防火墙状态

firewall-cmd --state
>>
not running

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-J4nckq3p-1686318896471)(./%E6%9C%9F%E6%9C%ABkali%20Linux%E7%AC%94%E8%AE%B0.assets/image-20230606150826519-1686035307863-39.png)]

6.测试

使用SNMP v2c版本,使用公共的SNMP团体字符串(示例中为"public")来获取本地主机的SNMP信息。

打开kali Linux

在终端输入如下命令:

snmpwalk -v 2c -c public 192.168.18.142

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IktWWWzp-1686318896471)(./%E6%9C%9F%E6%9C%ABkali%20Linux%E7%AC%94%E8%AE%B0.assets/image-20230606151232901-1686035554026-41.png)]

看到了一些关于系统和网络的SNMP数据输出。

至此,你已经成功搭建了SNMP服务并进行了基本配置。你可以根据具体需求进一步定制SNMP设置,如

添加更多的SNMP团体字符串、配置SNMP Trap等。

请注意,安装和配置SNMP服务涉及到系统安全性和访问控制,建议仔细评估安全需求,并采取适当的安

全措施来保护系统免受潜在的安全风险。

7.关闭snmp服务:

systemctl stop snmpd 停止服务
systemctl disable snmpd 关闭服务

用途

随着网络技术的飞速发展,在网络不断普及的同时也给网络管理带来了一些问题:

  • 网络设备数量成几何级数增加,使得网络管理员对设备的管理变得越来越困难;同时,网络作为一个复杂的分布式系统,其覆盖地域不断扩大,也使得对这些设备进行实时监控和故障排查变得极为困难。
  • 网络设备种类多种多样,不同设备厂商提供的管理接口(如命令行接口)各不相同,这使得网络管理变得愈发复杂。

在这种背景下,SNMP应运而生,SNMP是广泛应用于TCP/IP网络的网络管理标准协议,该协议能够支持网络管理系统,用以监测连接到网络上的设备是否有任何引起管理上关注的情况。通过“利用网络管理网络”的方式:

  • 网络管理员可以利用SNMP平台在网络上的任意节点完成信息查询、信息修改和故障排查等工作,工作效率得以提高。
  • 屏蔽了设备间的物理差异,SNMP仅提供最基本的功能集,使得管理任务与被管理设备的物理特性、网络类型相互独立,因而可以实现对不同设备的统一管理,管理成本低。
  • 设计简单、运行代价低,SNMP采用“尽可能简单”的设计思想,其在设备上添加的软件/硬件、报文的种类和报文的格式都力求简单,因而运行SNMP给设备造成的影响和代价都被最小化。

Windows 10中不默认安装SNMP服务的主要原因是出于安全考虑。

SNMP服务本身是一个强大的管理工具,可以提供远程访问和管理网络设备的能力。然而,它也存在一些安全风险。开放SNMP服务可能导致未经授权的访问和潜在的安全漏洞。攻击者可以利用SNMP协议中的弱点来获取敏感信息、修改设备配置或进行其他恶意活动。

在 Windows 10 1803 及更高版本(1809、1903、1909、2004)中,SNMP 服务被视为已弃用,并且未列在控制面板列表的 Windows 功能中。

由于与此协议相关的安全风险,Microsoft 计划在下一个 Windows 版本中完全删除 SNMP 服务。建议使用 Windows 远程管理支持的公共信息模型 (CIM),而不是 SNMP。在 Windows 10 的当前版本中,SNMP 服务是隐藏的。

指令

操作类型 描述 备注
Get Get操作可以从Agent中提取一个或多个参数值。
GetNext GetNext操作可以从Agent中按照字典序提取下一个参数值。
Set Set操作可以设置Agent的一个或多个参数值。
Response Response操作可以返回一个或多个参数值。这个操作是由Agent发出的,它是GetRequest、GetNextRequest、SetRequest和GetBulkRequest四种操作的响应操作。Agent接收到来自NMS的Get/Set指令后,通过MIB完成相应的查询/修改操作,然后利用Response操作将信息回应给NMS。
Trap Trap信息是Agent主动向NMS发出的信息,告知管理进程设备端出现的情况。
GetBulk GetBulk操作实现了NMS对被管理设备的信息群查询。 SNMPv1版本不支持GetBulk操作
Inform InformRequest也是被管理设备向NMS主动发送告警。与Trap告警不同的是,被管理设备发送Inform告警后,需要NMS回复InformResponse来进行确认。 SNMPv1版本不支持Inform操作
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐