Como eu crio um sistema de arquivos criptografado dentro de um arquivo?

14

Eu encontrei este tutorial interessante sobre o blogue flossstuff .

Explica como criar um arquivo vazio, formatá-lo como ext4 e montá-lo como um dispositivo.

Gostaria de saber se pode ser criado como um sistema de arquivos ext4 criptografado.

Eu tentei usar o palimpsest (o utilitário de disco encontrado no menu Sistema) para formatar o sistema de arquivos já criado, mas ele não funciona, pois detecta o sistema de arquivos que está sendo usado.

Se eu tentar desmontar o sistema de arquivos, isso não funcionará porque ele não detecta o dispositivo (já que não é um dispositivo real como um disco rígido ou uma unidade USB).

Então, minha pergunta é: existe uma opção para criar o sistema de arquivos como criptografado desde o início? Eu usei estes comandos:

Crie um arquivo vazio com tamanho de 200 MB:

dd if=/dev/zero of=/path/to/file bs=1M count=200

Torne ext4:

mkfs -t ext4 file

Monte em uma pasta dentro da minha casa:

sudo mount -o loop file /path/to/mount_point

Existe alguma maneira de o comando mkfs criar um sistema de arquivos ext4 criptografado solicitando uma senha de decodificação?

Estou planejando usar isso como uma maneira de criptografar arquivos dentro do Dropbox.

    
por animaletdesequia 28.08.2011 / 01:55

3 respostas

8

Você pode usar cryptmount para criptografar um sistema de arquivos, também se o sistema de arquivos estiver em um arquivo.

A página de manual cryptmount tem uma explicação muito simples e detalhada que eu relato (modificada) aqui, e menciona explicitamente um sistema de arquivos baseado em arquivo.

  • Etapa 1 - Adicione uma entrada em /etc/cryptmount/cmtab , da seguinte forma:

    mycrypt {
        dev=/media/data/mycrypt dir=/home/enzotib/mycrypt
        fstype=ext4 mountoptions=defaults cipher=twofish
        keyfile=/etc/cryptmount/mycrypt.key
        keyformat=builtin
    }
    

    em que /media/data/mycrypt é o arquivo de suporte criado por dd e /home/enzotib/mycrypt é o ponto de montagem desejado.

  • Etapa 2 - Gere uma chave de descriptografia secreta

    sudo cryptmount --generate-key 32 mycrypt
    
  • Etapa 3 - Execute o seguinte comando

    sudo cryptmount --prepare mycrypt
    

    você será perguntado pela senha usada ao configurar a chave

  • Etapa 4 - Crie o sistema de arquivos

    sudo mkfs.ext4 /dev/mapper/mycrypt
    
  • Etapa 5 - Execute

    sudo cryptmount --release mycrypt
    
  • Etapa 6 - Agora monte o sistema de arquivos

    mkdir /home/enzotib/mycrypt
    cryptmount -m mycrypt
    

    depois desmonte-o

    cryptmount -u mycrypt
    

Além disso, se você precisar criptografar um diretório, encfs pode valer a pena levar em consideração.

    
por enzotib 28.08.2011 / 12:18
3

Você pode usar o comando losetup com o parâmetro -e para criar um dispositivo de loop criptografado. Detalhes disponíveis no link

    
por Mathieu 28.08.2011 / 12:13
3

Siga os próximos passos para criar um arquivo criptografado com o sistema de arquivos interno:

1. A maneira mais rápida de criar arquivos de determinado tamanho é:

fallocate -l 128M /path/to/file

2. Crie LUKS (Configuração de chave unificada do Linux ) partição dentro do arquivo usando dm-crypt ferramentas:

cryptsetup -y luksFormat /path/to/file

Você pode verificar se esse arquivo é um contêiner criptografado:

/path/to/file: LUKS encrypted file, ver 1 [aes, xts-plain64, sha1] UUID: 7e2af5a1-3fab-43ea-a073-3b9cc6073f00

3. Abra o contêiner criptografado:

cryptsetup luksOpen /path/to/file data

data é o nome do volume do mapeador de dispositivo. Você pode escolher outro nome.

Isso abre o dispositivo LUKS e o mapeia para um nome que nós fornecemos, no nosso caso, criando um arquivo em /dev/mapper/data .

4. Crie ext4 filesystem neste dispositivo:

mkfs.ext4 /dev/mapper/data

5. Em seguida, crie o ponto de montagem:

mkdir /path/to/mount

6. E monte o dispositivo lá:

mount /dev/mapper/data /path/to/mount

7. Para desmontar o sistema de arquivos e fechar o dispositivo LUKS:

umount /path/to/mount
cryptsetup luksClose data

Agora você tem o contêiner LUKS criptografado com o sistema de arquivos ext4. Quando você quiser usá-lo, simplesmente repita os passos 3 e 6. Quando você terminar, chame o passo 7.

Este artigo foi muito útil para mim.

Além disso, um dia seu contêiner ficará sem espaço. Suponha que o tamanho do arquivo de contêiner criptografado seja de 128 MB e queremos aumentar seu tamanho para 512 MB. Para aumentar sua capacidade , siga estas etapas:

1. Desmonte e feche o dispositivo LUKS (consulte a etapa 7 na lista acima).

2. Aumentar o tamanho do arquivo de contêiner:

 dd if=/dev/zero of=/path/to/file bs=384M count=1 oflag=append conv=notrunc

3. Abra o dispositivo LUKS.

cryptsetup luksOpen /path/to/file data

4. Redimensione o dispositivo LUKS para corresponder ao tamanho do arquivo contêiner. De man page:

  
    

Se --size (em setores) não for especificado, o tamanho do dispositivo de bloco subjacente será usado.

  

Então você pode simplesmente:

cryptsetup resize data

5. Em seguida, redimensione o sistema de arquivos ext4:

e2fsck -f /dev/mapper/data
resize2fs /dev/mapper/data

6. Agora você pode montar o sistema de arquivos:

mount /dev/mapper/data /path/to/mount
    
por mixel 29.01.2017 / 18:00