配置 SNMP 连接的加密
2024年4月26日
ID 222536
第三方应用程序可以访问通过 SNMP 发送的数据或将该数据替换为自己的数据。为确保通过 SNMP 安全传输数据,建议配置 SNMP 连接加密。
要配置 SNMP 连接加密:
- 添加以下行到 /etc/snmp/snmpd.conf 文件:
view systemview included .1
- 获取一个 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 服务正在运行。
- 在集群中的每个服务器上配置 snmpd 服务。若要执行此操作:
- 停止 snmpd 服务。为此,请运行以下命令:
systemctl stop snmpd
- 创建一个新用户。为此,请运行以下命令:
net-snmp-create-v3-user -ro -a SHA -A <password> -x <password> -X AES <username>
- 将以下字符串添加到 /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
。 - 将以下字符串添加到配置文件/etc/snmp/snmpn. conf:
mibdirs +/opt/kaspersky/ksmg/share/snmp-mibs/
mibs all
如果指定目录中不存在 snmp.conf 配置文件,请创建该文件。
- 启动 snmpd 服务。为此,请运行以下命令:
systemctl start snmpd
- 检查 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
- 停止 snmpd 服务。为此,请运行以下命令:
- 在想要接收 SNMP 陷阱的服务器上配置 snmptrapd 服务。若要执行此操作:
- 使用以下命令停止 snmptrapd 服务:
systemctl stop snmptrapd
- 将以下行添加到 /var/lib/net-snmp/snmptrapd.conf 文件:
createUser -e <EngineID> <username> SHA "<password>" AES "<password>"
如果指定目录中不存在 snmptrapd.conf 配置文件,请创建该文件。
snmpd 和 snmptrapd 服务的用户账户凭据(
<username>
和<password>
)必须相同。 - 将以下字符串添加到 /etc/snmp/snmptrapd.conf 配置文件:
snmpTrapdAddr udp:<IP address>:162
authUser log <username> priv
disableAuthorization no
如果指定目录中不存在 snmptrapd.conf 配置文件,请创建该文件。
- 启动 snmptrapd 服务。为此,请运行以下命令:
systemctl start snmptrapd
确保 /var/lib/net-snmp/snmptrapd.conf 文件中以纯文本形式指示的密码已替换为混淆的字符序列。为此,您可能需要多次使用
systemctl restart snmptrapd
命令重新启动 snmptrapd 服务。 - 添加 snmptrapd 服务以自动启动。为此,请运行以下命令:
systemctl enable snmptrapd
- 运行以下命令检查 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
。 - 使用以下命令停止 snmptrapd 服务:
SNMP 连接加密现已配置。