3 数据库的安全连接配置

总览

可以通过以下内容,配置Mysql和PostgreSql数据库,安全TLS加密连接:

  • Zabbix 前端

  • Zabbix server 或 Zabbix proxy

另请参看: 已知问题(issues)

Zabbix 前端配置

自从Zabbix 5.0.5 版本开始,TLS加密参数名称已略有更改:为了更方便区分理解,增加了’Database’ 数据库前缀。 在Zabbix 5.0.0-5.0.4 版本参数配置名为:TLS encryption加密, TLS certificate file证书文件 等。

可以在Zabbix 初始化安装期间,配置数据库的安全连接参数:

  • 勾选Database TLS encryption数据库TLS加密 复选框Configure DB connection 启用安全传输加密。

  • 勾选TLS encryption加密 时,选择勾选Verify database certificate验证数据库证书 复选框,可以检查证书配置是否有效。

从Zabbix 5.0.5版本开始: 对于MySQL数据库,如果 Database host数据库主机 设置成 localhost,则会禁用Database TLS encryption 数据库TLS加密 复选框,因为使用socker套接字文件(在Unix系统下)或 共享内存(在Winodws系统下)将不能加密。对于PostgreSql,如果 Database host数据库主机 填写的值开通为斜杠/或空, TLS encryption加密 复选项也将不可用。

3 数据库的安全连接配置 - 图1

以下参数在证书配置模式下,TLS加密选项可用(从 Zabbix 5.0.5版本起,仅当两个复选框都被选中时,这些参数才会出现):

参数描述
数据库TLS CA文件(Database TLS CA file)指定有效的TLS证书颁发机构(CA)文件的完整路径。
数据库TLS 密钥文件(Database TLS key file)指定有效的TLS密钥文件的完整路径。
数据库TLS证书文件(Database TLS certificate file)指定有效的TLS证书文件的完整路径。
数据库主机验证(Database host verification)标记此复选框以激活主机验证。
对于Mysql该选项默认禁用, 因为PHP Mysql类库不充许调过对等证书验证步骤。
数据库TLS密码列表(Database TLS cipher list)指定有效密码的自定义列表。密码列表的格式必须符合OpenSSL标准。
仅适用于MySQL。

TLS参数必须指向有效文件。如果它们指向不存在或无效的文件,则将导致认证授权错误。
若果证书文件有写入权限,前端会产生一条系统信息(System information) 报告,告警内容 “TLS证书文件必须是只读权限。(TLS certificate files must be read-only.)” (仅当PHP用户是证书的所有者权限时显示)。

目前不支持受密码保护的证书。.

用例
配置结果
无配置 (不标记 数据库TLS加密(Database TLS encryption) )连接到数据库而不进行加密。
1. 仅标记 数据库TLS加密(Database TLS encryption)与数据库的安全TLS连接。
1. 标记 数据库TLS加密(Database TLS encryption)
2. 指定TLS证书颁发机构文件
与数据库的安全TLS连接;
验证数据库服务器证书,并验证它是否是由受信任的中心签发。
1. 标记 数据库TLS加密(Database TLS encryption)
2. 指定TLS证书颁发机构文件
3. 标记 验证主机证书(With host verification)
4. 指定TLS密码列表(可选)
与数据库的安全TLS连接;
通过配置将证书中指定的主机名与其​​所连接的主机名进行比较,来验证数据库服务器证书的有效性;
验证证书已由受信任的机构签发。
1. 标记 数据库TLS加密(Database TLS encryption)
2. 指定TLS秘钥文件
3. 指定TLS证书文件
4. 指定TLS证书授权文件
5. 标记 数据库主机验证(Database host verification) (在5.0.5之前: 使用主机验证(With host verification)
6. 指定TLS密码列表(可选)
建立到数据库的安全TLS连接具有最大的安全性保障。客户端显示证书的要求是在服务器端配置的。

另请参见: Mysql配置实例, PostgreSQL配置实例.

Zabbix server/proxy 配置

数据库安全连接功能,可以通过相关Zabbix参数控制配置 serverproxy 配置文件.

配置结果
连接到数据库而不进行加密。
1. 设置 DBTLSConnect=requiredServer/proxy 与数据库建立TLS连接。不允许未加密的连接。
1. 设置 DBTLSConnect=verify_ca
2. 设置 DBTLSCAFile - 指定TLS证书颁发机构文件
验证数据库证书后,Server/proxy与数据库建立TLS连接。
1. 设置 DBTLSConnect=verify_full
2. 设置 DBTLSCAFile - 指定TLS证书颁发机构文件
验证数据库证书和数据库主机身份后,Server/proxy与数据库建立TLS连接。
1. 设置 DBTLSCAFile - 指定TLS证书颁发机构文件
2. 设置 DBTLSCertFile - 指定客户端的公钥证书文件
3. 设置 DBTLSKeyFile - 指定客户端的私钥文件
Server/proxy 在连接到数据库时提供客户端证书。
1. 设置 DBTLSCipher - 客户端允许使用直到TLS 1.2

或TLS 1.2的TLS协议进行连接的加密密码的列表-DBSRCipher13-客户端允许使用TLS 1.3协议进行连接的加密密码的列表
(MySQL)TLS连接是使用提供的列表中的密码进行的。
((PostgreSQL)设置此选项将被视为错误。