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加密 复选项也将不可用。
以下参数在证书配置模式下,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参数控制配置 server 或 proxy 配置文件.
配置 | 结果 |
---|---|
无 | 连接到数据库而不进行加密。 |
1. 设置 DBTLSConnect=required | Server/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)设置此选项将被视为错误。 |