2 使用预共享秘钥

    概述

    • 秘密 PSK 字符串值。

    PSK 标识字符串是非空 UTF-8 字符串。例如,”PSK ID 001 Zabbix agentd”。它是一个唯一的名称,Zabbix组件通过该名称引用此特定PSK。不要将敏感信息放在 PSK 标识字符串中 - 它是通过未加密的网络传输的。

    PSK 值是一个难以猜测的十六进制数字字符串,例如, “e560cb0d918d26d31b4f642181f5f570ad89a390931102e5391d08327ba434e9”。

    尺寸限制

    Zabbix中的PSK标识和值有大小限制,在某些情况下,加密库可以具有下限:

    Zabbix 前端允许配置最多128 个字符长的 PSK 标识字符串和 2048 位长的 PSK,而不考虑使用哪种加密库。
    如果某些Zabbix组件支持下限,则用户有责任为这些组件配置具有允许长度的PSK标识和值。
    超过长度限制会导致Zabbix组件之间的通信故障。

    在Zabbix服务器使用PSK连接到代理之前,服务器会在数据库(实际上是在配置缓存中)中查找为该代理配置的PSK标识和PSK值。收到连接后,代理使用其配置文件中的PSK标识和PSK值。 如果双方具有相同的PSK标识字符串和PSK值,则连接可能会成功。

    用户有责任确保没有两个具有相同标识字符串但值不同的PSK。 否则,使用带有此PSK标识字符串的PSK的Zabbix组件之间的通信可能会出现不可预测的中断。

    生成 PSK

    例如,可以使用以下命令生成 256 位 (32 字节)PSK:

    • 对于OpenSSL:
    • 对于 GnuTLS:

    $ psktool -u psk_identity -p database.psk -s 32 为用户 ‘psk_identity’生成随机密钥 密钥存储到 database.psk $ cat database.psk psk_identity:9b8eafedfaae00cece62e85d5f4792c7d9c9bcc851b23216a1d300311cc4f7cb

    为服务器-代理通信配置 PSK(示例)

    在代理主机上,将 PSK 值写入文件,例如,。该文件必须在第一个文本字符串中包含 PSK,例如:

    1. 1f87b595725ac58dd977beef14b97461a7c1045b9a1c963065002c5473194952

    设置PSK文件的访问权限 - 它必须只能由Zabbix用户读取。

    在代理配置文件 zabbix_agentd.conf中编辑TLS参数,例如,设置:

    代理将连接到服务器(活动检查)并只接受来自zabbix_get 使用PSK的服务器连接。 PSK 标识将是 “PSK 001”。

    重新启动代理。现在,您可以使用 zabbix_get测试连接,例如:

    (为了最大限度地减少停机时间,请参阅如何在 连接加密管理)中更改连接类型

    在 Zabbix 前端中为此代理配置 PSK 加密:

    • 转到: 配置→ 主机
    • 选择主机,然后单击 加密 选项卡

    例如:

    所有必填字段都标有红色星号。

    当配置缓存与数据库同步时,新连接将使用 PSK。检查服务器和代理日志文件中是否有错误消息。

    为服务器配置 PSK - 活动代理通信(示例)

    在代理上,将 PSK 值写入文件,例如, /home/zabbix/zabbix_proxy.psk。该文件必须在第一个文本字符串中包含 PSK,例如:

    设置PSK文件的访问权限 - 它必须只能由Zabbix用户读取。

    在代理配置文件 zabbix_proxy.conf中编辑TLS参数, 例如,设置:

    1. TLSConnect=psk
    2. TLSPSKIdentity=PSK 002

    代理将使用 PSK 连接到服务器。PSK 标识将是 “PSK 002”。

    (为最大限度地减少停机时间,请参阅 连接加密管理)。

    在 Zabbix 前端中为此代理配置 PSK。 转到管理→代理, 选择代理, 转到 “加密” 选项卡。 在”来自代理的连接” 中,标记PSK。将”PSK 002”粘贴到”PSK 标识”字段中,将”e560cb0d918d26d31b4f642181f5f570ad89a390931102e5391d08327ba434e9” 粘贴到”PSK” 字段。 点击 “更新”。

    对于被动代理,该过程非常相似。唯一的区别是 - 在代理配置文件中设置 TLSAccept=psk,并将Zabbix前端中的 “连接到 代理” 设置为 PSK