TLS-Verschlüsselung für BeeGFS 8 konfigurieren
Konfigurieren Sie die TLS-Verschlüsselung, um die Kommunikation zwischen BeeGFS 8 Management-Services und Clients zu sichern.
Überblick
BeeGFS 8 führt TLS-Unterstützung für die Verschlüsselung der Netzwerkkommunikation zwischen Verwaltungstools (wie dem beegfs Befehlszeilenprogramm) und BeeGFS-Serverdiensten wie Management oder Remote ein. Konfigurieren Sie die TLS-Verschlüsselung in Ihrem BeeGFS-Cluster mit einer der drei Methoden:
-
Verwendung einer vertrauenswürdigen Zertifizierungsstelle: Verwenden Sie vorhandene, von einer CA signierte Zertifikate auf Ihrem BeeGFS-Cluster.
-
Lokale Zertifizierungsstelle erstellen: Erstellen Sie eine lokale Zertifizierungsstelle und verwenden Sie diese, um Zertifikate für Ihre BeeGFS Services zu signieren. Dieser Ansatz eignet sich für Umgebungen, in denen Sie Ihre eigene Vertrauenskette verwalten möchten, ohne auf eine externe CA angewiesen zu sein.
-
TLS deaktiviert: Deaktivieren Sie TLS vollständig für Umgebungen, in denen keine Verschlüsselung erforderlich ist oder zur Fehlerbehebung. Vermeiden Sie diese Option in Produktionsumgebungen, da sie potenziell sensible Informationen über die Dateisystemstruktur und -konfiguration als Klartext offenlegt.
Wählen Sie die Methode, die am besten zu Ihrer Umgebung und Ihren Unternehmensrichtlinien passt. Siehe die "BeeGFS TLS" Dokumentation für weitere Details.
|
|
Clients, die den |
Verwendung einer vertrauenswürdigen Zertifizierungsstelle
Wenn Sie Zugriff auf Zertifikate haben, die von einer vertrauenswürdigen Zertifizierungsstelle (CA) ausgestellt wurden—sei es von einer internen Unternehmens-CA oder einem Drittanbieter—, können Sie BeeGFS 8 so konfigurieren, dass diese CA-signierten Zertifikate anstelle von selbstsignierten verwendet werden.
Bereitstellung eines neuen BeeGFS 8-Clusters
Konfigurieren Sie für eine neue BeeGFS 8-Clusterbereitstellung die user_defined_params.yml-Datei des Ansible-Inventars so, dass sie auf Ihre von der CA signierten Zertifikate verweist:
beegfs_ha_tls_enabled: true
beegfs_ha_ca_cert_src_path: files/beegfs/cert/ca_cert.pem
beegfs_ha_tls_cert_src_path: files/beegfs/cert/mgmtd_tls_cert.pem
beegfs_ha_tls_key_src_path: files/beegfs/cert/mgmtd_tls_key.pem
|
|
Wenn |
Konfigurieren eines bestehenden BeeGFS 8 Clusters
Für einen bestehenden BeeGFS 8-Cluster legen Sie die Pfade in der Konfigurationsdatei der BeeGFS-Managementdienste auf die CA-signierten Zertifikate des Dateiknotens fest:
tls-cert-file = /path/to/cert.pem
tls-key-file = /path/to/key.pem
Konfiguration von BeeGFS 8 Clients mit CA-signierten Zertifikaten
|
|
Wenn Sie einen bestehenden BeeGFS 7-Cluster auf BeeGFS 8 aktualisieren, befolgen Sie die "Upgrade auf BeeGFS 8" Vorgehensweise. Konfigurieren Sie Client-TLS erst, wenn Sie im Rahmen der Aktualisierungsprozedur dazu aufgefordert werden. |
Um BeeGFS 8-Clients so zu konfigurieren, dass sie von einer Zertifizierungsstelle signierten Zertifikaten aus dem Systemzertifikatspool vertrauen, setzen Sie in der Konfiguration jedes Clients tls-cert-file = "". Wenn der Systemzertifikatspool nicht verwendet wird, geben Sie den Pfad zu einem lokalen Zertifikat an, indem Sie tls-cert-file = <local cert> setzen. Diese Konfiguration ermöglicht es Clients, die von den BeeGFS-Managementdiensten präsentierten Zertifikate zu authentifizieren.
Erstellung einer lokalen Zertifizierungsstelle
Wenn Ihre Organisation eine eigene Zertifikatsinfrastruktur für den BeeGFS-Cluster erstellen möchte, können Sie eine lokale Zertifizierungsstelle (CA) einrichten, die Zertifikate für Ihren BeeGFS-Cluster ausstellt und signiert. Dieser Ansatz beinhaltet die Erstellung einer CA, die Zertifikate für BeeGFS-Managementdienste signiert, welche dann an Clients verteilt werden, um eine Vertrauenskette herzustellen.
Bereitstellung eines neuen BeeGFS 8-Clusters
Für eine neue BeeGFS 8-Bereitstellung erstellt die beegfs_8 Ansible-Rolle (enthalten in der BeeGFS HA-Collection) eine lokale CA auf dem Kontrollknoten und generiert die notwendigen Zertifikate für die Management-Services. Aktivieren Sie dies, indem Sie die folgenden Parameter in der user_defined_params.yml Ansible-Inventardatei festlegen:
beegfs_ha_tls_enabled: true
beegfs_ha_ca_cert_src_path: files/beegfs/cert/local_ca_cert.pem
beegfs_ha_tls_cert_src_path: files/beegfs/cert/mgmtd_tls_cert.pem
beegfs_ha_tls_key_src_path: files/beegfs/cert/mgmtd_tls_key.pem
beegfs_ha_tls_config_options:
alt_names: [<mgmt_service_ip>]
|
|
Wenn |
Konfigurieren eines bestehenden BeeGFS 8 Clusters
Für einen bestehenden BeeGFS-Cluster können Sie TLS integrieren, indem Sie eine lokale Zertifizierungsstelle erstellen und die erforderlichen Zertifikate für die Managementdienste generieren. Aktualisieren Sie die Pfade in der BeeGFS-Managementdienste-Konfigurationsdatei, sodass sie auf die neu erstellten Zertifikate verweisen.
|
|
Diese Anweisungen dienen als Referenz. Treffen Sie beim Umgang mit privaten Schlüsseln und Zertifikaten die erforderlichen Sicherheitsvorkehrungen. |
Erstellen Sie die Zertifizierungsstelle
Erstellen Sie auf einem vertrauenswürdigen Rechner eine lokale Certificate Authority, um Zertifikate für Ihre BeeGFS-Managementdienste zu signieren. Das CA-Zertifikat wird an die Clients verteilt, um Vertrauen herzustellen und eine sichere Kommunikation mit BeeGFS-Services zu ermöglichen.
Die folgenden Anweisungen sind eine Referenz für die Erstellung einer lokalen Zertifizierungsstelle auf einem RHEL-basierten System.
-
Installieren Sie OpenSSL, falls es noch nicht installiert ist:
dnf install openssl -
Erstellen Sie ein Arbeitsverzeichnis zum Speichern der Zertifikatsdateien:
mkdir -p ~/beegfs_tls && cd ~/beegfs_tls -
Generieren Sie den privaten CA-Schlüssel:
openssl genrsa -out ca_key.pem 4096 -
Erstellen Sie eine CA Konfigurationsdatei mit dem Namen
ca.cnfund passen Sie die Felder für den individuellen Namen an Ihre Organisation an:[ req ] default_bits = 4096 distinguished_name = req_distinguished_name x509_extensions = v3_ca prompt = no [ req_distinguished_name ] C = <Country> ST = <State> L = <City> O = <Organization> OU = <OrganizationalUnit> CN = BeeGFS-CA [ v3_ca ] basicConstraints = critical,CA:TRUE subjectKeyIdentifier = hash authorityKeyIdentifier = keyid:always,issuer:always -
Generieren Sie das CA-Zertifikat. Dieses Zertifikat sollte für die gesamte Lebensdauer des Systems gültig sein. Planen Sie, die Zertifikate vor ihrem Ablauf zu erneuern. Nach Ablauf eines Zertifikats schlägt die Kommunikation zwischen einigen Komponenten fehl. Die Aktualisierung von TLS-Zertifikaten erfordert typischerweise einen Neustart der Dienste.
Der folgende Befehl generiert ein CA-Zertifikat, das 1 Jahr gültig ist:
openssl req -new -x509 -key ca_key.pem -out ca_cert.pem -days 365 -config ca.cnfWährend in diesem Beispiel der Einfachheit halber eine Gültigkeitsdauer von 1 Jahr verwendet wird, sollten Sie den -daysParameter entsprechend den Sicherheitsanforderungen Ihrer Organisation anpassen und einen Prozess zur Zertifikatserneuerung einrichten.
Management-Service-Zertifikate erstellen
Generieren Sie Zertifikate für Ihre BeeGFS management services und signieren Sie diese mit der von Ihnen erstellten CA. Diese Zertifikate werden auf den Dateiknoten installiert, auf denen BeeGFS management services ausgeführt werden.
-
Generieren Sie den privaten Schlüssel des Verwaltungsdienstes:
openssl genrsa -out mgmtd_tls_key.pem 4096 -
Erstellen Sie eine Konfigurationsdatei
tls_san.cnfmit Subject Alternative Names (SANs) für alle Management-Service-IP-Adressen:[ req ] default_bits = 4096 distinguished_name = req_distinguished_name req_extensions = req_ext prompt = no [ req_distinguished_name ] C = <Country> ST = <State> L = <City> O = <Organization> OU = <OrganizationalUnit> CN = beegfs-mgmt [ req_ext ] subjectAltName = @alt_names [ v3_ca ] subjectAltName = @alt_names basicConstraints = CA:FALSE [ alt_names ] IP.1 = <beegfs_mgmt_service_ip_1> IP.2 = <beegfs_mgmt_service_ip_2>Aktualisieren Sie die Felder für den individuellen Namen, sodass sie Ihrer CA-Konfiguration entsprechen, und ersetzen Sie die
IP.1undIP.2Werte durch die IP-Adressen Ihres Management-Service. -
Generieren Sie eine Certificate Signing Request (CSR):
openssl req -new -key mgmtd_tls_key.pem -out mgmtd_tls_csr.pem -config tls_san.cnf -
Signieren Sie das Zertifikat mit Ihrer CA (gültig für 1 Jahr):
openssl x509 -req -in mgmtd_tls_csr.pem -CA ca_cert.pem -CAkey ca_key.pem -CAcreateserial -out mgmtd_tls_cert.pem -days 365 -sha256 -extensions v3_ca -extfile tls_san.cnfPassen Sie die Gültigkeitsdauer des Zertifikats ( -days 365) an die Sicherheitsrichtlinien Ihrer Organisation an. Viele Organisationen verlangen eine Zertifikatsrotation alle 1–2 Jahre. -
Überprüfen Sie, ob das Zertifikat korrekt erstellt wurde:
openssl x509 -in mgmtd_tls_cert.pem -text -nooutBestätigen Sie, dass der Abschnitt „Subject Alternative Name“ alle Ihre Management-IP-Adressen enthält.
Zertifikate an Dateiknoten verteilen
Verteilen Sie das CA-Zertifikat und die Management-Service-Zertifikate an die entsprechenden Dateiknoten und Clients.
-
Kopieren Sie das CA-Zertifikat sowie das Zertifikat und den Schlüssel des Verwaltungsdienstes auf die Dateiknoten, auf denen die Verwaltungsdienste ausgeführt werden:
scp ca_cert.pem mgmtd_tls_cert.pem mgmtd_tls_key.pem user@beegfs_01:/etc/beegfs/ scp ca_cert.pem mgmtd_tls_cert.pem mgmtd_tls_key.pem user@beegfs_02:/etc/beegfs/
Weisen Sie den Verwaltungsdienst auf die TLS-Zertifikate zu.
Aktualisieren Sie die Konfiguration des BeeGFS-Managementdienstes, um TLS zu aktivieren und auf die erstellten TLS-Zertifikate zu verweisen.
-
Bearbeiten Sie auf einem Dateiknoten, auf dem der BeeGFS-Managementdienst ausgeführt wird, die Konfigurationsdatei, zum Beispiel unter
/mnt/mgmt_tgt_mgmt01/mgmt_config/beegfs-mgmtd.toml. Fügen Sie die folgenden TLS-bezogenen Parameter hinzu oder aktualisieren Sie sie:tls-disable = false tls-cert-file = "/etc/beegfs/mgmtd_tls_cert.pem" tls-key-file = "/etc/beegfs/mgmtd_tls_key.pem" -
Starten Sie den BeeGFS Management Service neu:
systemctl restart beegfs-mgmtd -
Überprüfen Sie, ob der Managementdienst erfolgreich gestartet wurde:
journalctl -xeu beegfs-mgmtdSuchen Sie nach Logeinträgen, die eine erfolgreiche TLS-Initialisierung und das Laden des Zertifikats anzeigen.
Successfully initialized certificate verification library. Successfully loaded license certificate: TMP-XXXXXXXXXX
Konfigurieren Sie TLS für BeeGFS 8 clients
|
|
Wenn Sie einen bestehenden BeeGFS 7-Cluster auf BeeGFS 8 aktualisieren, befolgen Sie die "Upgrade auf BeeGFS 8" Vorgehensweise. Konfigurieren Sie Client-TLS erst, wenn Sie im Rahmen der Aktualisierungsprozedur dazu aufgefordert werden. |
Erstellen und verteilen Sie von der lokalen CA signierte Zertifikate an alle BeeGFS-Clients, die eine Kommunikation mit BeeGFS-Management-Services benötigen.
-
Generieren Sie ein Clientzertifikat mit dem gleichen Verfahren, das in [create-management-service-certificates] beschrieben ist, und ersetzen Sie dabei die IP-Adresse oder den Hostnamen des Clients im Feld Subject Alternative Name (SAN).
-
Kopieren Sie das Clientzertifikat auf den Clientknoten und benennen Sie es in
cert.pemum:scp client_cert.pem user@client:/etc/beegfs/cert.pem -
Starten Sie den BeeGFS client service auf allen Clients neu:
systemctl restart beegfs-client -
Überprüfen Sie die Client-Konnektivität, indem Sie einen BeeGFS CLI-Befehl ausführen, z. B.:
beegfs health check
TLS deaktivieren
Deaktivieren Sie TLS zur Fehlerbehebung oder wenn Ihre Umgebung keine Verschlüsselung erfordert. Vermeiden Sie diese Option in Produktionsumgebungen, da dadurch potenziell sensible Informationen über die Dateisystemstruktur und -konfiguration als Klartext offengelegt werden.
Bereitstellung eines neuen BeeGFS 8-Clusters
Bei der Bereitstellung eines neuen BeeGFS-Clusters deaktivieren Sie TLS, indem Sie den folgenden Parameter in der user_defined_params.yml Konfigurationsdatei des Ansible-Inventars festlegen:
beegfs_ha_tls_enabled: false
Konfigurieren eines bestehenden BeeGFS 8 Clusters
Bearbeiten Sie für einen bestehenden BeeGFS 8-Cluster die Konfigurationsdatei des Management-Dienstes. Bearbeiten Sie beispielsweise die Datei unter /mnt/mgmt_tgt_mgmt01/mgmt_config/beegfs-mgmtd.toml und legen Sie Folgendes fest:
tls-disable = true
Starten Sie den Verwaltungsdienst neu, damit die Änderungen wirksam werden.