6 Conexão segura com o frontend
Visão geral
Esta seção fornece etapas de configuração do Zabbix e exemplos de configuração para conexões TLS seguras entre o frontend do Zabbix e o server do Zabbix.
Configuração
Por padrão, a comunicação entre o frontend do Zabbix e o server do Zabbix não é criptografada. Para maior segurança, habilite TLS em ambos os lados. Abaixo está um exemplo da forma mais simples de fazer isso.
1. Gere certificados e chaves.
Crie um diretório de trabalho:
sudo mkdir -p /etc/zabbix/ssl && cd /etc/zabbix/ssl
Crie um certificado CA (ajuste o valor MyZabbixCA para corresponder ao common name real):
sudo openssl genrsa -out ca.key 4096
sudo openssl req -new -x509 -days 3650 -key ca.key -out ca.crt -subj "/CN=MyZabbixCA/"
Gere uma chave privada e um certificado para o server do Zabbix (ajuste o valor zabbix-server.example.com para corresponder ao common name real):
sudo openssl genrsa -out server.key 2048
sudo openssl req -new -key server.key -out server.csr -subj "/CN=zabbix-server.example.com/"
sudo openssl x509 -req -days 365 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -sha256 -out server.crt
Gere uma chave privada e um certificado para o frontend do Zabbix (ajuste o valor zabbix-frontend-node para corresponder ao common name real):
sudo openssl genrsa -out frontend.key 2048
sudo openssl req -new -key frontend.key -out frontend.csr -subj "/CN=zabbix-frontend-node/"
sudo openssl x509 -req -days 365 -in frontend.csr -CA ca.crt -CAkey ca.key -CAcreateserial -sha256 -out frontend.crt
2. Defina as permissões corretas.
Para o server do Zabbix (ajuste o owner/grupo de acordo com o usuário do daemon do server do Zabbix da sua distribuição):
sudo chown root:zabbix /etc/zabbix/ssl/server.{crt,key} /etc/zabbix/ssl/ca.crt
sudo chmod 640 /etc/zabbix/ssl/server.key
sudo chmod 644 /etc/zabbix/ssl/server.crt /etc/zabbix/ssl/ca.crt
Para o frontend (ajuste o owner/grupo de acordo com o usuário do servidor web da sua distribuição):
sudo chown root:www-data /etc/zabbix/ssl/frontend.{crt,key}
sudo chmod 640 /etc/zabbix/ssl/frontend.key
sudo chmod 644 /etc/zabbix/ssl/frontend.crt
3. Configure o server do Zabbix.
Em zabbix_server.conf, adicione:
TLSFrontendAccept=cert
TLSCertFile=/etc/zabbix/ssl/server.crt
TLSKeyFile=/etc/zabbix/ssl/server.key
TLSCAFile=/etc/zabbix/ssl/ca.crt
# Opcionalmente:
# TLSFrontendCertIssuer=CN=MyZabbixCA
# TLSFrontendCertSubject=CN=zabbix-frontend-node
Depois reinicie o server:
sudo systemctl restart zabbix-server
4. Configure o frontend do Zabbix.
Durante a instalação da interface web, habilite a opção Encrypt connections from Web interface (e a opção Verify server certificate issuer and subject, se necessário) e preencha os campos TLS CA file, TLS key file, TLS certificate file (e os campos Server TLS certificate issuer e Server TLS certificate subject, se necessário):

| Parameter | Description |
|---|---|
| TLS CA file | Especifique o caminho completo para o arquivo de certificado da Certificate Authority (CA) usado para verificar o certificado do server. |
| TLS key file | Especifique o caminho completo para o arquivo da chave privada do cliente correspondente ao certificado do cliente. |
| TLS certificate file | Especifique o caminho completo para o arquivo do certificado do cliente, se a autenticação mútua TLS for necessária. |
| Server TLS certificate issuer | Especifique um distinguished Name (DN) do emissor para correspondência com o certificado do server. |
| Server TLS certificate subject | Especifique um distinguished Name (DN) do subject para correspondência com o certificado do server. |
Em instalações existentes, edite os seguintes campos em zabbix.conf.php:
$ZBX_SERVER_TLS['ACTIVE'] = '1';
$ZBX_SERVER_TLS['CA_FILE'] = '/etc/zabbix/ssl/ca.crt';
$ZBX_SERVER_TLS['KEY_FILE'] = '/etc/zabbix/ssl/frontend.key';
$ZBX_SERVER_TLS['CERT_FILE'] = '/etc/zabbix/ssl/frontend.crt';
// Opcionalmente:
// $ZBX_SERVER_TLS['CERTIFICATE_ISSUER'] = 'CN=MyZabbixCA';
// $ZBX_SERVER_TLS['CERTIFICATE_SUBJECT'] = 'CN=zabbix-server.example.com';
5. Verifique a criptografia confirmando que não há mensagens de erro no frontend do Zabbix ou no arquivo de log do server do Zabbix:
tail -f /var/log/zabbix/zabbix_server.log