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:
- pam_mount
- gnome-encfs
- autofs
- 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).