Зашифрованные удаленные резервные копии через Rsync?

13

Я запускаю небольшой скромный сервер CentOS в своем доме для разных резервных копий и т. Д. Мой друг из другой части города также запускает небольшой скромный сервер в своем доме для аналогичных целей. Мы играли с идеей использования серверов eachothers для удаленного / удаленного резервного копирования.

По сути, каждый из нас купил бы внешний жесткий диск для хранения в домах друг друга, подключенный к серверам друг друга. Затем мы каждый раз настраивали rsync для передачи соответствующих данных с одного сервера на внешний жесткий диск на другом сервере. Довольно просто по большей части.

Однако, одна вещь, которая важна (по крайней мере для меня), это шифрование данных. Я хочу хранить свои данные на внешнем жестком диске на моем сервере друзей. Но я не хочу, чтобы мой друг (или любой, кто обращается к серверу моего друга) мог читать то, что на внешнем жестком диске.

Каков наилучший подход к этому? Можете ли вы использовать rsync для отправки данных на зашифрованный жесткий диск и каким-то образом передать фразу-пароль вместе с данными, которые он использует для записи, как только достигнет сервера?

Джейк Уилсон
источник

Ответы:

9

Я бы посмотрел на Duplicity.

Duplicity будет делать полные и инкрементные резервные копии и передавать их с помощью Rsync, ftp, sftp, etcetc.

Duplicity использует GPG для шифрования резервных копий и использует файлы сигнатур, а что нет.

Я использую его для резервного копирования своих почтовых серверов, и это просто фантастический пакетный файл.

бесплатно конечно и прост в использовании.

Страница man: http://duplicity.nongnu.org/duplicity.1.html

надеюсь это поможет.

Люк

Luma
источник
вау двуличность качается и супер легко и обратно, и восстановить. Спасибо за подсказку!
Джейк Уилсон
11
## sync local unencrypted data to remote encrypted backups via rsync ..

## mount read-only encrypted virtual copy of unencrypted local data :
encfs --reverse --idle=60 -o ro ~/data/ ~/.tmp_encrypted_data/

## rsync push local encrypted virtual copy of data to remote encrypted copy :
rsync -ai --whole-file ~/.tmp_encrypted_data/ user@example.com:backup/

## unmount encrypted virtual copy of local data :
fusermount -u ~/.tmp_encrypted_data/
Тор
источник
Вау, я никогда не слышал о EncFS раньше. Это УДИВИТЕЛЬНО, учитывая, что у меня есть 200 ГБ для синхронизации с облаком с ноутбука с 240 ГБ диском.
Марк К Коуэн
Это решение кажется более оптимальным, чем варианты duplicity или rsyncrypto. Это просто простая rsync зашифрованной (виртуальной) версии ваших файлов. Это именно то, что требовалось в моей ситуации. Проблема с двуличностью - БОЛЬШАЯ полная резервная копия. Проблема с rsyncrypto - требование копии ваших данных. EncFS просто шифрует его, когда rsync читает данные ..: D
gamecreature
1

Вот мой резервный скрипт, основанный на ответе Тора (все еще действующий несколько лет спустя!). Он добавляет копирование файла .encfs6.xml по мере необходимости для последующей расшифровки (не требуется в 2011 году?), Создания временной папки для зашифрованного монтирования и считывания пароля шифрования из файла (для автоматизированных сценариев):

#!/bin/bash

SOURCE=/home/jortiz/Documents/
BACKUP=/media/jortiz/BAK-EXGD/backup_ALMA_E6520/Documents

SOURCE_ENC=$(mktemp -d /tmp/source_enc.XXXXXX)
echo "Created temporary folder $SOURCE_ENC ..."

## sync local unencrypted data to remote encrypted backups via rsync

# mount read-only encrypted virtual copy of unencrypted local data
encfs --extpass="cat /home/jortiz/.passbackup" --reverse --idle=60 -o ro $SOURCE $SOURCE_ENC

# rsync push local encrypted virtual copy of data to remote encrypted copy
rsync -ai --whole-file $SOURCE_ENC/ $BACKUP

# Copy encfs xml file to backup folder for later decryption
rsync -ai --whole-file $SOURCE/.encfs6.xml $BACKUP

# unmount encrypted virtual copy of local data
fusermount -u $SOURCE_ENC

echo "Removing temporary folder $SOURCE_ENC ..."
rmdir $SOURCE_ENC

В моем случае я настраиваю ежедневное резервное копирование моего ноутбука и небольших серверов на внешний USB-накопитель, подключенный локально. Я хочу зашифровать резервную копию на случай, если диск однажды исчезнет вместе с некоторыми конфиденциальными данными.

bandaangosta
источник
0

Решение, подобное описанному выше, требует отправки вашего ключа шифрования на компьютер вашего друга. Если мы считаем вашего друга «ненадежным сайтом», вы просто нарушаете его безопасность (он может получить ключ и прочитать ваши данные).

Если вы хотите быть уверены, что ваш друг не может прочитать ваши резервные копии, вы должны зашифровать файлы перед их отправкой (например, сделать тарбол, зашифровать его с помощью gpgили аналогичным образом, затем выполнить rsync), и никогда не давать ему ключ (или достаточно). открытый текст для обратного инжиниринга ключа).
Обратите внимание, что это сводит на нет преимущества дельты (экономия полосы пропускания) при использовании rsync: зашифрованный файл будет существенно меняться каждый раз, когда вы создаете резервную копию, поэтому вы, вероятно, будете копировать все это каждый раз.

voretaq7
источник
2
это то, что приятно в Duplicity: он шифрует его перед тем, как покинуть компьютер, но он полностью способен делать инкрементные резервные копии, читая подписи / списки изменений, а что нет, поэтому я предложил ему это. Первое резервное копирование займет много времени, но после этого он будет хорош, сохраняя хороший уровень безопасности.
Люма
0

rsyncrypto был написан именно для этой цели. Это позволяет вам использовать алгоритм дельта-копирования rsync, одновременно шифруя ваши данные локально и храня зашифрованные большие двоичные объекты.

Однако имейте в виду, что rsyncrypto делает компромисс между безопасностью и производительностью.

FD
источник
Быстро взглянув на то, как работает rsyncrypto, я довольно напуган идеей, что кто-то его использует. Я хотел бы узнать мнение авторитетного криптографа о подходе, прежде чем доверять ему любые свои данные.
Уомбл