Como usar ecryptfs com um diretório não home

14

Gostaria de usar o ecryptfs para criptografar um diretório aleatório (ou seja, não o meu diretório pessoal ou um subdiretório, principalmente devido a limitações de espaço em disco na minha partição pessoal) e montar esse diretório quando eu entrar na minha conta. Não consigo ver como fazer isso ou mesmo se é realmente possível com o software existente. Vi posts que fornecem sugestões vagas (por exemplo, para usar mount.ecryptfs_privatecom a opção ALIAS), mas ainda não encontrei instruções simples e passo a passo sobre como fazer isso. Alguém seria capaz de fornecer essas instruções ou me direcionar para onde encontrá-las?

user3004015
fonte
2
Este é o método mais simples que você encontrará: wiki.archlinux.org/index.php/…
Rinzwind
1
Meu problema com esta solução é que eu já tenho um diretório inicial criptografado. Olhando para o código ecryptsfs-setup-private, não tenho certeza do que acontecerá se você já tiver uma casa criptografada e realmente não quiser tentar por medo de fazer coisas ruins.
precisa saber é o seguinte
1
Você entende por que um duplo parece tão difícil? Parece-me que o lógico seria criar um sistema genérico para criar pastas e armazenamento criptografados e montá-los automaticamente, e depois criar um sistema para fazer o diretório pessoal, mas esse software parece ter sido escrito com muito de coisas conectadas. O armazenamento deve ser. Privado, o diretório deve ser Privado, etc.
user3004015 15/15/15
2
O uso de um arquivo zip protegido por senha não é criptograficamente seguro. Uma abordagem semelhante é usar gpg. Digamos que você queira armazenar a pasta com segurança mydatae usá-la tar -c mydata | gpg --symmetric > mydata.tar.gpg && rm -rf mydatapara armazenar e gpg --decrypt mydata.tar.gpg | tar -xrestaurar seus dados. Você pode usar facilmente sua chave pública / privada para proteger seus dados, o que parece aconselhável. Somente pequenas quantidades de dados devem ser armazenadas com esse método. @Rinzwind
Arne L.
1
Tipo de derrota o propósito de criptografar os dados, se você rm -fR mydata. Esses dados podem ser recuperados do disco muito depois que você os "exclui". Eu não estou certo de como garantir que é, mas eu inclinar-se para um "recursiva" fragmente em vez disso: find mydata -type f -exec shred -uz -- {} \;. Observe que a fragmentação é eficaz apenas em sistemas de arquivos não registrados em diário e em certos tipos de dispositivos. Onde importa, deve-se pesquisar da melhor maneira. Não acho que seja uma prática segura: criptografar e descriptografar o arquivo como este. As probabilidades são de que será ineficaz.
BamBams

Respostas:

8

Você está olhando apenas os scripts super fáceis como ecryptsfs-setup-privatee ecryptsfs-mount-private, eles usam as ferramentas mais "genéricas" que parecem estar procurando: mount.ecryptfse ecryptfs-add-passphrase. Veja as manpáginas deles para mais informações.

E o link que Rinzwind postou tem todas as informações necessárias, mais abaixo na página em Configuração manual . Eles são bastante longos, mas a versão muito curta seria:


O caminho "Configuração manual" (archlinux wiki)

Primeiro, escolha um ALIAS como quiser. Através desta seção, o ALIAS será secreto. Crie os diretórios / arquivos necessários:

$ mkdir ~/.secret ~/secret ~/.ecryptfs
$ touch ~/.ecryptfs/secret.conf ~/.ecryptfs/secret.sig

O ~/.secretdiretório manterá os dados criptografados. O ~/secretdiretório é o ponto de montagem onde ~/.secretserá montado como um sistema de arquivos ecryptfs.

[Agora crie a senha de montagem real (os scripts fáceis escolherão 32 caracteres pseudo-aleatórios /dev/urandom), faça uma boa]

$ echo "$HOME/.secret $HOME/secret ecryptfs" > ~/.ecryptfs/secret.conf
$ ecryptfs-add-passphrase
Passphrase: 
Inserted auth tok with sig [78c6f0645fe62da0] into the user session keyring

Escreva a assinatura de saída (ecryptfs_sig) do comando anterior em ~ / .ecryptfs / secret.sig:

$ echo 78c6f0645fe62da0 > ~/.ecryptfs/secret.sig
  • Uma segunda senha para criptografia de nome de arquivo pode ser usada. Se você escolher, adicione-o ao chaveiro:

    $ ecryptfs-add-passphrase
    Passphrase: 
    Inserted auth tok with sig [326a6d3e2a5d444a] into the user session keyring
    

    Se você executar o comando acima, anexe sua assinatura de saída (ecryptfs_fnek_sig) a ~ / .ecryptfs / secret.sig:

    $ echo 326a6d3e2a5d444a >> ~/.ecryptfs/secret.sig
    

Finalmente, para montar ~ / .secret em ~ / secret:

$ mount.ecryptfs_private secret

Para desmontar ~ / .secret:

$ umount.ecryptfs_private secret

  • Ou você pode realmente sujar as mãos e seguir as instruções Sem ecryptfs-utils .

  • Ou se você já olhou para os scripts fáceis ecryptsfs-setup-privatee ecryptsfs-mount-private, você pode ser capaz de copiar aqueles e editá-los para apontar para os diretórios preferenciais, com um pouco de habilidade e paciência.

  • Ou simplesmente armazene a senha (s) de alguma forma (de preferência segura) e faça como o man ecryptfsexemplo da página (deve ler as páginas de manual):

    The following command will layover mount eCryptfs on /secret with a passphrase
    contained in a file stored on secure media mounted at /mnt/usb/.
    
    mount  -t  ecryptfs -o key=passphrase:passphrase_passwd_file=/mnt/usb/file.txt /secret /secret
    
    Where file.txt contains the contents "passphrase_passwd=[passphrase]".
    

Além de pastas pessoais criptografadas e uma pasta criptografada dentro de pastas domésticas - aninhadas eCryptfs

E uma pasta pessoal criptografada normalmente armazena arquivos /home/.ecryptfs/user/, enquanto uma pasta particular criptografada possui arquivos dentro da sua própria pasta pessoal. Você não pode usar os dois ao mesmo tempo, o eCryptfs não criará pastas criptografadas aninhadas. Mas ter uma casa criptografada e pastas criptografadas fora de sua casa está ok.

  • Eu apenas tentei criar um novo usuário com uma casa criptografada sudo adduser --encrypt-home jack

    Criou uma /home/.ecryptfs/pasta com:

    • /home/.ecryptfs/jack/.ecryptfs/ - senha secreta e arquivos de configuração agrupados na casa do jack automount no login
    • /home/.ecryptfs/jack/.Private/- arquivos home criptografados reais, montados /home/jack/quando logados.

      E também a /home/jack/pasta, mas continha um link que permanece lá, conectado ou não:

      /home/jack/.ecryptfs/ -> /home/.ecryptfs/jack/.ecryptfs

    • Em seguida, entrei como jack, mas o link ainda estava lá, então, ao tentar executá- ecryptfs-setup-privatelo, ele procurou, /home/jack/.ecryptfs/mas realmente viu os arquivos existentes, /home/.ecryptfs/jack/.ecryptfspor isso não conseguiu criar outro arquivo de senha e falhou comERROR: wrapped-passphrase file already exists, use --force to overwrite.

      Falha ao tentar as etapas "ALIAS" acima, usando uma pasta .secret dentro da casa criptografada , com estes erros:
      Mount on filesystem of type eCryptfs explicitly disallowed due to known incompatibilities
      Reading sb failed; rc = [-22]

      "O aninhamento de diretórios criptografados dentro de diretórios criptografados não é suportado pelo eCryptfs. Desculpe." - autor e mantenedor do eCryptfs

    • Alterar a pasta ALIAS fora da casa de jack, tentar /tmp/.secret/e /tmp/secret/ funcionar . MAS, se a saída da nova pasta criptografada for mantida montada , é necessário desmontá-la ( umount.ecryptfs_private secret).

Xen2050
fonte
1
Obrigado pela resposta simplificada. Porém, uma pergunta: isso resolve o problema de montagem automática? Desculpe por ser densa sobre isso, mas a página da web que você indicou e as páginas de manual realmente não são particularmente fáceis de entender sobre a configuração da montagem automática para uma situação fora do padrão. Como eu já tenho um diretório inicial criptografado, já tenho $ HOME / .ecryptfs / auto-mount e wrap-passphrase, mas o primeiro está vazio e o segundo já tem algo nele. Não está totalmente claro para mim como adicionar a nova senha e instruí-la a montar automaticamente o diretório.
user3004015
Atualizado com um pouco de testes, e esse cara ragingpenguin.com/2012/12/... aparentemente teve alguma sorte seguindo o guia Wiki arco na auto-montagem com PAM, mas ele está bem de boca fechada sobre isso
Xen2050
Obrigado por seus esforços. Não estou interessado em aninhar os diretórios ecryptfs, mas montando automaticamente um segundo diretório em um segundo lugar. Vou tentar fazê-lo funcionar quando tiver um pouco de tempo, mas definitivamente não está muito claro ...
#
Você pode recortá-lo em uma mountlinha, não precisar de um .confarquivo ou adicionar chaves, basta ler as man ecryptfspáginas para obter as opções disponíveis. Em seguida, jogue um arquivo "executar no login" /home/user/.config/autostart/. Mas a segurança da senha poderia estar em risco se forem armazenados de forma inadequada
Xen2050
O fato é que o ecryptfs possui um bom sistema de quebra de senhas de criptografia dentro de um invólucro que é aberto com uma senha de login. Isso fornece proteção adicional para a senha do ecryptfs, o que seria bom ter. Eu não acho que colocar algo em .config / autostart permita isso, a menos que eu esteja entendendo mal o que devo colocar no script.
user3004015
0

Se você quiser usá-lo como encfs, poderá fazê-lo com a seguinte entrada em /etc/fstab

/tmp/.geheim /tmp/geheim ecryptfs rw,no_sig_cache,ecryptfs_fnek_sig=1f7aefb9e239099f,ecryptfs_cipher=aes,ecryptfs_key_bytes=32,ecryptfs_enable_filename_crypto=y,ecryptfs_passthrough=n,passphrase_passwd=geheimpw,user,noauto 0 0

geheim é a palavra alemã para segredo, mas garante que não seja uma palavra-chave. Você deve criar os diretórios primeiro. A primeira vez que você deve sair ecryptfs_fnek_sig=1f7aefb9e239099f. Em seguida mount /tmp/geheim, mostrará o valor correto.

Você pode armazenar a senha em outro local e definir opções mais sofisticadas. Você encontrará todas as opções em man ecryptfs.

niels
fonte
-1
ecryptfs /destination/to/encrypted/storage /destination/to/seeing/unencrypted/data

por exemplo:

ecryptfs /home/$USER/EFILES /home/$USER/Downloads/RANDOMDIRECTORY

use o comando acima para criar e montar um sistema criptografado no qual os arquivos salvos no RANDOMDIRECTORY são criptografados e salvos no EFILES.

Notas Adicionais. verifique se RANDOMDIRECTORY está vazio ao iniciar. Depois de executar o comando acima, e o sistema estiver montado e pronto para ser usado, todos os arquivos salvos em RANDOMDIRECTORY serão criptografados no EFILES se o sistema estiver montado. Para uma montagem / desmontagem rápida, você pode criar um script bash e executá-lo através de um atalho do aplicativo ou criar um comando alternativo para montagem rápida.

Estou usando isso há mais de um ano.

EDIT: fui para casa para confirmar, teu comando não é ecryptfs. seus encfs ou seja

encfs /destination/encrypted /destination/unencrypted

me desculpe por isso. Com isso, você terá que instalar um novo programa (provavelmente)

dr1094
fonte
1
Eu digitei o comando ecryptfse ele responde o comando não encontrado. man ecryptfsabre a página de manual mount -t ecryptfs, mas não explica realmente como criar um sistema de arquivos criptografado.
precisa saber é o seguinte
Observe que estou usando o Ubuntu 14.04 LTS, então minha instalação é relativamente recente. O ecryptfscomando é uma adição recente?
user3004015
encfs não é o mesmo que ecryptfs. Estes são dois diferentes.
Diagon 05/03