在操作系统中配置 snmpd 服务
2024年12月12日
ID 222969
通过 SNMP 与 KSMG 进行交互是使用操作系统的“snmpd”服务来实现的。snmpd 服务充当主代理,通过 SNMP 接收和处理来自监控系统和其他外部使用者的请求。KSMG 通过 UNIX 套接字通过 AgentX 协议作为子代理连接到 snmpd 服务。
创建用于访问数据的用户账户
创建账户之前,请停止 snmpd 服务。
为了保证使用身份验证和加密通过 SNMPv3 访问数据的安全性,您需要在 snmpd 服务端创建一个用户账户,其中包含以下信息:
- 用户名(区分大小写)
- 身份验证算法(MD5 或 SHA,推荐 SHA)
- 身份验证密码
- 加密算法(仅支持 AES)
- 加密密码
出于安全考虑,我们建议在 KSMG 集群的每个节点上使用独立的用户账户。
您可以使用 net-snmp-create-v3-user 实用程序创建用户账户。
要使用 net-snmp-create-v3-user 实用程序创建用户账户:
- 通过 SSH 连接到集群节点以访问技术支持模式。
- 运行以下命令:
net-snmp-create-v3-user -ro -a <身份验证算法> -x <加密算法> <用户名>
交互请求身份验证和加密密码。
示例:
net-snmp-create-v3-user -ro -a SHA -x AES MonitoringUser
创建用于接收 SNMP 陷阱的用户账户
要通过身份验证和加密通过 SNMPv3 接收 SNMP 陷阱,您需要在相应服务(通常是 snmptrapd 服务)的上下文中在监控系统一侧创建一个账户。
该账户必须包含以下信息:
- 用户名
- 身份验证算法
- 身份验证密码
- 加密算法
- 加密密码
出于安全目的,您必须使用单独的用户账户来访问数据和接收 SNMP 陷阱。
我们建议创建独立的用户账户,用于从 KSMG 集群的每个节点接收 SNMP 陷阱。
有关创建用于接收 SNMP 陷阱的用户账户的说明,请参阅监控系统的文档。
配置 snmpd 服务
snmpd 服务的配置存储在 /etc/snmp/snmpd.conf 文件中。您必须创建一个新的配置文件并按给定顺序添加以下行。
要配置 snmpd 服务:
- 通过 SSH 连接到集群节点以访问技术支持模式。
- 创建一个新的配置文件并为其设置访问权限:
mv -f /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.backup
touch /etc/snmp/snmpd.conf
chown root:root /etc/snmp/snmpd.conf
chmod 600 /etc/snmp/snmpd.conf
- 指定 snmpd 服务必须侦听传入请求的协议、网络接口地址和端口号。
- 如果要监听所有网络接口上的请求,请将以下行添加到配置文件中:
# 通过 UDP 侦听传入的 SNMP 请求
agentAddress udp:161
- 如果只想监听本地网络接口上的请求,例如监控系统安装在同一台机器上,则添加以下行:
# 通过 UDP 侦听传入的 SNMP 请求
agentAddress udp:127.0.0.1:161
- 如果要监听所有网络接口上的请求,请将以下行添加到配置文件中:
- 指定 UNIX 套接字的路径和权限,snmpd 服务必须在该套接字上侦听通过 AgentX 协议的子代理连接。为此,请将以下行添加到配置文件中:
# 通过 UNIX 套接字监听子代理连接
master agentx
agentXSocket unix:/var/run/agentx-master.socket
agentXPerms 770 770 kluser klusers
- 如有必要,您可以提供系统描述、系统位置以及管理员的联系地址。为此,请将以下行添加到配置文件中:
# 系统基本信息
sysDescr <system_description>
sysLocation <system_location>
sysContact <contact_address>
sysServices 72
- 指定您希望通过 SNMP 协议供监控系统使用的 OID 树的范围。要访问 KSMG 数据,请将以下行添加到配置文件中:
# Kaspersky Secure Mail Gateway SNMP statistics
view monitoring included .1.3.6.1.4.1.23668.1735
- 您还可以指定 OID 树的范围,其中包含 snmpd 服务存储的有关操作系统的信息。该范围将可供您的监控系统使用。
有关操作系统的信息包括例如有关 CPU 和 RAM 使用情况、磁盘分区上的可用空间、网络接口负载的信息;已安装软件的列表;打开的网络连接列表;以及正在运行的进程的列表。该信息的一部分可能是机密的。
- 如果您只想允许访问一般系统信息以及有关 RAM、CPU 和磁盘设备使用情况的信息,请将以下行添加到配置文件中:
# SNMPv2-MIB - 基本系统信息
view monitoring included .1.3.6.1.2.1.1
# HOST-RESOURCES-MIB - CPU、内存、文件系统
view monitoring included .1.3.6.1.2.1.25.1
view monitoring included .1.3.6.1.2.1.25.2
view monitoring included .1.3.6.1.2.1.25.3
view monitoring included .1.3.6.1.2.1.25.5
# UCD-SNMP-MIB - 内存和 CPU 使用情况
view monitoring included .1.3.6.1.4.1.2021.4
view monitoring included .1.3.6.1.4.1.2021.10
view monitoring included .1.3.6.1.4.1.2021.11
# UCD-SNMP-DISKIO-MIB - 块设备 I/O 统计信息
view monitoring included .1.3.6.1.4.1.2021.13
# IF-MIB - 网络接口 I/O 统计信息
view monitoring included .1.3.6.1.2.1.2
view monitoring included .1.3.6.1.2.1.31
- 如果要允许访问所有系统信息,请将以下行添加到配置文件中:
# 允许访问整个 OID 树
view monitoring included .1
- 如果您只想允许访问一般系统信息以及有关 RAM、CPU 和磁盘设备使用情况的信息,请将以下行添加到配置文件中:
- 指定创建的用户账户的访问模式和信息范围。为此,请将以下行添加到配置文件中:
# SNMPv3 监控系统用户的访问控制
rouser <用户名> priv -V monitoring
- 要发送 SNMP 陷阱,请指定监控系统的 IP 地址和用于接收陷阱的用户凭据。为此,请将以下行添加到配置文件中:
# 向监控系统发送 SNMPv3 陷阱
trapsess -Ci -v3 -t0.1 -r1 -l authPriv -u <用户名> -a <身份验证算法> -A "<身份验证密码>" -x <加密算法> -X "<加密密码>" udp:<IP 地址>:162
将配置 snmpd 服务。
要与多个监控系统集成,请为每个系统创建一个单独的用户账户,指定每个用户账户的可用信息范围(“view”和“rouser”指令)并配置 SNMP 陷阱的发送(“trapsess”指令)。
snmpd 服务配置文件示例: # 通过 UDP 侦听传入的 SNMP 请求 agentAddress udp:161
# 通过 UNIX 套接字监听子代理连接 master agentx agentXSocket unix:/var/run/agentx-master.socket agentXPerms 770 770 kluser klusers
# 系统基本信息 sysDescr Example Mail Gateway Server, Node 05 sysLocation Example Datacenter, Ground floor, B23-U45 sysContact Mail system administrator <admin@example.com> sysServices 72
# Kaspersky Secure Mail Gateway SNMP statistics view monitoring included .1.3.6.1.4.1.23668.1735
# SNMPv2-MIB - 基本系统信息 view monitoring included .1.3.6.1.2.1.1 # HOST-RESOURCES-MIB - CPU、内存、文件系统 view monitoring included .1.3.6.1.2.1.25.1 view monitoring included .1.3.6.1.2.1.25.2 view monitoring included .1.3.6.1.2.1.25.3 view monitoring included .1.3.6.1.2.1.25.5 # UCD-SNMP-MIB - 内存和 CPU 使用情况 view monitoring included .1.3.6.1.4.1.2021.4 view monitoring included .1.3.6.1.4.1.2021.10 view monitoring included .1.3.6.1.4.1.2021.11 # UCD-SNMP-DISKIO-MIB - 块设备 I/O 统计信息 view monitoring included .1.3.6.1.4.1.2021.13 # IF-MIB - 网络接口 I/O 统计信息 view monitoring included .1.3.6.1.2.1.2 view monitoring included .1.3.6.1.2.1.31
# SNMPv3 监控系统用户的访问控制 rouser MonitoringUser priv -V monitoring
# 向监控系统发送 SNMPv3 陷阱 trapsess -Ci -v3 -t0.1 -r1 -l authPriv -u TrapUser -a SHA -A "TrapAuthSecret" -x AES -X "TrapPrivSecret" udp:10.16.32.64:162 |
使用新配置启动 snmpd 服务
要应用新配置:
- 重启 snmpd 服务:
systemctl restart snmpd
- 检查 snmpd 服务的状态:
systemctl status snmpd
状态必须是
running
。 - 允许该服务在操作系统启动时自动启动:
systemctl enable snmpd
- 如果您在操作系统或网络设备中使用防火墙,请添加规则以允许 SNMP 数据包通过。
snmpd 服务已配置。
检查 snmpd 服务的运行状况
要测试 snmpd 服务,请在 KSMG Web 界面中配置 SNMP 的使用,并使用“snmpwalk”实用程序请求 SNMP 数据。
要获取 KSMG 提供的 SNMP 数据的范围:
snmpwalk -v3 -l authPriv -u <用户名> -a <身份验证算法> -A "<身份验证密码>" -x <加密算法> -X "<加密密码>" <IP 地址> .1.3.6.1.4.1.23668.1735
示例: snmpwalk -v3 -l authPriv -u MonitoringUser -a SHA -A "MonitoringAuthSecret" -x AES -X "MonitoringPrivSecret" 127.0.0.1 .1.3.6.1.4.1.23668.1735 |