У меня есть файловая система gluster поверх двух zfs RAID, и я хочу настроить общий доступ к файлам со следующими требованиями:
1) Безопасность данных. Сохраненные данные обрабатываются, но мне нужно убедиться, что все коммуникации между клиентами и сервером зашифрованы.
2) Легкодоступная точка монтирования, чтобы они могли обращаться к своим файлам локально и вручную добавлять / удалять их по запросу. Предпочтительно что-то, что не является явно очевидной поверхностью для атаки, такой как веб-сервер, и к которому легко получить доступ без особой настройки со стороны конечного пользователя (например, запуск сценария создает сопоставленный общий каталог на рабочем столе пользователя).
3) Служба синхронизации для чего-то вроде еженедельного / еженедельного резервного копирования.
Для 1) мне нравится идея запуска всех протоколов через SSH с аутентификацией 2FA с использованием защищенных паролем ключей RSA. Я подумывал о том, чтобы предоставить своим конечным пользователям защищенные паролем флешки LUKS, содержащие соответствующие ключи RSA и иметь некоторые автоматизированные сценарии для выполнения монтирования и передачи файлов.
Для 2) меня беспокоит, что я столкнусь с проблемами уровня 8 с SSH, поскольку большинство моих конечных пользователей не очень разбираются в технологиях. Также в сети потенциально может быть несколько различных версий ОС Linux, Mac и Windows. Поэтому я не совсем уверен, что существует универсальный способ создания сценариев для SSH-подключений и SMB-монтирования на этих разных платформах. Для Linux и Mac использование bash и ssh кажется относительно простым, может быть, даже sshfs (кроме fuse), но для Windows кажется, что для настройки шпатлевки потребуется существенный вклад от конечного пользователя. Я думал, что приложение для докеров может удовлетворить эту потребность. Так как я мог запустить оболочку bash с необходимыми программными пакетами в докере, смонтировать общий ресурс файлового сервера в докере, а затем поделиться файлами докера с хостом. Я все еще не понимаю, как это можно реализовать, и есть ли доступные решения лучше, которые удовлетворяют мои потребности на разных платформах.
Для 3) я думал о rsync поверх ssh или, возможно, даже о таргетинге домашнего каталога пользователей, удалении резервной копии прошлой ночи и scp новой резервной копии на файловый сервер. Но опять же здесь возникают те же проблемы, что и с (2). Кроме того, я думаю, что использование scp потребует очень много времени и io, поэтому, возможно, rsync - единственный жизнеспособный вариант здесь.
РЕДАКТИРОВАТЬ:
Также я должен отметить, что у меня тоже есть VPN-роутер. Поэтому я мог бы заставить их пройти через маршрутизатор, а затем смонтировать все без туннелирования через SSH, поскольку соединение уже было бы зашифровано. Единственная проблема в том, что пропускная способность на VPN-маршрутизаторе воняет, по крайней мере, из моего первоначального тестирования. Плюс тот, который у меня есть, позволяет использовать только 5 одновременных подключений на основе ключей, что, вероятно, вызовет проблемы с доступом для моих конечных пользователей.