TutoMaker : mise en page (25 septembre 2017 13:09:22)
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 les communications et casser ainsi toute tentative de [MITM](https://fr.wikipedia.org/wiki/MITM).
Ensemble, nous allons voir comment.
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/)