简单网络管理协议aka SNMP用于通过计算机网络监视和管理设备。SNMP被广泛用于监视网络设备。SNMP协议通信是通过SNMP端口完成的,这些端口可以根据操作和安全性的不同而有所不同。
SNMP端口
默认情况下,SNMP使用UDP 161。UDP是一种可供选择的传输协议,根据TCP协议的不同,UDP有其优缺点。UDP根据TCP协议提供了低的操作开销和简单性。但是没有会话和对数据包的传输控制。这个特性使UDP成为一个完美的SNMP协议。
- `SNMP使用UDP 161端口。
- `SNMP Trap/Inform`使用UDP 162端口。
安全SNMP端口
安全对于今天的协议来说很重要。创建SNMP时,安全性不是一个重要的主题,创建SNMP时没有任何安全机制。随着安全性的提高,SNMP增加了一些安全扩展,比如加密。安全SNMP由RFC 3114和RFC 3826定义。此外,此安全SNMP使用不同的端口UDP 10161和UDP 10162。如我们所见,它们类似于UDP 161和UDP 162。
更改Ubuntu、Debian、Mint、Kali上的SNMP端口
在基于Debian的系统(如Ubuntu、Debian、Mint、Kali)上,SNMP服务配置存储在 /etc/snmp/snmpd.conf
. 我们可以从这里设置和更改SNMP服务的新端口 snmpd.conf
文件。由于这是一个管理级配置,我们需要使用 nano
文本编辑器 sudo
命令。
相关文章: Nmap网络扫描简介

下一行指定侦听端口号161的唯一本地主机。
agentAddress udp:127.0.0.1:161
我们可以将其更改为侦听端口5678的所有接口。
agentAddress udp:0.0.0.0:5678
保存新配置以使其生效后,我们将重新启动 snmpd
服务于 systemctl
命令如下。
$ sudo systemctl restart snmpd
检查SNMP端口状态
我们还可以检查它是否像下面那样正确地重新启动。如果出现配置错误,它将停止,但不会启动。
$ sudo systemctl status snmpd
我们也可以使用 netstat
命令来检查新的SNMP端口是否如下所示打开。 -ul
简单地说就是列出监听UDP端口。
$ netstat -ul
用Nmap扫描SNMP端口
nmap
是用来扫描网络的强大工具。我们可以使用nmap来识别给定网络或主机上的SNMP服务。在本例中,我们将扫描IP地址为192.168.142.150和192.168.122.1的两个主机,但也可以使用 192.168.142.0/24以扫描整个网络。
$ sudo nmap -sU -p 161 192.168.142.150 192.168.122.1

从nmap结果中,我们可以看到SNMP端口是打开的,这意味着SNMP服务正在运行。
使用Wireshark捕获SNMP端口流量
Wireshark用于捕获网络流量。我们可以使用Wireshark来捕获本地系统中的SNMP流量。我们将使用以下过滤器来过滤捕获流量中的SNMP。我们将使用 snmp
像下面这样过滤。
相关文章: TCP和UDP端口列表、名称和使用频率

使用Tcpdump捕获SNMP端口流量
我们可以用 tcpdump
命令行工具,以便捕获SNMP端口通信量。我们将使用 -i
选项,以指定 lo
在这种情况下。我们还将使用 port 161
参数。
$ sudo tcpdump -i lo port 161
