URL: https://linuxfr.org/wiki/tuto-howto-ubuntu-debian-chiffrer-ses-volumes-glusterfs Title: [Tuto/HowTo] [Ubuntu/Debian] Chiffrer ses volumes Glusterfs Authors: TutoMaker Date: 2017年09月25日T12:58:57+02:00 License: CC By-SA Tags: sécurité, chiffrement, tls, glusterfs, tutoriel et système_de_fichiers Score: 0 **/!\ 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](https://fr.wikipedia.org/wiki/Transport_Layer_Security) (ex SLL) pour [chiffrer](https://fr.wikipedia.org/wiki/Chiffrement) les communications et casser ainsi toute tentative de [MITM](https://fr.wikipedia.org/wiki/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 ``` Farm Link ========= * [Gluster et TLS (SSL)](https://www.0rion.netlib.re/forum4/viewtopic.php?f=94&t=667) (tutoriel d'origine) * [Attaque de l'homme du milieu](https://fr.wikipedia.org/wiki/MITM) * [NixCraft - How to enable TLS/SSL encryption with Glusterfs storage cluster on Linux](https://www.cyberciti.biz/faq/how-to-enable-tlsssl-encryption-with-glusterfs-storage-cluster-on-linux/) * [Gluster Doc - Setting up GlusterFS with SSL/TLS](https://gluster.readthedocs.io/en/latest/Administrator%20Guide/SSL/)