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?


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).


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.


-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)


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.