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