use ecryptfs para Ubuntu One com um diretório inicial já criptografado

9

Gostaria da ideia de ter uma pasta criptografada no Ubuntu One. Existem instruções atuais na Internet sobre como configurá-lo com EncFS ou ecryptfs. Eu gostaria de usar o ecryptfs - não por causa da velocidade, pois a velocidade não importa muito se você estiver armazenando seus dados na nuvem - mas como eu já uso o ecryptfs, me acostumei e, portanto, não Também não gosto de usar outra solução.

O problema com a pasta Ubuntu One é que faz parte da pasta pessoal do usuário. Com as versões recentes do Ubuntu, em muitos casos, a pasta inicial do usuário já é criptografada com ecryptfs e você não pode usar ecryptfs (para uma pasta Ubuntu One) em cima de ecryptfs (do diretório inicial do usuário).

Então, o que alguém poderia fazer? Obviamente, use o EncFS. Ou mova a pasta Ubuntu One para fora da pasta inicial do usuário.

Mais alguma ideia ou sugestão?

spi
fonte

Respostas:

4

Como já foi dito, o ecryptfs não é uma solução para o meu problema, pois minha pasta pessoal já está criptografada pelo ecryptfs. Mover a pasta "Ubuntu One" para fora da árvore inicial não é uma solução, pois o restante do conteúdo do "Ubuntu One" não é mais criptografado.

Decidi usar o EncFS. Configurar uma pasta criptografada é bastante simples. Mas como montá-lo automaticamente para que os aplicativos possam usá-lo para armazenar arquivos de configuração? Existem algumas soluções:

  1. pam_mount
  2. gnome-encfs
  3. autofs
  4. um fuso

Não gosto da ideia 1 porque não quero usar a mesma senha para EncFS que a minha senha de login.

Solução 2 Não gosto por um lado, porque não há um pacote apt disponível para o Ubuntu e, por outro lado, não quero que a pasta EncFS seja montada apenas após o logon. Se algo falhar ou se a pasta for desmontada a cada acesso subseqüente falhará.

Solução 3 simplesmente não funciona. Eu uso autofs há algum tempo para montar compartilhamentos e pastas CIFS através do sshfs, mas o EncFS simplesmente não é suportado. Eu brinquei com vários scripts para montar o EncFS por autofs, mas isso se tornou muito complexo e propenso a erros.

Então, o que estou usando atualmente é a solução 4. O Afuse está disponível como um pacote apt. O Afuse monta automaticamente a pasta EncFS assim que a pasta é acessada e desmonta-a novamente após algum tempo ocioso.

Aqui estão as etapas rápidas de como configurar tudo (talvez eu adicione alguns detalhes no futuro):

  • instalar um abuso
  • crie a pasta "Ubuntu One" para armazenar o conteúdo criptografado

Exemplo:

~ / Ubuntu \ One / .encrypted

  • crie uma pasta como uma pasta superior por motivos de montagem nas pastas

Exemplo:

~ / .fuse

  • crie alguns scripts auxiliares
  • crie uma entrada de início automático no Gnome para iniciar um ataque

A pasta EncFS não criptografada é montada sob ~ / .fuse. No meu caso, a pasta com o conteúdo não criptografado é denominada U1Enc, portanto, todos os dados permanecem em ~ / .fuse / U1Enc. Para minha conveniência, criei um link de ~ / U1Enc para ~ / .fuse / U1Enc para chegar lá mais facilmente.

As idéias e scripts auxiliares que encontrei em vários sites. Aqui estão os links:

Montagem automática de sistemas de arquivos FUSE
autofs: encfs sobre sshfs

Eu uso os seguintes scripts:

~ / .afuse-fstab

U1Enc  encfs --ondemand --idle=5 --extpass="/home/xxx/.creds/U1.encfs.sh" /home/xxx/Ubuntu\ One/.encrypted %m

~ / .creds / U1.encfs.sh (marcado como executável e acessível apenas pelo próprio usuário)

#!/bin/sh
echo PASSWORD_FOR_ENCFS_IN_CLEARTEXT

~ / bin / afuse-handler.pl (marcado como executável e com ~ / bin em $ PATH)

#!/usr/bin/perl -w

$fstab="$ENV{HOME}/.afuse-fstab";
$afusedir=$ARGV[0];
$afuse_mountpoint=$ARGV[1];

print "afusedir:$afusedir\n";
print "afuse_mountpoint:$afuse_mountpoint\n";

system("logger -t afuse 1:$ARGV[0] 2:$ARGV[1]");

open(FSTAB, $fstab ) or die("Can not open afuse-fstab at $fstab\n");
while( <FSTAB> ) {
        if( /^$afusedir/ ) {
                s/[^\s\/]+[\s]*//;
                s/%r/$afusedir/g;
                s/%m/$afuse_mountpoint/g;
                chomp;
                $cmd = $_;
                print "$cmd\n";
                system($_) == 0
                        or die "execution of FUSE filesystem failed!\n"
                             . "command:$cmd\n"
                             . "reason:$?\n";
        }
}

e finalmente ~ / bin / afuse.start.sh (marcado novamente como executável) que eu registrei no Gnome / System / Settings para iniciar o uso após o logon

#!/bin/sh
afuse -o mount_template="/home/xxx/bin/afuse-handler.pl %r %m" -o unmount_template="fusermount -u -z %m" ~/.fuse

O último script inicia um afuse que inicia o manipulador de afuse para montar a pasta EncFS sob ~ / .fuse assim que é acessado. O próprio afuse.handler verifica o .afuse-fstab como montar a pasta. A senha do EncFS é ecoada pelo U1.encfs.sh, portanto, nenhuma intervenção do usuário é necessária (como esse arquivo é armazenado na minha pasta pessoal, ele é criptografado pelo ecryptfs, para que não ocorra um grande problema de segurança).

Cuide de diferentes versões do EncFS. No Natty atualmente o EncFS versão 1.7.4 é instalado. Isso não funciona bem com uma versão 1.6 mais antiga do Maverick. Eu tive que atualizar o EncFS no Maverick para a 1.7.4 também (fiz isso fixando o apt / preferências).

spi
fonte
0

Uma maneira possível de fazer isso é usar dois diretórios diferentes:

~ / my_secret_data não seria sincronizado, mas criptografaria todos os arquivos adicionados a ele e depois moveria os arquivos criptografados da pasta ~ / my_secret_data / para a pasta ~ / Ubuntu One /. Se você adicionou sua chave GPG a todos os seus computadores, poderá abrir automaticamente arquivos criptografados, mas outros não.

Acho que não é muito elegante, mas deve funcionar.

Jo-Erlend Schinstad
fonte
É o que estou fazendo com o EncFS. Os dados criptografados são armazenados em ~ / Ubuntu \ One / .encrypted e os não criptografados em ~ / .fuse / U1Enc. Eu apenas uso o EncFS em vez do GPG para conveniência do usuário - os dados são criptografados / descriptografados em tempo real.
Spi