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 dem Zabbix Frontend und dem Zabbix Server nicht verschlüsselt. Aktivieren Sie für eine höhere Sicherheit TLS auf beiden Seiten. Nachfolgend finden Sie 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 allgemeinen Namen 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 allgemeinen Namen 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 allgemeinen Namen 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 entsprechenden Berechtigungen fest.

Für den Zabbix Server (passen Sie Eigentümer und Gruppe an den 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 und Gruppe an den 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 der Server-Konfigurationsdatei (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 anschließend 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 Aussteller und Betreff des Serverzertifikats überprüfen) und füllen Sie die Felder TLS-CA-Datei, TLS-Schlüsseldatei und TLS-Zertifikatsdatei aus (sowie bei Bedarf die Felder Aussteller des Server-TLS-Zertifikats und Betreff des Server-TLS-Zertifikats):

Parameter Beschreibung
TLS-CA-Datei Geben Sie den vollständigen Pfad zur Zertifizierungsstellendatei (CA) an, die zur Überprüfung des Serverzertifikats verwendet wird.
TLS-Schlüsseldatei Geben Sie den vollständigen Pfad zur privaten Client-Schlüsseldatei an, die dem Clientzertifikat entspricht.
TLS-Zertifikatsdatei Geben Sie den vollständigen Pfad zur Client-Zertifikatsdatei an, wenn eine gegenseitige TLS-Authentifizierung erforderlich ist.
Aussteller des Server-TLS-Zertifikats Geben Sie einen Distinguished Name (DN) des Ausstellers an, der mit dem Serverzertifikat abgeglichen werden soll.
Betreff des Server-TLS-Zertifikats Geben Sie einen Distinguished Name (DN) des Betreffs an, der mit dem Serverzertifikat abgeglichen werden soll.

Bearbeiten Sie bei bestehenden Installationen die folgenden Parameter in der Frontend-Konfigurationsdatei:

$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';
// 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 im Zabbix Frontend oder in der Protokolldatei des Zabbix Servers keine Fehlermeldungen vorhanden sind:

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