Sichere Verbindung zum Frontend
Übersicht
Dieser Abschnitt enthält Zabbix-Einrichtungsschritte und Konfigurationsbeispiele für sichere TLS-Verbindungen zwischen dem Zabbix-Frontend und dem Zabbix-Server.
Konfiguration
Standardmäßig ist die Kommunikation zwischen Zabbix Frontend und Zabbix Server unverschlüsselt. Für mehr Sicherheit aktivieren Sie TLS auf beiden Seiten. Unten ist ein Beispiel für die einfachste Vorgehensweise.
1. Zertifikate und Schlüssel generieren.
Erstellen Sie ein Arbeitsverzeichnis:
sudo mkdir -p /etc/zabbix/ssl && cd /etc/zabbix/ssl
Erstellen Sie ein CA-Zertifikat (passen Sie den Wert MyZabbixCA an den tatsächlichen Common Name an):
sudo openssl genrsa -out ca.key 4096
sudo openssl req -new -x509 -days 3650 -key ca.key -out ca.crt -subj "/CN=MyZabbixCA/"
Generieren Sie einen privaten Schlüssel und ein Zertifikat für den Zabbix Server (passen Sie den Wert zabbix-server.example.com an den tatsächlichen Common Name an):
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
Generieren Sie einen privaten Schlüssel und ein Zertifikat für das Zabbix Frontend (passen Sie den Wert zabbix-frontend-node an den tatsächlichen Common Name an):
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. Legen Sie die richtigen Berechtigungen fest.
Für den Zabbix Server (passen Sie Eigentümer/Gruppe entsprechend dem Benutzer des Zabbix-Server-Daemons Ihrer Distribution an):
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
Für das Frontend (passen Sie Eigentümer/Gruppe entsprechend dem Webserver-Benutzer Ihrer Distribution an):
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. Konfigurieren Sie den Zabbix Server.
Fügen Sie in zabbix_server.conf Folgendes hinzu:
TLSFrontendAccept=cert
TLSCertFile=/etc/zabbix/ssl/server.crt
TLSKeyFile=/etc/zabbix/ssl/server.key
TLSCAFile=/etc/zabbix/ssl/ca.crt
# Optional:
# TLSFrontendCertIssuer=CN=MyZabbixCA
# TLSFrontendCertSubject=CN=zabbix-frontend-node
Starten Sie dann den Server neu:
sudo systemctl restart zabbix-server
4. Konfigurieren Sie das Zabbix Frontend.
Aktivieren Sie während der Installation der Weboberfläche die Option Verbindungen von der Weboberfläche verschlüsseln (und bei Bedarf die Option Serverzertifikatsaussteller und -betreff überprüfen) und füllen Sie die Felder TLS CA file, TLS key file, TLS certificate file (und bei Bedarf die Felder Server TLS certificate issuer und Server TLS certificate subject) aus:

| Parameter | Beschreibung |
|---|---|
| TLS CA file | Geben Sie den vollständigen Pfad zur Zertifizierungsstellen-(CA)-Zertifikatsdatei an, die zur Überprüfung des Serverzertifikats verwendet wird. |
| TLS key file | Geben Sie den vollständigen Pfad zur privaten Schlüsseldatei des Clients an, die dem Clientzertifikat entspricht. |
| TLS certificate file | Geben Sie den vollständigen Pfad zur Clientzertifikatsdatei an, wenn eine gegenseitige TLS-Authentifizierung erforderlich ist. |
| Server TLS certificate issuer | Geben Sie einen Distinguished Name (DN) des Ausstellers an, der mit dem Serverzertifikat abgeglichen werden soll. |
| Server TLS certificate subject | Geben Sie einen Distinguished Name (DN) des Betreffs an, der mit dem Serverzertifikat abgeglichen werden soll. |
Bei bestehenden Installationen bearbeiten Sie die folgenden Felder in 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';
// Optional:
// $ZBX_SERVER_TLS['CERTIFICATE_ISSUER'] = 'CN=MyZabbixCA';
// $ZBX_SERVER_TLS['CERTIFICATE_SUBJECT'] = 'CN=zabbix-server.example.com';
5. Überprüfen Sie die Verschlüsselung, indem Sie sicherstellen, dass weder in der Protokolldatei des Zabbix Frontend noch in der Protokolldatei des Zabbix Server Fehlermeldungen vorhanden sind:
tail -f /var/log/zabbix/zabbix_server.log