Connessione sicura al frontend

Panoramica

Questa sezione fornisce i passaggi di configurazione di Zabbix e esempi di configurazione per connessioni TLS sicure tra il frontend di Zabbix e il server Zabbix.

Configurazione

Per impostazione predefinita, la comunicazione tra il frontend Zabbix e il server Zabbix non è crittografata. Per una maggiore sicurezza, abilitare TLS su entrambi i lati. Di seguito è riportato un esempio del modo più semplice per farlo.

1. Generare certificati e chiavi.

Creare una directory di lavoro:

sudo mkdir -p /etc/zabbix/ssl && cd /etc/zabbix/ssl

Creare un certificato CA (modificare il valore MyZabbixCA in modo che corrisponda al nome comune effettivo):

sudo openssl genrsa -out ca.key 4096
sudo openssl req -new -x509 -days 3650 -key ca.key -out ca.crt -subj "/CN=MyZabbixCA/"

Generare una chiave privata e un certificato per il server Zabbix (modificare il valore zabbix-server.example.com in modo che corrisponda al nome comune effettivo):

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

Generare una chiave privata e un certificato per il frontend Zabbix (modificare il valore zabbix-frontend-node in modo che corrisponda al nome comune effettivo):

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. Impostare le autorizzazioni appropriate.

Per il server Zabbix (modificare il proprietario/gruppo in base all'utente del demone del server Zabbix della propria distribuzione):

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

Per il frontend (modificare il proprietario/gruppo in base all'utente del webserver della propria distribuzione):

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. Configurare il server Zabbix.

Nel file di configurazione del server (zabbix_server.conf) aggiungere:

TLSFrontendAccept=cert
TLSCertFile=/etc/zabbix/ssl/server.crt
TLSKeyFile=/etc/zabbix/ssl/server.key
TLSCAFile=/etc/zabbix/ssl/ca.crt
# Facoltativo:
# TLSFrontendCertIssuer=CN=MyZabbixCA
# TLSFrontendCertSubject=CN=zabbix-frontend-node

Quindi riavviare il server:

sudo systemctl restart zabbix-server

4. Configurare il frontend Zabbix.

Durante l'installazione dell'interfaccia web, abilitare l'opzione Crittografa le connessioni dall'interfaccia web (e l'opzione Verifica l'emittente e il soggetto del certificato del server, se necessario) e compilare i campi File CA TLS, File della chiave TLS, File del certificato TLS (e i campi Emittente del certificato TLS del server e Soggetto del certificato TLS del server, se necessario):

Parametro Descrizione
File CA TLS Specificare il percorso completo del file del certificato dell'Autorità di certificazione (CA) utilizzato per verificare il certificato del server.
File della chiave TLS Specificare il percorso completo del file della chiave privata client corrispondente al certificato client.
File del certificato TLS Specificare il percorso completo del file del certificato client se è richiesta l'autenticazione TLS reciproca.
Emittente del certificato TLS del server Specificare un Nome distinto (DN) dell'emittente da confrontare con il certificato del server.
Soggetto del certificato TLS del server Specificare un Nome distinto (DN) del soggetto da confrontare con il certificato del server.

Nelle installazioni esistenti, modificare i seguenti parametri nel file di configurazione del frontend:

$ZBX_SERVER_TLS['ACTIVE'] = 'true';
$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';
// Facoltativo:
// $ZBX_SERVER_TLS['CERTIFICATE_ISSUER']  = 'CN=MyZabbixCA';
// $ZBX_SERVER_TLS['CERTIFICATE_SUBJECT'] = 'CN=zabbix-server.example.com';

5. Verificare la crittografia confermando che non siano presenti messaggi di errore nel frontend Zabbix o nel file di log del server Zabbix:

tail -f /var/log/zabbix/zabbix_server.log