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

9

Eu gostaria da ideia de ter uma pasta criptografada no Ubuntu One. Há howtos atuais na Internet 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ê está armazenando seus dados na nuvem - mas como eu já estou usando o ecryptfs, me acostumei com isso e, portanto, don ' Também gosto de usar outra solução.

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

Então, o que alguém poderia fazer? Claro, use EncFS em vez disso. Ou mova a pasta Ubuntu One para fora da pasta pessoal do usuário.

Alguma outra ideia ou sugestão?

    
por spi 02.07.2011 / 10:50

2 respostas

4

Como já foi dito, o ecryptfs não é uma solução para o meu problema, já que 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.

Eu decidi usar o EncFS. Configurar uma pasta criptografada é bem 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. afuse

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

Solução 2 Eu não gosto de um lado porque não há nenhum pacote apt disponível para o Ubuntu e por outro lado eu não quero ter a pasta EncFS montada apenas após o login. Se algo falhar ou for a pasta fica desmontado a cada acesso subseqüente falhará.

A solução 3 simplesmente não funciona. Eu tenho usado o autofs por um bom tempo para montar compartilhamentos e pastas do 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 eu estou usando atualmente é a solução 4. 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 os passos rápidos de como configurar tudo (talvez eu adicione alguns detalhes no futuro):

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

Exemplo:

  

~ / Ubuntu \ One / .encrypted

  • crie uma pasta como uma pasta principal para criar pastas dentro de

Exemplo:

  

~ / .fuse

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

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

As ideias e scripts auxiliares que encontrei em vários sites. Aqui vem os links:

  

Sistemas de arquivos automontáveis FUSE
autofs: encfs over 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 somente acessível 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 registrei com o Gnome / System / Settings para iniciar o ataque após o login

#!/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 lança o afuse que inicia o manipulador de afusos para montar a pasta EncFS abaixo de ~ / .fuse assim que for acessado. O afuse.handler em si 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 (já que esse arquivo é armazenado em minha pasta pessoal e é criptografado pelo ecryptfs, portanto não vejo 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 no Maverick. Eu tive que atualizar o EncFS no Maverick para o 1.7.4 também (feito isso fixando o apt / preferences).

    
por spi 11.07.2011 / 08:58
0

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

~ / my_secret_data não seria sincronizado, mas iria criptografar todos os arquivos adicionados a ele e então mover 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 os arquivos criptografados, mas outros não.

Não é muito elegante, eu acho, mas deve funcionar.

    
por Jo-Erlend Schinstad 27.08.2011 / 15:50