Backups remotos criptografados via Rsync?

13

Eu administro um pequeno servidor modesto do CentOS em minha casa para backups diversos, etc. Meu amigo do outro lado da cidade também executa um pequeno servidor modesto em sua casa para fins semelhantes. Estamos brincando com a idéia de usar os servidores de cada um para fazer backups remotos / externos.

Basicamente, cada um de nós compra um disco rígido externo para armazenar nas casas de cada um, conectado aos servidores de cada um. Em seguida, cada instalação programava rsync para enviar os dados apropriados de um servidor para o disco rígido externo no outro servidor. Bem simples na maior parte.

No entanto, uma coisa que é importante (pelo menos para mim) é a criptografia de dados. Quero armazenar meus dados no disco rígido externo do servidor dos meus amigos. Mas não quero que meu amigo (ou qualquer pessoa que acesse o servidor do meu amigo) possa ler o que está no disco rígido externo.

Qual é a melhor abordagem para isso? Você pode usar o rsync para enviar dados para uma unidade de disco rígido criptografada e de alguma forma passar uma frase secreta junto com os dados que ela usa para gravá-la quando chegar ao servidor?

Jake Wilson
fonte

Respostas:

9

Eu daria uma olhada na Duplicity.

O Duplicity fará backups completos e incrementais e os transferirá usando Rsync, ftp, sftp, etcetc.

A duplicidade usa o GPG para criptografar os backups e usa arquivos de assinatura e o que não.

Eu o uso para fazer backup de meus servidores de e-mail e é fantástico, um arquivo em lotes simples.

grátis, é claro e fácil de usar.

página de manual: http://duplicity.nongnu.org/duplicity.1.html

espero que isto ajude.

Luc

Luma
fonte
wow duplicidade rochas e é super fácil de voltar e restaurar. Obrigado pela dica!
Jake Wilson
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/ [email protected]:backup/

## unmount encrypted virtual copy of local data :
fusermount -u ~/.tmp_encrypted_data/
Thor
fonte
Uau, eu nunca tinha ouvido falar do EncFS antes. Isso é INCRÍVEL, pois tenho 200 GB para sincronizar com a nuvem de um laptop com um disco de 240 GB.
Mark K Cowan
Essa solução parece mais ideal do que as variantes duplicidade ou rsyncrypto. É apenas um simples rsync de uma versão criptografada (virtual) dos seus arquivos. Isso é exatamente o que era necessário na minha situação. Problema com duplicidade é o backup completo GRANDE. Problema com o rsyncrypto é o requisito de uma cópia dos seus dados. Encfs apenas criptografa quando rsync lê os dados ..: D
gamecreature
1

Aqui está o meu script de backup com base na resposta de Thor (ainda válida vários anos depois!). Ele adiciona a cópia do arquivo .encfs6.xml conforme necessário para descriptografia posterior (não é necessária em 2011?), Criação de pasta temporária para montagem criptografada e leitura da senha de criptografia do arquivo (para scripts automatizados):

#!/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

No meu caso, estou configurando um backup diário do meu laptop e pequenos servidores em uma unidade USB externa conectada localmente. Quero criptografar o backup para o caso de a unidade desaparecer um dia, juntamente com alguns dados confidenciais.

bandaangosta
fonte
0

Uma solução como a descrita acima exige o envio da chave de criptografia para a máquina do seu amigo. Se considerarmos seu amigo um "site não confiável", você acaba com sua segurança (ele pode capturar a chave e ler seus dados).

Se quiser ter certeza de que seu amigo não pode ler seus backups, você deve criptografar os arquivos antes de enviá-los (por exemplo, criar um tarball, criptografá-lo com gpgou similar e depois sincronizá-lo novamente) e nunca fornecer a chave (ou o suficiente) texto simples para fazer engenharia reversa da chave).
Observe que isso anula os benefícios delta (economia de largura de banda) do uso do rsync: o arquivo criptografado muda substancialmente toda vez que você faz um backup; portanto, provavelmente você estará copiando toda a coisa.

voretaq7
fonte
2
é isso que é legal no Duplicity, ele o criptografa antes de sair do computador, mas é totalmente capaz de fazer backups incrementais lendo assinaturas / listas de alterações e, o que não, é por isso que sugeri a ele. O primeiro backup levará muito tempo, mas depois disso, ele estará pronto para manter um bom nível de segurança.
Luma
0

O rsyncrypto foi escrito exatamente para esse fim. Ele permite que você aproveite o algoritmo de cópia delta do rsync enquanto criptografa seus dados localmente e armazena os blobs criptografados remotamente.

No entanto, lembre-se de que o rsyncrypto faz uma troca entre segurança e desempenho.

FD
fonte
Tendo examinado rapidamente como o rsyncrypto funciona, fico aterrorizado com a ideia de alguém usá-lo. Gostaria de ver a opinião de um criptógrafo respeitável sobre a abordagem antes de confiar em qualquer um dos meus dados.
womble