Esta seção fornece etapas de configuração do Zabbix e exemplos de configuração para conexões TLS seguras entre:
| Banco de dados | Componentes do Zabbix |
|---|---|
| MySQL | Frontend do Zabbix, server do Zabbix, proxy do Zabbix |
| PostgreSQL | Frontend do Zabbix, server do Zabbix, proxy do Zabbix |
Para configurar a criptografia de conexão dentro do SGBD, consulte a documentação oficial do fornecedor para obter detalhes:
Todos os exemplos são baseados nas versões GA do MySQL CE (8.0) e PgSQL (13) disponíveis através dos repositórios oficiais usando CentOS 8.
O seguinte é necessário para configurar a criptografia:
Recomenda-se evitar sistemas operacionais em status de fim de vida, especialmente no caso de novas instalações
Definir esta opção força o uso de conexão TLS com o banco de dados a partir do Zabbix server/proxy e frontend para o banco de dados:
required - conectar usando TLS como modo de transporte sem verificações de identidadeverify_ca - conectar usando TLS e verificar o certificadoverify_full - conectar usando TLS, verificar o certificado e verificar se a identidade do banco de dados (CN) especificada por DBHost corresponde ao seu certificadoUma conexão segura com o banco de dados pode ser configurada durante a instalação do frontend:
Para MySQL, a caixa Criptografia TLS do banco de dados é desabilitada se o Host do banco de dados estiver definido como localhost, porque a conexão que usa um arquivo de soquete (no Unix) ou memória compartilhada (no Windows) não pode ser criptografada.
Para PostgreSQL, a caixa Criptografia TLS é desabilitada se o valor do campo Host do banco de dados começar com uma barra ou o campo estiver vazio.
Os seguintes parâmetros ficam disponíveis no modo de criptografia TLS com certificados (se ambas as caixas estiverem marcadas):
| Parâmetro | Descrição |
|---|---|
| Arquivo CA TLS do banco de dados | Especifique o caminho completo para um arquivo de autoridade certificadora (CA) TLS válido. |
| Arquivo de chave TLS do banco de dados | Especifique o caminho completo para um arquivo de chave TLS válido. |
| Arquivo de certificado TLS do banco de dados | Especifique o caminho completo para um arquivo de certificado TLS válido. |
| Verificação do host do banco de dados | Marque esta caixa para ativar a verificação do host. Desabilitado para MYSQL, pois a biblioteca PHP MySQL não permite pular a etapa de validação do certificado do par. |
| Lista de cifras TLS do banco de dados | Especifique uma lista personalizada de cifras válidas. O formato da lista de cifras deve estar em conformidade com o padrão OpenSSL. Disponível apenas para MySQL. |
Os parâmetros TLS devem apontar para arquivos válidos. Se apontarem para arquivos inexistentes ou inválidos, isso resultará em erro de autorização.
Se os arquivos de certificado forem graváveis, o frontend gera um aviso no relatório Informações do sistema de que "Os arquivos de certificado TLS devem ser somente leitura." (exibido apenas se o usuário do PHP for o proprietário do certificado).
Certificados protegidos por senha não são suportados.
O frontend do Zabbix usa a interface GUI para definir as opções possíveis: required, verify_ca, verify_full. Especifique as opções necessárias na etapa do assistente de instalação Configurar conexões com o BD. Essas opções são mapeadas para o arquivo de configuração (zabbix.conf.php) da seguinte maneira:
| Configurações da GUI | Arquivo de configuração | Descrição | Resultado |
|---|---|---|---|
![]() |
... // Usado para conexão TLS. $DB['ENCRYPTION'] = true; $DB['KEY_FILE'] = ''; $DB['CERT_FILE'] = ''; $DB['CA_FILE'] = ''; $DB['VERIFY_HOST'] = false; $DB['CIPHER_LIST'] = ''; ... |
Marque Criptografia TLS do banco de dados Deixe Verificar certificado do banco de dados desmarcado |
Habilita o modo required. |
![]() |
... $DB['ENCRYPTION'] = true; $DB['KEY_FILE'] = ''; $DB['CERT_FILE'] = ''; $DB['CA_FILE'] = '/etc/ssl/mysql/ca.pem'; $DB['VERIFY_HOST'] = false; $DB['CIPHER_LIST'] = ''; ... |
1. Marque Criptografia TLS do banco de dados e Verificar certificado do banco de dados 2. Especifique o caminho para Arquivo CA TLS do banco de dados |
Habilita o modo verify_ca. |
![]() |
... // Usado para conexão TLS com lista de cifras estritamente definida. $DB['ENCRYPTION'] = true; $DB['KEY_FILE'] = '<key_file_path>'; $DB['CERT_FILE'] = '<key_file_path>'; $DB['CA_FILE'] = '<key_file_path>'; $DB['VERIFY_HOST'] = true; $DB['CIPHER_LIST'] = '<cipher_list>'; ... Ou: ... // Usado para conexão TLS sem lista de cifras definida - selecionada pelo servidor MySQL $DB['ENCRYPTION'] = true; $DB['KEY_FILE'] = '<key_file_path>'; $DB['CERT_FILE'] = '<key_file_path>'; $DB['CA_FILE'] = '<key_file_path>'; $DB['VERIFY_HOST'] = true; $DB['CIPHER_LIST'] = ''; ... |
1. Marque Criptografia TLS do banco de dados e Verificar certificado do banco de dados 2. Especifique o caminho para Arquivo de chave TLS do banco de dados 3. Especifique o caminho para Arquivo CA TLS do banco de dados 4. Especifique o caminho para Arquivo de certificado TLS do banco de dados 5. Especifique Lista de cifras TLS do banco de dados (opcional) |
Habilita o modo verify_full para MySQL. |
![]() |
... $DB['ENCRYPTION'] = true; $DB['KEY_FILE'] = '<key_file_path>'; $DB['CERT_FILE'] = '<key_file_path>'; $DB['CA_FILE'] = '<key_file_path>'; $DB['VERIFY_HOST'] = true; $DB['CIPHER_LIST'] = ' '; ... |
1. Marque Criptografia TLS do banco de dados e Verificar certificado do banco de dados 2. Especifique o caminho para Arquivo de chave TLS do banco de dados 3. Especifique o caminho para Arquivo CA TLS do banco de dados 4. Especifique o caminho para Arquivo de certificado TLS do banco de dados 5. Marque Verificação do host do banco de dados |
Habilita o modo verify_full para PostgreSQL. |
Veja também: Exemplos de configuração de criptografia para MySQL, Exemplos de configuração de criptografia para PostgreSQL.
Conexões seguras com o banco de dados podem ser configuradas com os respectivos parâmetros no arquivo de configuração do Zabbix server e/ou proxy.
| Configuração | Resultado |
|---|---|
| Nenhuma | Conexão com o banco de dados sem criptografia. |
1. Defina DBTLSConnect=required |
O server/proxy faz uma conexão TLS com o banco de dados. Uma conexão não criptografada não é permitida. |
1. Defina DBTLSConnect=verify_ca2. Defina DBTLSCAFile - especifique o arquivo da autoridade certificadora TLS |
O server/proxy faz uma conexão TLS com o banco de dados após verificar o certificado do banco de dados. |
1. Defina DBTLSConnect=verify_full2. Defina DBTLSCAFile - especifique o arquivo da autoridade certificadora TLS |
O server/proxy faz uma conexão TLS com o banco de dados após verificar o certificado do banco de dados e a identidade do host do banco de dados. |
1. Defina DBTLSCAFile - especifique o arquivo da autoridade certificadora TLS2. Defina DBTLSCertFile - especifique o arquivo do certificado da chave pública do cliente3. Defina DBTLSKeyFile - especifique o arquivo da chave privada do cliente |
O server/proxy fornece um certificado de cliente ao conectar-se ao banco de dados. |
1. Defina DBTLSCipher - a lista de cifras de criptografia que o cliente permite para conexões usando protocolos TLS até TLS 1.2ou DBTLSCipher13 - a lista de cifras de criptografia que o cliente permite para conexões usando o protocolo TLS 1.3 |
(MySQL) A conexão TLS é feita usando uma cifra da lista fornecida. (PostgreSQL) Definir esta opção será considerado um erro. |