/!\ suite à une erreur lors de la création de l'article, le titre n'est pas bon. Cet article traite du chiffrement des communications entre les machines. Pas du chiffrement sur les disques.
Chiffrer les communications de GlusterFS
Introduction
Par défaut les communications de glusterfs-server et de glusterfs-client ne sont pas chiffrées. Glusterfs peut néanmoins utiliser TLS (ex SLL) pour chiffrer les communications et casser ainsi toute tentative de MITM.
Ensemble, nous allons voir comment.
Note : Pour une raison inconnue (Ré-installation d'un des node? Bug après un reboot?), il peut arriver que les certificats TLS expirent. Vous vous retrouverez avec des "State: Peer in Cluster (Disconnected)" lorsque vous lancez la commande "gluster peer status". Dans /var/log/glusterfs/etc-glusterfs-glusterd.vol.log vous trouverez des lignes du style "SSL routines:ssl3_read_bytes:sslv3 alert certificate expired". Reforger les certificats et les clés privées semble régler le problème.
Les fichiers dont à besoin glusterfs pour le chiffrement via TLS
- /etc/ssl/glusterfs.pem => Votre certificat. Ce fichier unique doit être sur chaque noeud et ne doit pas être partagé.
- /etc/ssl/glusterfs.key => Votre clés privée. Elle doit être disponible sur chacun des Noeuds et clients.
- /etc/ssl/glusterfs.ca => Ce fichier doit être à l'identique sur toutes les machines du cluster, autant client que serveur.
- /var/lib/glusterd/secure-access => Fichier vide dont l'existence permet à glusterfs de savoir qu'il doit activer TLS. Doit être présent sur toutes les machines du cluster.
Mise en place
Installer le module de chiffrement
- On se rend dans le dossier /etc/ssl
cd /etc/ssl/
- Création des clés
sudo openssl genrsa -out glusterfs.key 2048
- Création des certificats, remplacez hostnameNode par vos valeus - à répéter pour chaque node (server & client)
sudo openssl req -new -x509 -key glusterfs.key -subj "/CN=hostnameNODE" -out glusterfs_hostnameNode.pem
- Concaténation des certificats (client & server), pour les serveurs
cat glusterfs_hostnameNode.pem glusterfs_hostnameNode.pem glusterfs_hostnameNode.pem glusterfs_hostnameNode.pem > glusterfs_server.ca
- Concaténation des certificats (server), pour les clients
cat glusterfs_hostnameNode.pem glusterfs_hostnameNode.pem glusterfs_hostnameNode.pem glusterfs_hostnameNode.pem > glusterfs_client.ca
-
Note : autant utiliser directement celle juste ci-haut
- On prépare l'export
mkdir /tmp/gluster
cp /etc/ssl/gluster* /tmp/gluster/
chmod 777 -R /tmp/gluster/
-
Envoyez sur chaque Noeuds sa clés privé (.key) et son certificat (.pem)
- Exemple en lançant la commande depuis un client
scp monUser@machineQuiAGenereLesCertif:/tmp/gluster/glusterfs_hostnameNode.pem /etc/ssl/
-
On exporte maintenant le certificat concaténé sur tout les serveurs
- Exemple en lançant la commande depuis un client
scp monUser@machineQuiAGenereLesCertif:/tmp/gluster/glusterfs_server.ca /etc/ssl/glusterfs_server.ca
-
On exporte maintenant le certificat concaténé sur tout les clients
- Exemple en lançant la commande depuis un client
scp monUser@machineQuiAGenereLesCertif:/tmp/gluster/glusterfs_client.ca /etc/ssl/glusterfs_client.ca
- Activer le chiffrement côté serveur (à reproduire sur chaque serveur)
sudo touch /var/lib/glusterd/secure-access
service glusterfs-server restart
- Activer le chiffrement côté client (à reproduire sur chaque client)
sudo touch /var/lib/glusterd/secure-access
Activer le chiffrement des communications d'un volume
Note : il est conseillé de démonter (umount) les dossiers glusterfs déjà monté sur les clients.
gluster volume stop VOLNAME
gluster volume set VOLNAME server.ssl on
gluster volume set VOLNAME client.ssl on
gluster volume start VOLNAME
Désactiver le chiffrement des communications d'un volume
Note : il est conseillé de démonter (umount) les dossiers glusterfs déjà monté sur les clients.
gluster volume stop VOLNAME
gluster volume set VOLNAME server.ssl off
gluster volume set VOLNAME client.ssl off
gluster volume start VOLNAME
# Coquille
Posté par TutoMaker . Évalué à 0 (+0/-0).
J'ai fais une erreur/imprécision dans le titre: ce tuto ne concerne pas le chiffrement des datas sur les disques mais bien des communications entre différents Nodes et entre Client-Node. En effet les datas sur les disques ne sont pas chiffrés.
Je propose éventuellement "chiffrer les communications de glusterfs", à vous, Modérator, de choir :)
Si vous codez un logiciel sans une interface chatoyante, alors vous faites de la merde. Donation bitcoin : 1N8QGrhJGWdZNQNSspm3rSGjtXaXv9Ngat
[^] # Re: Coquille
Posté par TutoMaker . Évalué à 0 (+0/-0).
SVP quelqu'un pour changer le titre en "[Tuto/HowTo] [Ubuntu/Debian] Chiffrer les communication des nœuds Glusterfs pour un ou plusieurs volumes" ou similaire suivant taille max possible ?
Si vous codez un logiciel sans une interface chatoyante, alors vous faites de la merde. Donation bitcoin : 1N8QGrhJGWdZNQNSspm3rSGjtXaXv9Ngat
Envoyer un commentaire
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.