tar para fita e arquivo com criptografia

1

Estou tentando criptografar nossos backups em fita, usando tar e openssl, mas também gravo em um arquivo local, mas até agora:

tar --total -czp ./tmp ./home | tee /tmp/Archive.tar.gz | tee > /dev/nst0

Não tenho certeza se esta é a correta tee sytax, mas funciona, porque

tar -tzvf /dev/nst0

e

tar -tzvf /tmp/Archive.tar.gz

dê os resultados corretos.

No entanto, se eu tentar adicionar criptografia usando o openssl:

tar --total -czp ./tmp ./home | openssl aes-256-cbc -e -salt -pass file:/encrp_file  | tee /tmp/Archive.tar.gz | tee > /dev/nst0

Eu recebo:

tee: standard output: Invalid argument
tee: write error

Eu suponho que há algo na saída de openssl que está causando um problema para tee quando ele grava na fita porque o arquivo é criado corretamente e se eu remover a saída para tee e apenas enviá-lo para a fita também funciona.

Alguma sugestão?

    
por Tim the Enchanter 09.11.2011 / 13:30

2 respostas

1

Estas são as linhas relevantes do meu script de backup:

tar czfTP - $FILELIST --use-compress-program xz | openssl bf -salt -pass file:passkey.txt | tee /backup/location/file_name.txz.bfe | dd bs=10k of=/dev/tape

Você pode criar os arquivos de backup e copiá-los para a fita posteriormente com

dd if=/backup/file.tar of=/dev/tap bs=10k

E há muitas outras combinações possíveis. Estou usando o Blowfish Encryption, parece que você está querendo o AES, mas isso é fácil de trocar. Eu sei que os outros geralmente usam GPG em vez de OpenSSL. Também é possível configurar chaves assimétricas (AES ou DSS) para gerar uma única chave de sessão e anexá-la ao fluxo de arquivo, mas isso é um pouco mais complicado e torna a análise do arquivo criptografado mais complicada também. Mas é muito útil para ambientes em que o backup será enviado para fora do site e você não quer que as pessoas no local possam adulterar os backups.

    
por 09.11.2011 / 14:44
0

Eu tentei o seguinte e funcionou na decodificação:

$ tar --total -czp /home |openssl aes-256-cbc -e -salt -pass file:pass.txt | tee /tmp/archive.tgz.encrypted > /tmp/archive2.tgz.encrypted

Eu não tenho um dispositivo de fita, então estou enviando para dois arquivos diferentes. Deve funcionar com uma unidade de fita, no entanto.

Então, a descriptografia parece:

$ openssl aes-256-cbc -d -salt -pass file:pass.txt -in /tmp/archive.tgz |tar --total -xzvf -

e não recebo erros.

O comentário de b0fh para o seu post está correto. A sintaxe "tee" adequada está na linha de

$ command | tee outputfile1 > outputfile2
    
por 09.11.2011 / 14:16