Аутентификация в GlusterFS с помощью SSL/TLS
Как только я знакомился с GlusterFS, то первым делом решил поискать информацию о безопасности. Никакой проверки по логину и паролю в GlusterFS я не нашёл, но есть возможность аутентифицировать клиента посредством TLS, об этом и пойдёт речь дальше.
Я буду проводить всё под Debian, но всё должно быть актуально и для других дистрибутивов. Про установку GlusterFS я не буду, перейдём к сути.
Первым делом создаём ключи и сертификаты, это делается следующими командами:
1
openssl genrsa -out /etc/ssl/glusterfs.key 1024
1
openssl req -new -x509 -key /etc/ssl/glusterfs.key -subj /CN=YourName -out /etc/ssl/glusterfs.pem
Обратите внимание на параметр CN (Common Name), укажите в нём ваше имя.
Вместо YourName
укажите своё имя, например knik
или любое другое.
После того, как создали сертификат, создадим его копию:
Вместо YourName
укажите своё имя, например knik
или любое другое.
После того, как создали сертификат, создадим его копию:
1
cp /etc/ssl/glusterfs.pem /etc/ssl/glusterfs.ca
Установим права чтение только для пользователя root:
1
chown root:root /etc/ssl/glusterfs.*
1
chmod 600 /etc/ssl/glusterfs.*
Теперь нужно включить SSL для нашего volume:
1
2
gluster volume set gv0 client.ssl on
gluster volume set gv0 server.ssl on
Обратите внимание, что вместо gv0 нужно поставить название вашего volume, оно может быть любым другим.
Зададим список шифров:
1
gluster volume set gv0 ssl.cipher-list 'HIGH:!SSLv2'
Теперь разрешим подключение клиентов с именем YourName. Измените это имя на то, что вы указали на первых шагах при генерации ключей и сертификатов.
1
gluster volume set gv0 auth.ssl-allow 'YourName'
Если volume уже запущено, то его нужно остановить и запустить вновь, делаем это следующими командами:
1
2
gluster volume stop gv0
gluster volume start gv0
Настройка клиента
Настройка клиентов не составляет никакого труда. Скопируйте сгенерированные ранее ключи и сертификаты glusterfs.ca, glusterfs.pem и glusterfs.key в каталог /etc/ssl на клиенте, после этого попробуйте смонтировать glusterfs:
1
mount -t glusterfs you-server:/gv0 /path/to/mount/point