Wiki [Tuto/HowTo] [Ubuntu/Debian] Chiffrer ses volumes Glusterfs

0
25
sept.
2017

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 . É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 ce n'est libre,cela n'existe. Donation bitcoin : 1N8QGrhJGWdZNQNSspm3rSGjtXaXv9Ngat

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.