Организация правильного шифрованного backup-сервера
Долго был читателем, решил стать писателем!
Есть желание организовать backup-сервер с обратно-инкрементальными архивами нескольких компов, работающих как на Linux так и на windows. Имею опыт администрирования локалхоста по выходным. Чтобы было не скучно, хочется сделать сервер, который будет устойчив к его изъятию / физическому взлому, возможно, вместе с отдельными компами, которые он резервирует.
Напрашивается шифрование, но возникает вопрос, как правильно монтировать шифрованные разделы / контейнеры на время резервирования. Не определился я и с протоколом / программным продуктом, который будет для этой задачи оптимальным.
Алгоритм вроде простой: сервер монтирует раздел и получает по сети данные от клиентов. Но в нем много вариантов:
1) Чтобы смонтировать шифрованный раздел нужен ключ, к которому у сервера должен быть доступ. Раз у сервера он есть, значит он может быть получен после его взлома и использован. Как хранить ключ, чтобы он был цел и при этом пригоден к использованию в скриптах? Можно ли считать ключ, который отсутствует на диске сервера, но загружен в его оперативную память, неизвлекаемым без трудоемких методов?
2) Через какой протокол и в какую сторону передавать данные? Если их толкает клиент, то ему нужен доступ на чтение, чтобы сравнивать файлы. Ладно, оставляем ему открытой вчерашнюю резервную копию, как защитить предыдущие копии, не дублируя вчерашнюю на шифрованном разделе? Жесткие ссылки же в шифрованный раздел тянуться не могут.
3) Решить это можно, если сервер сам будет тянуть данные, но тогда возникает проблема с открытыми файлами, особенно в windows. Пока единственная идея, которая приходит на ум, - монтировать на клиенте теневую копию по расписанию непосредственно перед резервированием и предоставлять к ней доступ серверу через smb. Linux'овые демоны, типа rsyncd, как я понял, под windows запускать довольно проблематично.
Такой вот сумбур получился. Проблема вряд ли новая, и наверняка есть готовые программные решения, но мне пока найти их не удалось. Вроде Duplicati выглядит не плохо, но возможность с клиента вернуть любой архив без ввода пароля все портит, да и защита паролей там весьма условная.
Подскажите, пожалуйста, куда двигаться.