可以通过以下内容,配置Mysql和PostgreSql数据库,安全TLS加密连接:
另请参看: 已知问题(issues)
自从Zabbix 5.0.5 版本开始,TLS加密参数名称已略有更改:为了更方便区分理解,增加了'Database' 数据库前缀。 在Zabbix 5.0.0-5.0.4 版本参数配置名为:TLS encryption加密, TLS certificate file证书文件 等。
可以在Zabbix 初始化安装期间,配置数据库的安全连接参数:
从Zabbix 5.0.5版本开始: 对于MySQL数据库,如果 Database host数据库主机 设置成 localhost,则会禁用Database TLS encryption 数据库TLS加密 复选框,因为使用socker套接字文件(在Unix系统下)或 共享内存(在Winodws系统下)将不能加密。对于PostgreSql,如果 Database host数据库主机 填写的值开通为斜杠/或空, TLS encryption加密 复选项也将不可用。
以下参数在证书配置模式下,TLS加密选项可用(从 Zabbix 5.0.5版本起,仅当两个复选框都被选中时,这些参数才会出现):
参数 描 | |
---|---|
数据库TLS CA文件(Database TLS CA file) 指定有效 | TLS证书颁发机构(CA)文件的完整路径。 |
数据库TLS 密钥文件(Database TLS key file) 指定有效的T | S密钥文件的完整路径。 |
数据库TLS证书文件(Database TLS certificate file) 指定有效的T | S证书文件的完整路径。 |
数据库主机验证(Database host verification) 标记此复选框 | 激活主机验证。 对于Mysql该选项默认禁用, 因为PHP Mysql类库不充许调过对等证书验证步骤。 |
数据库TLS密码列表(Database TLS cipher list) 指定有效密码 | 自定义列表。密码列表的格式必须符合OpenSSL标准。 仅适用于MySQL。 |
<note important>TLS参数必须指向有效文件。如果它们指向不存在或无效的文件,则将导致认证授权错误。
若果证书文件有写入权限,前端会产生一条系统信息(System information) 报告,告警内容 "TLS证书文件必须是只读权限。(TLS certificate files must be read-only.)" (仅当PHP用户是证书的所有者权限时显示)。
目前不支持受密码保护的证书。. :::
配置 结 | |
---|---|
无配置 (不标记// 数据库TLS加密(Database TLS encryption)// ) 连接到数据库而不进行 | 密。 |
1. 仅标记 数据库TLS加密(Database TLS encryption) 与数据库的安全 | LS连接。 |
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 配置文件.
配置 结 | |
---|---|
无 | 接到数据库而不进行加密。 |
1. 设置 DBTLSConnect=required S | rver/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证书颁发机构文件 Server/prox2. 设置 DBTLSCertFile - 指定客户端的公钥证书文件 3. 设置 DBTLSKeyFile - 指定客户端的私钥文件 |
在连接到数据库时提供客户端证书。 |
1. 设置 DBTLSCipher - 客户端允许使用直到TLS 1.2 (MySQL)TLS 或TLS 1.2的TLS协议进行连接的加密密码的列表-DBSRCipher13-客户端允许使用TLS 1.3协议进行连接的加密密码的列表 |
接是使用提供的列表中的密码进行的。 ((PostgreSQL)设置此选项将被视为错误。 |