Configurer le chiffrement TLS pour BeeGFS 8
Configurez le chiffrement TLS pour sécuriser la communication entre les services de gestion BeeGFS 8 et les clients.
Présentation
BeeGFS 8 introduit la prise en charge de TLS pour le chiffrement des communications réseau entre les outils d'administration (tels que l' `beegfs`utilitaire en ligne de commande) et les services serveur BeeGFS comme Management ou Remote. Configurez le chiffrement TLS dans votre cluster BeeGFS à l'aide de l'une des trois méthodes suivantes :
-
Utilisation d'une autorité de certification de confiance : Utilisez les certificats signés par une autorité de certification existante sur votre cluster BeeGFS.
-
Création d'une autorité de certification locale : Créez une autorité de certification locale et utilisez-la pour signer les certificats de vos services BeeGFS. Cette approche convient aux environnements où vous souhaitez gérer votre propre chaîne de confiance sans dépendre d'une autorité de certification externe.
-
TLS désactivé : Désactivez complètement TLS dans les environnements où le chiffrement n’est pas requis ou pour le dépannage. Évitez cette option en production car elle expose des informations potentiellement sensibles concernant la structure et la configuration du système de fichiers en clair.
Choisissez la méthode la mieux adaptée à votre environnement et à vos politiques organisationnelles. Consultez la "BeeGFS TLS" documentation pour plus de détails.
|
|
Les clients exécutant le |
Utilisation d'une autorité de certification de confiance
Si vous avez accès à des certificats émis par une autorité de certification (CA) de confiance—qu'il s'agisse d'une CA interne à l'entreprise ou d'un fournisseur tiers—vous pouvez configurer BeeGFS 8 pour utiliser ces certificats signés par la CA au lieu de générer des certificats auto-signés.
Déploiement d'un nouveau cluster BeeGFS 8
Pour un nouveau déploiement de cluster BeeGFS 8, configurez le fichier d'inventaire Ansible user_defined_params.yml pour qu'il référence vos certificats signés par une autorité de certification :
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
|
|
Si |
Configuration d'un cluster BeeGFS 8 existant
Pour un cluster BeeGFS 8 existant, définissez les chemins dans le fichier de configuration des services de gestion BeeGFS sur les certificats signés par l'autorité de certification du nœud de fichiers :
tls-cert-file = /path/to/cert.pem
tls-key-file = /path/to/key.pem
Configuration des clients BeeGFS 8 avec des certificats signés par une autorité de certification
|
|
Si vous mettez à niveau un cluster BeeGFS 7 existant vers BeeGFS 8, suivez la "Mise à niveau vers BeeGFS 8" procédure. Ne configurez pas le protocole TLS côté client avant d'y être invité lors de la procédure de mise à niveau. |
Pour configurer les clients BeeGFS 8 afin qu'ils fassent confiance aux certificats signés par une autorité de certification à l'aide du pool de certificats système, définissez tls-cert-file = " dans la configuration de chaque client. Si le pool de certificats système n'est pas utilisé, indiquez le chemin d'accès à un certificat local en définissant tls-cert-file = <local cert>. Cette configuration permet aux clients d'authentifier les certificats présentés par les services de gestion BeeGFS.
Création d'une autorité de certification locale
Si votre organisation souhaite créer sa propre infrastructure de certificats pour le cluster BeeGFS, vous pouvez créer une autorité de certification (CA) locale pour émettre et signer les certificats de votre cluster BeeGFS. Cette approche consiste à créer une CA qui signe les certificats des services de gestion BeeGFS, lesquels sont ensuite distribués aux clients afin d'établir une chaîne de confiance.
Déploiement d'un nouveau cluster BeeGFS 8
Pour un nouveau déploiement de BeeGFS 8, le beegfs_8 rôle Ansible (inclus dans la collection BeeGFS HA) crée une autorité de certification locale sur le nœud de contrôle et génère les certificats nécessaires pour les services de gestion. Activez cette fonctionnalité en définissant les paramètres suivants dans le fichier user_defined_params.yml d'inventaire Ansible :
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>]
|
|
Si |
Configuration d'un cluster BeeGFS 8 existant
Pour un cluster BeeGFS existant, vous pouvez intégrer TLS en créant une autorité de certification locale et en générant les certificats nécessaires pour les services de gestion. Mettez à jour les chemins dans le fichier de configuration des services de gestion BeeGFS pour qu'ils pointent vers les certificats nouvellement créés.
|
|
Utilisez ces instructions comme référence. Prenez les précautions de sécurité appropriées lors de la manipulation de clés privées et de certificats. |
Créer l'autorité de certification
Sur une machine de confiance, créez une autorité de certification locale pour signer les certificats de vos services de gestion BeeGFS. Le certificat de l'autorité de certification sera distribué aux clients pour établir la confiance et permettre une communication sécurisée avec les services BeeGFS.
Les instructions suivantes servent de référence pour la création d'une autorité de certification locale sur un système basé sur RHEL.
-
Installez OpenSSL s'il n'est pas déjà installé :
dnf install openssl -
Créez un répertoire de travail pour stocker les fichiers de certificat :
mkdir -p ~/beegfs_tls && cd ~/beegfs_tls -
Générez la clé privée de la CA :
openssl genrsa -out ca_key.pem 4096 -
Créez un fichier de configuration CA nommé
ca.cnfet ajustez les champs de nom unique pour qu'ils correspondent à votre organisation :[ 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 -
Générez le certificat d'autorité de certification. Ce certificat doit être valide pendant toute la durée de vie du système. Prévoyez de régénérer les certificats avant leur expiration. Après l'expiration d'un certificat, la communication entre certains composants échoue. La mise à jour des certificats TLS nécessite généralement le redémarrage des services.
La commande suivante génère un certificat d'autorité de certification valable 1 an :
openssl req -new -x509 -key ca_key.pem -out ca_cert.pem -days 365 -config ca.cnfBien que cet exemple utilise une période de validité d'un an par souci de simplicité, vous devez ajuster le -daysparamètre en fonction des exigences de sécurité de votre organisation et mettre en place un processus de renouvellement de certificat.
Créer des certificats de service de gestion
Générez des certificats pour vos services de gestion BeeGFS et signez-les avec la CA que vous avez créée. Ces certificats seront installés sur les nœuds de fichiers exécutant les services de gestion BeeGFS.
-
Générez la clé privée du service de gestion :
openssl genrsa -out mgmtd_tls_key.pem 4096 -
Créez un fichier de configuration de certificat nommé
tls_san.cnfavec des Subject Alternative Names (SAN) pour toutes les adresses IP du service de gestion :[ 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>Mettez à jour les champs de nom unique pour qu'ils correspondent à la configuration de votre autorité de certification, et remplacez les
IP.1etIP.2valeurs par les adresses IP de votre service de gestion. -
Générez une demande de signature de certificat (CSR) :
openssl req -new -key mgmtd_tls_key.pem -out mgmtd_tls_csr.pem -config tls_san.cnf -
Signez le certificat avec votre CA (valable 1 an) :
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.cnfAjustez la période de validité du certificat ( -days 365en fonction des politiques de sécurité de votre organisation. De nombreuses organisations exigent un renouvellement des certificats tous les 1-2 ans. -
Vérifiez que le certificat a été créé correctement :
openssl x509 -in mgmtd_tls_cert.pem -text -nooutConfirmez que la section Nom alternatif du sujet inclut toutes vos adresses IP de gestion.
Distribuer les certificats aux nœuds de fichiers
Distribuez le certificat d'autorité de certification et les certificats de service de gestion aux nœuds de fichiers et aux clients appropriés.
-
Copiez le certificat d'autorité de certification (CA), le certificat du service de gestion et la clé de ce service sur les nœuds de fichiers exécutant les services de gestion :
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/
Pointez le service de gestion vers les certificats TLS
Mettez à jour la configuration du service de gestion BeeGFS pour activer TLS et référencer les certificats TLS créés.
-
Depuis un nœud de fichier exécutant le service de gestion BeeGFS, modifiez le fichier de configuration du service de gestion, par exemple à
/mnt/mgmt_tgt_mgmt01/mgmt_config/beegfs-mgmtd.toml. Ajoutez ou mettez à jour les paramètres liés à TLS suivants :tls-disable = false tls-cert-file = "/etc/beegfs/mgmtd_tls_cert.pem" tls-key-file = "/etc/beegfs/mgmtd_tls_key.pem" -
Redémarrez le service de gestion BeeGFS :
systemctl restart beegfs-mgmtd -
Vérifiez que le service de gestion a démarré avec succès :
journalctl -xeu beegfs-mgmtdRecherchez les entrées de journal indiquant une initialisation TLS réussie et un chargement du certificat.
Successfully initialized certificate verification library. Successfully loaded license certificate: TMP-XXXXXXXXXX
Configurer TLS pour les clients BeeGFS 8
|
|
Si vous mettez à niveau un cluster BeeGFS 7 existant vers BeeGFS 8, suivez la "Mise à niveau vers BeeGFS 8" procédure. Ne configurez pas le protocole TLS côté client avant d'y être invité lors de la procédure de mise à niveau. |
Créer et distribuer des certificats signés par l'autorité de certification locale à tous les clients BeeGFS qui nécessitent une communication avec les services de gestion BeeGFS.
-
Générez un certificat client en utilisant le même processus décrit dans [create-management-service-certificates], en remplaçant l'adresse IP ou le nom d'hôte du client dans le champ Nom alternatif du sujet (SAN).
-
Copiez le certificat client sur le nœud client et renommez-le
cert.pem:scp client_cert.pem user@client:/etc/beegfs/cert.pem -
Redémarrez le service client BeeGFS sur tous les clients :
systemctl restart beegfs-client -
Vérifiez la connectivité du client en exécutant une commande BeeGFS CLI, telle que :
beegfs health check
Désactivation de TLS
Désactivez TLS pour le dépannage ou si votre environnement ne requiert pas de chiffrement. Évitez cette option en environnement de production, car elle expose des informations potentiellement sensibles concernant la structure et la configuration du système de fichiers en clair.
Déploiement d'un nouveau cluster BeeGFS 8
Pour un nouveau déploiement de cluster BeeGFS, désactivez TLS en définissant le paramètre suivant dans le fichier user_defined_params.yml d'inventaire Ansible :
beegfs_ha_tls_enabled: false
Configuration d'un cluster BeeGFS 8 existant
Pour un cluster BeeGFS 8 existant, modifiez le fichier de configuration du service de gestion. Par exemple, modifiez le fichier à /mnt/mgmt_tgt_mgmt01/mgmt_config/beegfs-mgmtd.toml et définissez :
tls-disable = true
Redémarrez le service de gestion pour que les modifications prennent effet.