Differences between revisions 39 and 41 (spanning 2 versions)
Revision 39 as of 2017-12-24 20:42:07
Size: 3538
Comment:
Revision 41 as of 2017-12-24 20:50:12
Size: 3541
Comment:
Deletions are marked like this. Additions are marked like this.
Line 47: Line 47:
On the client you need to create the `/var/lib/glusterd` directory before activating encryption On the client you need to create the `/var/lib/glusterd` directory before activating encryption.
Line 54: Line 54:
On one of the servers encryption is enabled Ecryption is enabled from one of the servers.

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

Copy the certificate authority to all the servers and place it in /etc/ssl/glusterfs.ca

Client

Compile all the server certificates in one place and concatenate them into /etc/ssl/glusterfs-client.ca.

cat gluster01.pem gluster02.pem gluster03.pem gluster04.pem > glusterfs-client.ca

Copy the certificate authority to the client and place it in /etc/ssl/glusterfs.ca

Activate Encryption

Servers

When this file exists the glusterfs server will use the new certificates.

touch /var/lib/glusterd/secure-access

Client

On the client you need to create the /var/lib/glusterd directory before activating encryption.

mkdir /var/lib/glusterd/
touch /var/lib/glusterd/secure-access

Enable Encryption

Ecryption is enabled from one of the servers.

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. Run this on one of the servers.

gluster volume set www auth.ssl-allow 'gluster01,gluster02,gluster03,gluster04,glusterclient01'

Mounting

On the client we have to add the option transport.socket.ssl-enabled on to the volume mount file

The file will now look like this

volume remote1
        type protocol/client
        option transport-type tcp
        option remote-host gluster01
        option remote-subvolume /srv/www/brick
        option transport.socket.ssl-enabled on
end-volume
 
volume remote2
        type protocol/client
        option transport-type tcp
        option remote-host gluster02
        option remote-subvolume /srv/www/brick
        option transport.socket.ssl-enabled on
end-volume
 
volume remote3
        type protocol/client
        option transport-type tcp
        option remote-host gluster03
        option remote-subvolume /srv/www/brick
        option transport.socket.ssl-enabled on
end-volume

volume remote4
        type protocol/client
        option transport-type tcp
        option remote-host gluster04
        option remote-subvolume /srv/www/brick
        option transport.socket.ssl-enabled on
end-volume

volume replicate
        type cluster/replicate
        subvolumes remote1 remote2 remote3 remote4
end-volume
 
volume writebehind
        type performance/write-behind
        option window-size 1MB
        subvolumes replicate
end-volume
 
volume cache
  type performance/io-cache
  option cache-size 512MB
  subvolumes writebehind
end-volume

None: GlusterFS Encryption (last edited 2021-03-26 21:25:57 by Kristian Kallenberg)