Como criptografar um disco usando dm_crypt e LUKS

Publicado por ANDRE NUNES BATISTA em 19/10/2009

[ Hits: 13.180 ]

 


Como criptografar um disco usando dm_crypt e LUKS



O objetivo deste tutorial é ensinar em passos rápidos como criar uma partição de disco criptografada com o dm-crypt e o LUKS. O foco aqui são os discos externos. É possível usar estas mesmas instruções para criptografar uma partição do seu disco principal. Todavia, se você quiser criptografar o seu disco inteiro, inclusive a partição root, o modo mais simples é reinstalando o sistema, embora seja também possível fazê-lo com alguns acréscimos às instruções abaixo.

Passo 0: instalar o cryptsetup:

# apt-get install cryptsetup

Passo 0a: certificar-se de que os módulos necessários ao uso do LUKS foram carregados:

# modprobe dm_crypt

Passo 0b (opcional): preencher o disco com dados aleatórios (sobrescreve as informações anteriores, para o caso de um disco que já estava em uso, e ainda torna mais difícil um ataque criptoanalítico):

# time dd if=/dev/urandom of=/dev/sdb bs=1M

(isto provavelmente levará algumas horas)

Obs: antes de executar o comando acima é necessário descobrir qual arquivo no sistema (/dev/xxx) representa o disco desejado. Uma forma simples de fazê-lo é executar o comando "df -h" e identificar o disco pelo seu tamanho.

Passo 1: Particionar o disco usando o seu editor de partições de preferência. Na linha de comando o mais comum é o fdisk. No ambiente gráfico, o gparted realiza essa tarefa sem dificuldades, basta selecionar o disco desejado e clicar no ícone de nova partição, escolher o tamanho desejado e voilà.

Agora é o momento de decidir se a partição criptografada irá ocupar o disco inteiro ou se haverá outras partições não criptografadas ou criptografadas com diferentes chaves. Não crie um sistema de arquivos ainda, ele será destruído quando criptografarmos a partição.

Passo 2: Criar a partição criptografada:

# cryptsetup --verbose --verify-passphrase luksFormat /dev/sdb1

Obs: o sistema pedirá por uma senha. Quanto mais longa e aleatória, melhor. Porém, lembre-se de anotá-la em algum lugar, porque se você esquecê-la perderá tudo o que tinha no disco, já que as chances de quebrar a criptografia são quase nulas.

Passo 2a (opcional): verificar se a partição foi criptografada:

# cryptsetup luksDump /dev/sdb1

Passo 3: Abrir a partição criptografada, nomeando-a:

# cryptsetup luksOpen /dev/sdb1 nomequeeugosto

Passo 3a: Verificar se tudo deu certo até aqui e se foi criado um arquivo representando a partição aberta:

# ls -l /dev/mapper/
...
brw-r----- 1 root root 253, 0 Jul 16 01:52 nomequeeugosto

Passo 4: Criar um sistema de arquivos na partição aberta:

# /sbin/mkfs.ext4 -c -m 1 -O dir_index,filetype,extent,sparse_super /dev/mapper/nomequeeugosto

Obs: Agora é o momento de escolher o sistema de arquivos desejado. Se você for utilizar o disco apenas em uma máquina Linux, o ext4 é uma ótima escolha. Por outro lado, se você pretende acessá-lo de máquinas Windows ou OSX, é aconselhável usar o FAT32, o NTFS ou o HFS. Para instruções sobre formatação com esses sistemas de arquivos, leia as páginas man ou google it. E pronto!

Para acessar seu disco no Linux (supondo que você está usando o Gnome, o KDE ou o XFCE), basta conectar o disco e o gerente de desktop abrirá uma janela perguntando pela senha da partição criptografada. Para acessar a partição no Windows, existe um programa muito útil que inclusive pode ser instalado em uma partição não criptografada do seu próprio disco externo. Clique aqui para saber mais.

Referências: roysindre e saout.

Publicado originalmente em meu blog pessoal: http://tagesuhu.wordpress.com/

Outras dicas deste autor
Nenhuma dica encontrada.
Leitura recomendada

PHP Magazine - A sua revista digital de PHP

Dúvidas para compilar um kernel?

Seleção de vídeos: licença Creative Commons, Lula no FISL, Maddog e mais

Shell script: auto-completion - Como implementar

Redirecionamento de saída de erro

  

Comentários
[1] Comentário enviado por m4iir1c10 em 12/10/2014 - 20:39h

Update, sempre que se escreve um artigo que envolve comandos destrutivos, e importante DIZER EM LETRAS GARRAFAIS que todos os dados serao apagados, sempre tem novatos que procuram somente os comandos e sai executando:
http://www.vivaolinux.com.br/topico/Dispositivos-Removiveis/HD-DA-Seagate-NAO-APARECE

[2] Comentário enviado por tagesuhu em 14/10/2014 - 14:39h

Olá, infelizmente o vivaolinux não possui o recurso de edição posterior da dica. Acredito que o "sobrescrever" já deixa claro que há perda de dados e, mais que isto, que criptografia é um assunto avançado e presume-se que quem está estudando este tema já sabe alguma coisa sobre o resto.

De qualquer forma ficam os alertas aqui nos comentários: ESTE TUTORIAL DESTRÓI TODOS OS CONTEÚDOS ANTERIORES NOS DISCOS EM QUE FOR USADO.

Portanto, se for executá-los, tenha certeza de que realizou o backup dos dados importantes nele contidos. Aliás, antes de executar qualquer comando em qualquer tutorial que encontrar pela internet, o adequado é conferir com as páginas man para saber exatamente o que cada comando, incluindo argumentos, vai fazer no seu computador. Isso é ainda mais importante para os comandos executados como ROOT.

Para criptografar arquivos já existentes em um disco, em vez de seguir o tutorial acima (fazendo backup e movendo os arquivos depois), pode-se usar o tar e o gnupg ou então o ecryptfs que cria um diretório criptografado de tamanho não-fixo, sem destruição de dados. Cada alternativa tem sua vantagem.

RTFM



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts