配置 SNMP 连接的加密

第三方应用程序可以访问通过 SNMP 发送的数据或将该数据替换为自己的数据。为确保通过 SNMP 安全传输数据,建议配置 SNMP 连接加密。

要配置 SNMP 连接加密:

  1. 添加以下行到 /etc/snmp/snmpd.conf 文件:

    view systemview included .1

  2. 获取一个 EngineID,这是处理 SNMP 陷阱所必需的。为此,请在集群中的每台服务器上运行以下命令:

    snmpget -v2c -c<community name> 127.0.0.1 SNMP-FRAMEWORK-MIB::snmpEngineID.0 2>/dev/null | sed -ne 's/ //g; s/.*:/0x/p'

    指定您的组织中使用的社区名称。如有必要,创建一个新社区。出于数据传输安全的目的,不建议使用默认的“public”社区。

    在运行命令之前,请确保 snmpd 服务正在运行。

  3. 在集群中的每个服务器上配置 snmpd 服务。若要执行此操作:
    1. 停止 snmpd 服务。为此,请运行以下命令:

      systemctl stop snmpd

    2. 创建一个新用户。为此,请运行以下命令:

      net-snmp-create-v3-user -ro -a SHA -A <password> -x <password> -X AES <username>

    3. 将以下字符串添加到 /etc/snmp/snmpd.conf 配置文件:

      # accept KSMG statistics over unix socket

      master agentx

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

      agentXPerms 770 770 kluser klusers

      # accept incoming SNMP requests over UDP

      agentAddress udp:127.0.0.1:161

      rouser <username> priv .1.3.6.1

      # comment the following line if you don't need to forward SNMP traps over an SNMPv3 connection

      trapsess -e <EngineID> -v3 -l authPriv -u <username> -a SHA -A <password> -x AES -X <password> udp:<IP address>:162

      对于 <IP address>,指示将被 snmptrapd 服务用于接受网络连接的 IP 地址。如果要在服务器本地保存 SNMP 陷阱,请输入 127.0.0.1

    4. 将以下字符串添加到配置文件/etc/snmp/snmpn. conf:

      mibdirs +/opt/kaspersky/ksmg/share/snmp-mibs/

      mibs all

      如果指定目录中不存在 snmp.conf 配置文件,请创建该文件。

    5. 启动 snmpd 服务。为此,请运行以下命令:

      systemctl start snmpd

    6. 检查 SNMP 连接。为此,请执行以下命令:

      snmpwalk -mALL -v3 -l authPriv -u <username> -a SHA -A <password> -x AES -X <password> udp:127.0.0.1:161 .1.3.6.1.4.1.23668

      snmpget -v3 -l authPriv -u <username> -a SHA -A <password> -x AES -X <password> udp:127.0.0.1:161 KSMG-PRODUCTINFO-STATISTICS::applicationName.0

  4. 在想要接收 SNMP 陷阱的服务器上配置 snmptrapd 服务。若要执行此操作:
    1. 使用以下命令停止 snmptrapd 服务:

      systemctl stop snmptrapd

    2. 将以下行添加到 /var/lib/net-snmp/snmptrapd.conf 文件:

      createUser -e <EngineID> <username> SHA "<password>" AES "<password>"

      如果指定目录中不存在 snmptrapd.conf 配置文件,请创建该文件。

      snmpd 和 snmptrapd 服务的用户账户凭据(<username><password>)必须相同。

    3. 将以下字符串添加到 /etc/snmp/snmptrapd.conf 配置文件:

      snmpTrapdAddr udp:<IP address>:162

      authUser log <username> priv

      disableAuthorization no

      如果指定目录中不存在 snmptrapd.conf 配置文件,请创建该文件。

    4. 启动 snmptrapd 服务。为此,请运行以下命令:

      systemctl start snmptrapd

      确保 /var/lib/net-snmp/snmptrapd.conf 文件中以纯文本形式指示的密码已替换为混淆的字符序列。为此,您可能需要多次使用 systemctl restart snmptrapd 命令重新启动 snmptrapd 服务。

    5. 添加 snmptrapd 服务以自动启动。为此,请运行以下命令:

      systemctl enable snmptrapd

    6. 运行以下命令检查 SNMP 连接:

      snmptrap -e <EngineID> -v3 -l authPriv -u <username> -a SHA -A <password> -x AES -X <password> udp:<IP address>:162 0 KSMG-EVENTS-MIB::restartedBinary

      确保以下字符串出现在 /var/log/messages 文件中:

      <date and time> <hostname> snmptrapd[7503]: <date and time> localhost [UDP: [127.0.0.1]:26325->[<IP address>]:162]:#012DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (0) 0:00:00.00#011SNMPv2-MIB::snmpTrapOID.0 = OID: KSMG-EVENTS-MIB::restartedBinary

    对于 <IP address>,指示将被 snmptrapd 服务用于接受网络连接的 IP 地址。如果要在服务器本地保存 SNMP 陷阱,请输入 127.0.0.1

SNMP 连接加密现已配置。

页面顶部