Como criptografar um disco usando dm_crypt e LUKS

Publicado por ANDRE NUNES BATISTA em 19/10/2009

[ Hits: 10.911 ]

 


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

Dual Boot: CentOS 7 x Windows - Solucionando problemas

Segurança em servidores

Real Player no KUbuntu 7.04

C - Resolvendo problemas com buffers

Squid autenticando em um servidor LDAP (Active Directory)

  

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 HostGator.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Viva o Android

Tópicos

Top 10 do mês

Scripts