在操作系统中配置 snmpd 服务

2024年5月23日

ID 222969

通过 SNMP 与 KSMG 进行交互是使用操作系统的“snmpd”服务来实现的。snmpd 服务充当主代理,通过 SNMP 接收和处理来自监控系统和其他外部使用者的请求。KSMG 通过 UNIX 套接字通过 AgentX 协议作为子代理连接到 snmpd 服务。

创建用于访问数据的用户账户

创建账户之前,请停止 snmpd 服务。

为了保证使用身份验证和加密通过 SNMPv3 访问数据的安全性,您需要在 snmpd 服务端创建一个用户账户,其中包含以下信息:

  • 用户名(区分大小写)
  • 身份验证算法(MD5 或 SHA,推荐 SHA)
  • 身份验证密码
  • 加密算法(DES 或 AES,推荐 AES)

    加密密码

出于安全考虑,我们建议在 KSMG 集群的每个节点上使用独立的用户账户。

您可以使用 net-snmp-create-v3-user 实用程序创建用户账户。

要使用 net-snmp-create-v3-user 实用程序创建用户账户:

  1. 通过 SSH 连接到集群节点以访问技术支持模式
  2. 运行以下命令:

    net-snmp-create-v3-user -ro -a <snmp_auth_algo> -x <snmp_priv_algo> <snmp_username>

交互请求身份验证和加密密码。

示例:

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 服务:

  1. 通过 SSH 连接到集群节点以访问技术支持模式
  2. 创建一个新的配置文件并为其设置访问权限:

    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

  3. 指定 snmpd 服务必须侦听传入请求的协议、网络接口地址和端口号。
    • 如果要监听所有网络接口上的请求,请将以下行添加到配置文件中:

      # 通过 UDP 侦听传入的 SNMP 请求

      agentAddress udp:161

    • 如果只想监听本地网络接口上的请求,例如监控系统安装在同一台机器上,则添加以下行:

      # 通过 UDP 侦听传入的 SNMP 请求

      agentAddress udp:127.0.0.1:161

  4. 指定 UNIX 套接字的路径和权限,snmpd 服务必须在该套接字上侦听通过 AgentX 协议的子代理连接。为此,请将以下行添加到配置文件中:

    # 通过 UNIX 套接字监听子代理连接

    master agentx

    agentXSocket unix:/var/run/agentx-master.socket

    agentXPerms 770 770 kluser klusers

  5. 如有必要,您可以提供系统描述、系统位置以及管理员的联系地址。为此,请将以下行添加到配置文件中:

    # 系统基本信息

    sysDescr <system_description>

    sysLocation <system_location>

    sysContact <contact_address>

    sysServices 72

  6. 指定您希望通过 SNMP 协议供监控系统使用的 OID 树的范围。要访问 KSMG 数据,请将以下行添加到配置文件中:

    # Kaspersky Secure Mail Gateway SNMP statistics

    view monitoring included .1.3.6.1.4.1.23668.1735

  7. 您还可以指定 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

  8. 指定创建的用户账户的访问模式和信息范围。为此,请将以下行添加到配置文件中:

    # SNMPv3 监控系统用户的访问控制

    rouser <snmp_username> priv -V monitoring

  9. 要发送 SNMP 陷阱,请指定监控系统的 IP 地址和用于接收陷阱的用户凭据。为此,请将以下行添加到配置文件中:

    # 向监控系统发送 SNMPv3 陷阱

    trapsess -Ci -v3 -t0.1 -r1 -l authPriv -u <trap_username> -a <trap_auth_algo> -A "<trap_auth_pass>" -x <trap_priv_algo> -X "<trap_priv_pass>" udp:<IP_address>: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 服务

要应用新配置:

  1. 重启 snmpd 服务:

    systemctl restart snmpd

  2. 检查 snmpd 服务的状态:

    systemctl status snmpd

    状态必须是running

  3. 允许该服务在操作系统启动时自动启动:

    systemctl enable snmpd

  4. 如果您在操作系统或网络设备中使用防火墙,请添加规则以允许 SNMP 数据包通过。

snmpd 服务已配置。

检查 snmpd 服务的运行状况

要测试 snmpd 服务,请在 KSMG Web 界面中配置 SNMP 的使用,并使用“snmpwalk”实用程序请求 SNMP 数据。

要获取 KSMG 提供的 SNMP 数据的范围:

snmpwalk -v3 -l authPriv -u <snmp_username> -a <snmp_auth_algo> -A "<snmp_auth_pass>" -x <snmp_priv_algo> -X "<snmp_priv_pass>" <IP address> .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

Did you find this article helpful?
What can we do better?
Thank you for your feedback! You're helping us improve.
Thank you for your feedback! You're helping us improve.