Zabbix 支持使用传输层安全 (TLS) 协议 v.1.2 和 1.3(取决于加密库)在 Zabbix 组件间进行加密通信。支持基于证书和基于预共享密钥的加密。
加密可以配置用于以下连接:
加密是可选的,可以为各个组件进行配置:
Zabbix 守护进程程序使用一个监听端口处理加密和未加密的传入连接。添加加密不需要在防火墙上打开新端口。
为了支持加密,Zabbix 必须与受支持的加密库之一进行编译和链接:
tls_*()
LibreSSL 特定 API 函数。 使用 LibreSSL 编译的 Zabbix 组件将无法使用 PSK,只能使用证书。有关为 Zabbix 前端设置 SSL 的更多信息,请参阅这些 最佳实践。
通过向 "configure" 脚本指定相应的选项来选择库:
--with-gnutls[=DIR]
--with-openssl[=DIR]
(也用于 LibreSSL)例如,使用 OpenSSL 配置服务器和 agent 的源代码,您可以使用类似以下命令:
./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2 --with-openssl
不同的 Zabbix 组件可以使用不同的加密库进行编译(例如,服务器使用 OpenSSL,agent 使用 GnuTLS)。
如果您计划使用预共享密钥(PSK),请考虑在使用 PSK 的 Zabbix 组件中使用 GnuTLS 或 OpenSSL 1.1.0(或更新版本)库。GnuTLS 和 OpenSSL 1.1.0 库支持带有 前向安全性 的 PSK 密码套件。 OpenSSL 库的旧版本(1.0.1, 1.0.2c)也支持 PSK,但可用的 PSK 密码套件不提供前向安全性。
Zabbix中的连接可以使用:
有两个重要的参数用于指定Zabbix组件之间的加密:
TLSConnect
在配置文件中用于 Zabbix proxy(在主动模式下,仅指定到服务器的连接)和 Zabbix agent(用于主动检查)。在Zabbix前端,TLSConnect的等效项是 数据收集 → 主机 → <某个主机> → 加密 选项卡中的 到主机的连接 字段,以及 管理 → Proxies → <某个 proxy> → 加密 选项卡中的 到 proxy 的连接 字段。如果配置的加密类型连接失败,将不会尝试其他加密类型。
TLSAccept
在配置文件中用于 Zabbix proxy(在被动模式下,仅指定来自服务器的连接)和 Zabbix agent(用于被动检查)。在Zabbix前端,TLSAccept的等效项是 数据收集 → 主机 → <某个主机> → 加密 选项卡中的 来自主机的连接 字段,以及 管理 → Proxies → <某个 proxy> → 加密 选项卡中的 来自 proxy 的连接 字段。
通常,您只为入站连接配置一种加密类型。但您可能希望切换加密类型,例如,从无加密到基于证书的加密,以最小的停机时间和回滚可能性。为此:
TLSAccept=unencrypted,cert
并重启 Zabbix agentTLSAccept=cert
并重启 Zabbix agent。现在,agent 将只接受加密的基于证书的连接。无加密和PSK基于的连接将被拒绝。以类似的方式,它在服务器和 proxy 上工作。如果在Zabbix前端的主机配置中 来自主机的连接 设置为“证书”,则仅接受来自 agent(主动检查)和zabbix_sender(陷阱 监控项)的加密的基于证书的连接。
很可能您将配置入站和出站连接使用相同的加密类型,或者根本不使用加密。但从技术上讲,可以不对称地配置它,例如,入站为基于证书的加密,出站为PSK基于的加密。
每个主机的加密配置在Zabbix前端显示,位于 数据收集 → 主机 的 Agent 加密 列中。例如:
示例 | 到主机的连接 | 允许的来自主机的连接 | 拒绝的来自主机的连接 |
---|---|---|---|
![]() |
无加密 | 无加密 | 加密,证书和PSK基于加密 |
![]() |
加密,基于证书 | 加密,基于证书 | 无加密和PSK基于加密 |
![]() |
加密,PSK基于 | 加密,PSK基于 | 无加密和基于证书的加密 |
![]() |
加密,PSK基于 | 无加密和PSK基于加密 | 基于证书的加密 |
![]() |
加密,基于证书 | 无加密,PSK或基于证书的加密 | - |
默认情况下,连接是未加密的。必须为每个主机和 proxy 单独配置加密。
请参阅zabbix_get和zabbix_sender 操作说明使用加密。
在 Zabbix 启动期间,默认情况下内部配置密码套件。
此外,用户配置的密码套件支持 GnuTLS 和 OpenSSL。用户可以根据其安全策略配置密码套件。使用此功能是可选的(内置的默认密码套件仍然有效)。
对于使用默认设置编译的加密库,Zabbix 内置规则通常会生成以下密码套件(按优先级从高到低排列):
Library | Certificate ciphersuites | PSK ciphersuites |
---|---|---|
GnuTLS 3.1.18 | TLS_ECDHE_RSA_AES_128_GCM_SHA256 TLS_ECDHE_RSA_AES_128_CBC_SHA256 TLS_ECDHE_RSA_AES_128_CBC_SHA1 TLS_RSA_AES_128_GCM_SHA256 TLS_RSA_AES_128_CBC_SHA256 TLS_RSA_AES_128_CBC_SHA1 |
TLS_ECDHE_PSK_AES_128_CBC_SHA256 TLS_ECDHE_PSK_AES_128_CBC_SHA1 TLS_PSK_AES_128_GCM_SHA256 TLS_PSK_AES_128_CBC_SHA256 TLS_PSK_AES_128_CBC_SHA1 |
OpenSSL 1.0.2c | ECDHE-RSA-AES128-GCM-SHA256 ECDHE-RSA-AES128-SHA256 ECDHE-RSA-AES128-SHA AES128-GCM-SHA256 AES128-SHA256 AES128-SHA |
PSK-AES128-CBC-SHA |
OpenSSL 1.1.0 | ECDHE-RSA-AES128-GCM-SHA256 ECDHE-RSA-AES128-SHA256 ECDHE-RSA-AES128-SHA AES128-GCM-SHA256 AES128-CCM8 AES128-CCM AES128-SHA256 AES128-SHA |
ECDHE-PSK-AES128-CBC-SHA256 ECDHE-PSK-AES128-CBC-SHA PSK-AES128-GCM-SHA256 PSK-AES128-CCM8 PSK-AES128-CCM PSK-AES128-CBC-SHA256 PSK-AES128-CBC-SHA |
OpenSSL 1.1.1d | TLS_AES_256_GCM_SHA384 TLS_CHACHA20_POLY1305_SHA256 TLS_AES_128_GCM_SHA256 ECDHE-RSA-AES128-GCM-SHA256 ECDHE-RSA-AES128-SHA256 ECDHE-RSA-AES128-SHA AES128-GCM-SHA256 AES128-CCM8 AES128-CCM AES128-SHA256 AES128-SHA |
TLS_CHACHA20_POLY1305_SHA256 TLS_AES_128_GCM_SHA256 ECDHE-PSK-AES128-CBC-SHA256 ECDHE-PSK-AES128-CBC-SHA PSK-AES128-GCM-SHA256 PSK-AES128-CCM8 PSK-AES128-CCM PSK-AES128-CBC-SHA256 PSK-AES128-CBC-SHA |
内置的密码套件选择标准可以被用户配置的密码套件覆盖。
用户配置的密码套件是针对了解TLS密码套件、其安全性和错误后果以及熟悉TLS故障排除的高级用户的特性。
内置的密码套件选择标准可以使用以下参数覆盖:
覆盖范围 | 参数 | 值 | 描述 |
---|---|---|---|
证书的密码套件选择 | TLSCipherCert13 | 有效 OpenSSL 1.1.1 cipher strings 对于TLS 1.3协议(它们的值被传递到OpenSSL函数SSL_CTX_set_ciphersuites())。 | TLS 1.3的基于证书的加密套件选择标准 仅支持OpenSSL 1.1.1及以上版本。 |
TLSCipherCert | 针对TLS 1.2的有效OpenSSL密码字符串 或有效的GnuTLS优先级字符串。它们的值分别传递给SSL_CTX_set_cipher_list()或gnutls_priority_init()函数。 | 针对TLS 1.2/1.3 (GnuTLS)、TLS 1.2 (OpenSSL)的基于证书的密码套件选择标准。 | |
Ciphersuite selection for PSK | TLSCipherPSK13 | 有效的OpenSSL 1.1.1密码字符串 对于TLS 1.3协议(它们的值被传递到OpenSSL函数SSL_CTX_set_ciphersuites())。 | 基于psk的TLS 1.3加密套件选择标准 仅支持OpenSSL 1.1.1及以上版本。 |
TLSCipherPSK | 对于TLS 1.2有效的OpenSSL密码字符串或有效的GnuTLS优先级字符串。它们的值分别传递给SSL_CTX_set_cipher_list()或gnutls_priority_init()函数。 | 基于psk的TLS 1.2/1.3 (GnuTLS)、TLS 1.2 (OpenSSL)加密套件选择标准。 | |
Combined ciphersuite list for certificate and PSK | TLSCipherAll13 | TLS 1.3协议的有效的OpenSSL 1.1.1密码字符串(它们的值被传递到OpenSSL函数SSL_CTX_set_ciphersuites())。 | TLS 1.3 仅支持OpenSSL 1.1.1及以上版本。 |
TLSCipherAll | 对于TLS 1.2有效的OpenSSL密码字符串或有效的GnuTLS优先级字符串。它们的值分别传递给SSL_CTX_set_cipher_list()或gnutls_priority_init()函数。 | 针对TLS 1.2/1.3 (GnuTLS)、TLS 1.2 (OpenSSL)的加密套件选择标准. |
在zabbix_get和zabbix_sender工具中覆盖密码套件选择 - 使用命令行参数:
--tls-cipher13
--tls-cipher
新参数为可选参数。 如果没有指定参数,则使用内部的默认值。 如果参数已定义,则它不能为空。
如果加密库中的tlsciphher *值设置失败,则server、proxy或agent将无法启动,并记录一个错误。
理解每个参数何时适用是很重要的。
简单例子外部连接:
传入连接有点复杂,因为规则是 特定于组件和配置。
对 Zabbix agent:
Agent 连接步骤 | Cipher 配置 |
---|---|
TLSConnect=cert | TLSCipherCert, TLSCipherCert13 |
TLSConnect=psk | TLSCipherPSK, TLSCipherPSK13 |
TLSAccept=cert | TLSCipherCert, TLSCipherCert13 |
TLSAccept=psk | TLSCipherPSK, TLSCipherPSK13 |
TLSAccept=cert,psk | TLSCipherAll, TLSCipherAll13 |
对 Zabbix server and proxy:
连接 | Cipher 配置 |
---|---|
Outgoing connections using PSK | TLSCipherPSK, TLSCipherPSK13 |
Incoming connections using certificates | TLSCipherAll, TLSCipherAll13 |
Incoming connections using PSK if server has no certificate | TLSCipherPSK, TLSCipherPSK13 |
Incoming connections using PSK if server has certificate | TLSCipherAll, TLSCipherAll13 |
从上面的两个表中可以看出一些模式:
-只有当组合 使用基于证书的和PSK密码套件的列表。那里 发生时有两种情况:Server(Proxy)配置了 证书(PSK密码套件总是在Server、Proxy服务器上配置 如果加密库支持PSK),则代理配置为接受两者 基于证书和PSK的传入连接 -在其他情况下,TLSCipherCert和/或TLSCipherPSK就足够了
下表显示了“TLSCipher*”内置默认值。他们 可能是您自己的自定义值的一个很好的起点。
参数 | GnuTLS 3.6.12 |
---|---|
TLSCipherCert | NONE:+VERS-TLS1.2:+ECDHE-RSA:+RSA:+AES-128-GCM:+AES-128-CBC:+AEAD:+SHA256:+SHA1:+CURVE-ALL:+COMP-NULL:+SIGN-ALL:+CTYPE-X.509 |
TLSCipherPSK | NONE:+VERS-TLS1.2:+ECDHE-PSK:+PSK:+AES-128-GCM:+AES-128-CBC:+AEAD:+SHA256:+SHA1:+CURVE-ALL:+COMP-NULL:+SIGN-ALL |
TLSCipherAll | NONE:+VERS-TLS1.2:+ECDHE-RSA:+RSA:+ECDHE-PSK:+PSK:+AES-128-GCM:+AES-128-CBC:+AEAD:+SHA256:+SHA1:+CURVE-ALL:+COMP-NULL:+SIGN-ALL:+CTYPE-X.509 |
参数 | OpenSSL 1.1.1d 1 |
---|---|
TLSCipherCert13 | |
TLSCipherCert | EECDH+aRSA+AES128:RSA+aRSA+AES128 |
TLSCipherPSK13 | TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256 |
TLSCipherPSK | kECDHEPSK+AES128:kPSK+AES128 |
TLSCipherAll13 | |
TLSCipherAll | EECDH+aRSA+AES128:RSA+aRSA+AES128:kECDHEPSK+AES128:kPSK+AES128 |
1 旧版本的OpenSSL(1.0.1,1.0.2、1.1.0)、LibreSSL以及在不支持PSK的情况下编译的OpenSSL的默认值不同。
用户配置的密码套件示例
请参阅以下用户配置密码套件的示例:
要查看哪些加密套件已经被选中,你需要在配置文件中设置'DebugLevel=4',或者对zabbix_sender使用' -vv '选项。
在获得所需的密码组之前,可能需要对“TLSCipher”参数进行一些实验。 为了调整“TLSCipher”参数,多次重启Zabbix server、proxy或agent是不方便的。 更方便的选项是使用zabbix_sender或' openssl '命令。 让我们几种都看看如何实现。
1. 使用 zabbix_sender.
让我们做一个测试配置文件,例如/home/zabbix/test.conf,使用zabbix_agentd.conf文件的规则:
Hostname=nonexisting
ServerActive=nonexisting
TLSConnect=cert
TLSCAFile=/home/zabbix/ca.crt
TLSCertFile=/home/zabbix/agent.crt
TLSKeyFile=/home/zabbix/agent.key
TLSPSKIdentity=nonexisting
TLSPSKFile=/home/zabbix/agent.psk
在本例中,您需要有效的CA和代理证书以及PSK。 为您的环境调整证书和PSK文件路径和名称。
如果你不使用证书,而只使用PSK,你可以制作一个更简单的测试文件:
Hostname=nonexisting
ServerActive=nonexisting
TLSConnect=psk
TLSPSKIdentity=nonexisting
TLSPSKFile=/home/zabbix/agentd.psk
运行zabbix_sender(用OpenSSL 1.1.d编译的例子)可以看到所选的密码套件:
$ zabbix_sender -vv -c /home/zabbix/test.conf -k nonexisting_item -o 1 2>&1 | grep ciphersuites
zabbix_sender [41271]: DEBUG: zbx_tls_init_child() certificate ciphersuites: TLS_AES_256_GCM_SHA384 TLS_CHACHA20_POLY1305_SHA256 TLS_AES_128_GCM_SHA256 ECDHE-RSA-AES128-GCM-SHA256 ECDHE-RSA-AES128-SHA256 ECDHE-RSA-AES128-SHA AES128-GCM-SHA256 AES128-CCM8 AES128-CCM AES128-SHA256 AES128-SHA
zabbix_sender [41271]: DEBUG: zbx_tls_init_child() PSK ciphersuites: TLS_CHACHA20_POLY1305_SHA256 TLS_AES_128_GCM_SHA256 ECDHE-PSK-AES128-CBC-SHA256 ECDHE-PSK-AES128-CBC-SHA PSK-AES128-GCM-SHA256 PSK-AES128-CCM8 PSK-AES128-CCM PSK-AES128-CBC-SHA256 PSK-AES128-CBC-SHA
zabbix_sender [41271]: DEBUG: zbx_tls_init_child() certificate and PSK ciphersuites: TLS_AES_256_GCM_SHA384 TLS_CHACHA20_POLY1305_SHA256 TLS_AES_128_GCM_SHA256 ECDHE-RSA-AES128-GCM-SHA256 ECDHE-RSA-AES128-SHA256 ECDHE-RSA-AES128-SHA AES128-GCM-SHA256 AES128-CCM8 AES128-CCM AES128-SHA256 AES128-SHA ECDHE-PSK-AES128-CBC-SHA256 ECDHE-PSK-AES128-CBC-SHA PSK-AES128-GCM-SHA256 PSK-AES128-CCM8 PSK-AES128-CCM PSK-AES128-CBC-SHA256 PSK-AES128-CBC-SHA
这里可以看到默认选择的密码套件。 选择这些默认值是为了确保与运行在较早OpenSSL版本(从1.0.1开始)的系统上的Zabbix代理的互操作性。
在较新的系统中,你可以选择通过只允许一些密码套件来加强安全性,例如。 只有PFS(完全向前保密)密码套件。 让我们尝试只允许使用' TLSCipher* '参数的PFS加密套件。
如果使用PSK,结果将无法与使用OpenSSL 1.0.1和1.0.2的系统进行互操作。 基于证书的加密应该可以工作。
添加两行到' test.conf '配置文件:
然后再测试一次:
$ zabbix_sender -vv -c /home/zabbix/test.conf -k nonexisting_item -o 1 2>&1 | grep ciphersuites
zabbix_sender [42892]: DEBUG: zbx_tls_init_child() certificate ciphersuites: TLS_AES_256_GCM_SHA384 TLS_CHACHA20_POLY1305_SHA256 TLS_AES_128_GCM_SHA256 ECDHE-RSA-AES128-GCM-SHA256 ECDHE-RSA-AES128-SHA256 ECDHE-RSA-AES128-SHA
zabbix_sender [42892]: DEBUG: zbx_tls_init_child() PSK ciphersuites: TLS_CHACHA20_POLY1305_SHA256 TLS_AES_128_GCM_SHA256 ECDHE-PSK-AES128-CBC-SHA256 ECDHE-PSK-AES128-CBC-SHA
zabbix_sender [42892]: DEBUG: zbx_tls_init_child() certificate and PSK ciphersuites: TLS_AES_256_GCM_SHA384 TLS_CHACHA20_POLY1305_SHA256 TLS_AES_128_GCM_SHA256 ECDHE-RSA-AES128-GCM-SHA256 ECDHE-RSA-AES128-SHA256 ECDHE-RSA-AES128-SHA AES128-GCM-SHA256 AES128-CCM8 AES128-CCM AES128-SHA256 AES128-SHA ECDHE-PSK-AES128-CBC-SHA256 ECDHE-PSK-AES128-CBC-SHA PSK-AES128-GCM-SHA256 PSK-AES128-CCM8 PSK-AES128-CCM PSK-AES128-CBC-SHA256 PSK-AES128-CBC-SHA
“证书密码套件”和“PSK密码套件”列表已更改 - 它们比以前短,只包含预期的TLS 1.3加密套件和TLS 1.2 ECDHE-*加密套件。
2. TLSCipherAll和TLSCipherAll13不能被zabbix_sender测试; 它们不会影响上面示例中显示的“证书和PSK密码套件”的值。 要调整TLSCipherAll和TLSCipherAll13,你需要用agent、proxy或server进行实验。
因此,为了只允许PFS密码套件,您可能需要添加最多三个参数
TLSCipherCert=EECDH+aRSA+AES128
TLSCipherPSK=kECDHEPSK+AES128
TLSCipherAll=EECDH+aRSA+AES128:kECDHEPSK+AES128
如果zabbix_agentd.conf、zabbix_proxy.conf和zabbix_server_conf都配置了证书,并且agent也有PSK。
如果Zabbix环境只使用基于psk的加密并且没有证书,那么只有一个:
现在您已经了解了它的工作原理,您可以在Zabbix之外使用“openssl”命令测试密码套件的选择。 让我们测试三个' TLSCipher* '参数值:
$ openssl ciphers EECDH+aRSA+AES128 | sed 's/:/ /g'
TLS_AES_256_GCM_SHA384 TLS_CHACHA20_POLY1305_SHA256 TLS_AES_128_GCM_SHA256 ECDHE-RSA-AES128-GCM-SHA256 ECDHE-RSA-AES128-SHA256 ECDHE-RSA-AES128-SHA
$ openssl ciphers kECDHEPSK+AES128 | sed 's/:/ /g'
TLS_AES_256_GCM_SHA384 TLS_CHACHA20_POLY1305_SHA256 TLS_AES_128_GCM_SHA256 ECDHE-PSK-AES128-CBC-SHA256 ECDHE-PSK-AES128-CBC-SHA
$ openssl ciphers EECDH+aRSA+AES128:kECDHEPSK+AES128 | sed 's/:/ /g'
TLS_AES_256_GCM_SHA384 TLS_CHACHA20_POLY1305_SHA256 TLS_AES_128_GCM_SHA256 ECDHE-RSA-AES128-GCM-SHA256 ECDHE-RSA-AES128-SHA256 ECDHE-RSA-AES128-SHA ECDHE-PSK-AES128-CBC-SHA256 ECDHE-PSK-AES128-CBC-SHA
你可能更喜欢 openssl ciphers
带参数 -V
执行 得到更详细的信息 输出:
$ openssl ciphers -V EECDH+aRSA+AES128:kECDHEPSK+AES128
0x13,0x02 - TLS_AES_256_GCM_SHA384 TLSv1.3 Kx=any Au=any Enc=AESGCM(256) Mac=AEAD
0x13,0x03 - TLS_CHACHA20_POLY1305_SHA256 TLSv1.3 Kx=any Au=any Enc=CHACHA20/POLY1305(256) Mac=AEAD
0x13,0x01 - TLS_AES_128_GCM_SHA256 TLSv1.3 Kx=any Au=any Enc=AESGCM(128) Mac=AEAD
0xC0,0x2F - ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 Kx=ECDH Au=RSA Enc=AESGCM(128) Mac=AEAD
0xC0,0x27 - ECDHE-RSA-AES128-SHA256 TLSv1.2 Kx=ECDH Au=RSA Enc=AES(128) Mac=SHA256
0xC0,0x13 - ECDHE-RSA-AES128-SHA TLSv1 Kx=ECDH Au=RSA Enc=AES(128) Mac=SHA1
0xC0,0x37 - ECDHE-PSK-AES128-CBC-SHA256 TLSv1 Kx=ECDHEPSK Au=PSK Enc=AES(128) Mac=SHA256
0xC0,0x35 - ECDHE-PSK-AES128-CBC-SHA TLSv1 Kx=ECDHEPSK Au=PSK Enc=AES(128) Mac=SHA1
类似地,你可以测试GnuTLS的优先级字符串:
$ gnutls-cli -l --priority=NONE:+VERS-TLS1.2:+ECDHE-RSA:+AES-128-GCM:+AES-128-CBC:+AEAD:+SHA256:+CURVE-ALL:+COMP-NULL:+SIGN-ALL:+CTYPE-X.509
Cipher suites for NONE:+VERS-TLS1.2:+ECDHE-RSA:+AES-128-GCM:+AES-128-CBC:+AEAD:+SHA256:+CURVE-ALL:+COMP-NULL:+SIGN-ALL:+CTYPE-X.509
TLS_ECDHE_RSA_AES_128_GCM_SHA256 0xc0, 0x2f TLS1.2
TLS_ECDHE_RSA_AES_128_CBC_SHA256 0xc0, 0x27 TLS1.2
Protocols: VERS-TLS1.2
Ciphers: AES-128-GCM, AES-128-CBC
MACs: AEAD, SHA256
Key Exchange Algorithms: ECDHE-RSA
Groups: GROUP-SECP256R1, GROUP-SECP384R1, GROUP-SECP521R1, GROUP-X25519, GROUP-X448, GROUP-FFDHE2048, GROUP-FFDHE3072, GROUP-FFDHE4096, GROUP-FFDHE6144, GROUP-FFDHE8192
PK-signatures: SIGN-RSA-SHA256, SIGN-RSA-PSS-SHA256, SIGN-RSA-PSS-RSAE-SHA256, SIGN-ECDSA-SHA256, SIGN-ECDSA-SECP256R1-SHA256, SIGN-EdDSA-Ed25519, SIGN-RSA-SHA384, SIGN-RSA-PSS-SHA384, SIGN-RSA-PSS-RSAE-SHA384, SIGN-ECDSA-SHA384, SIGN-ECDSA-SECP384R1-SHA384, SIGN-EdDSA-Ed448, SIGN-RSA-SHA512, SIGN-RSA-PSS-SHA512, SIGN-RSA-PSS-RSAE-SHA512, SIGN-ECDSA-SHA512, SIGN-ECDSA-SECP521R1-SHA512, SIGN-RSA-SHA1, SIGN-ECDSA-SHA1
Zabbix 使用 AES128 作为数据的内置默认值。假设您正在使用证书并希望在 OpenSSL 1.1.1 上切换到 AES256。
这可以通过在配置文件中添加相应的参数来实现。 zabbix_server.conf
:
TLSCAFile=/home/zabbix/ca.crt
TLSCertFile=/home/zabbix/server.crt
TLSKeyFile=/home/zabbix/server.key
TLSCipherCert13=TLS_AES_256_GCM_SHA384
TLSCipherCert=EECDH+aRSA+AES256:-SHA1:-SHA384
TLSCipherPSK13=TLS_CHACHA20_POLY1305_SHA256
TLSCipherPSK=kECDHEPSK+AES256:-SHA1
TLSCipherAll13=TLS_AES_256_GCM_SHA384
TLSCipherAll=EECDH+aRSA+AES256:-SHA1:-SHA384
虽然只会使用与证书相关的密码套件,但也定义了 TLSCipherPSK*
参数,以避免其默认值包含为更广泛的互操作性而设计的安全性较低的密码。PSK 密码套件不能在server/proxy上完全禁用。
和在 zabbix_agentd.conf
: