GlusterFS Encryption
The default GlusterFS setup does not encrypt its communication. Use the method below enable encryption.
Keys and Certificates
Make an encryption key and make sure to set the CN to match the name of the client/server. Repeat this on all the servers and the client.
Servers
cd /etc/ssl openssl genrsa -out glusterfs.key 2048 openssl req -new -x509 -key glusterfs.key -subj "/CN=gluster01" -out glusterfs.pem
Client
cd /etc/ssl openssl genrsa -out glusterfs.key 2048 openssl req -new -x509 -key glusterfs.key -subj "/CN=glusterclient01" -out glusterfs.pem
Certificate Authorities
Servers
Compile all the certificates in one place and concatenate them into /etc/ssl/glusterfs.ca. Notice that this will also include the certificates from the client.
cat gluster01.pem gluster02.pem gluster03.pem gluster04.pem glusterclient01.pem > glusterfs.ca
Client
Copy the certificate authority to all the servers and place it in /etc/ssl/glusterfs.ca
Activate Encryption
When this file exists the glusterfs server will use the new certificates
touch /var/lib/glusterd/secure-access
Enable Encryption
On one of the servers encryption is enabled
gluster volume set www client.ssl on gluster volume set www server.ssl on
Allow Only Specific Hosts
We allow only access from known hosts
gluster volume set www auth.ssl-allow 'gluster01,gluster02,gluster03,gluster04,glusterclient01'