Utilizando criptografia LUKS em discos externos

Este artigo tem como objetivo, mostrar como criptografar HDs externos utilizando a criptografia LUKS. Também mostrará como fazer um script de backup para reconhecer/montar estes discos criptografados, sem a configuração de label.

[ Hits: 16.562 ]

Por: Bruno Bueno da Silva em 24/11/2014


Introdução / Instalação / Montagem



Introdução

Para este artigo foi utilizado:
  • Distribuição: GNU/Linux CentOS 6
  • Pacote: LUKS - (Linux Unified Key Setup)
  • Gerenciamento de dispositivos: comandos mount, blkid, mkfs, entre outros.

Experiência pessoal

Recentemente, tive que executar a seguinte tarefa:
  • Criptografar um HD externo utilizado para backup.
  • Adicionar este disco a um script de backup já existente de forma que o script o reconheça/monte automaticamente, independente de como o sistema reconheceu em /dev.

Esta tarefa básica "roubou" algumas horas do meu dia e, como pesquisando na internet, não encontrei nada relacionado, encontrei apenas como criptografar, mas o processo seguinte não conseguia de forma alguma. Como utilizei a criatividade para resolver esse problema, achei que seria legal compartilhar com a comunidade.

Até porque, eu venho utilizando o Viva o Linux como refúgio para alguns problemas faz tempo e ainda não contribui com a comunidade, achei que seria uma forma interessante de iniciar. Sendo assim, mão à obra.

Instalação e utilização do LUKS

Instalando o LUKS:

# yum install cryptsetup-luks-devel

Obs.: estou supondo que o seu disco externo foi reconhecido como /dev/sdc1. Obviamente, verifique como o seu disco foi reconhecido para evitar acidentes.

Após instalação do pacote, zere o disco de backup ou crie uma partição com fdisk:

# dd If=/dev/zero of=/dev/sdc1 bs=1M count=128

Após "zerar" o disco de backup, vamos formatar o dispositivo no sistema de arquivos LUKS, que corresponde à criptografia:

# cryptsetup luksFormat /dev/sdc1

Confirme com YES (em maiúsculo). Defina uma palavra chave para a criptografia (guarde bem essa palavra, pois será necessário em uma futura consulta em outro servidor).

Agora crie um Label Criptografado, para podermos acessar o disco físico:

# cryptsetup luksOpen /dev/sdc1 hdbackup

Após esse comando, o Label Criptografado estará localizado em /dev/mapper/hdbackup. Formate-o com o sistema de arquivos que você utiliza.

No meu caso utilizo, o ext4:

# mkfs.ext4 /dev/mapper/hdbackup

A partir deste momento, o disco pode ser manipulado como um disco qualquer, monte o dispositivo e veja se aceita gravação de dados normalmente:

# mkdir /media/hdbackup
# mount /dev/mapper/hdbackup /media/hdbackup
# cp -Rv /etc/* /media/hdbackup ; ls /meda/hdbackup

Para desmontar um dispositivo criptografado, é necessário primeiro desmontar o dispositivo, e depois fechar a criptografia:

# umount /media/hdbackup
# cryptsetup luksClose hdbackup

Obs.: toda vez que for montar o dispositivo, é necessário adicionar a palavra passe que foi adicionada durante a ativação da criptografia. O processo para montar um dispositivo criptografado, é primeiro ativar a criptografia:

# cryptsetup luksOpen /dev/sdc1 hdbackup

E, após isso, inserir a palavra passe e montar o dispositivo normalmente:

# mount /dev/mapper/hdbackup /media/hdbackup

Com isso, já temos um disco externo criptografado, funcionando perfeitamente, porém, o processo de montagem deste dispositivo está um pouco "burocrática", tendo em vista que será utilizado em um script de backup, teremos que facilitar esse processo.

Montando de forma fácil dispositivos criptografados

Para facilitar o processo de montagem do dispositivo, vamos adicionar um "arquivo-chave" que, ao chamar o arquivo no momento da montagem do dispositivo criptografado, ele irá substituir a "palavra-passe".

Gerando o arquivo-chave:

# dd if=/dev/urandom of=/root/keyfile bs=1024 count=4

Modifique a permissão do arquivo-chave:

# chmod 0400 /root/keyfile

Vamos adicionar o arquivo-chave à partição/disco criptografado:

# cryptsetup luksAddKey /dev/sdc1 /root/keyfile

Ativando a criptografia do dispositivo de forma fácil:

# cryptsetup --key-file=/root/keyfile luksOpen /dev/sdc1 hdbackup

Obs.: veja que o terminal foi para linha de baixo, não reportando nenhum erro, e nem foi necessário emitir a "palavra-passe". Rode o comando:

# ls /dev/mapper/

E veja que o dispositivo criptografado já está disponível.

Deste ponto em diante, apenas monte o dispositivo normalmente como no passo anterior e pronto, o processo de montagem ficou mais fácil.

    Próxima página

Páginas do artigo
   1. Introdução / Instalação / Montagem
   2. Disco criptografado / Script
Outros artigos deste autor

Docker - Containers em Linux (parte 2)

Docker - Containers em Linux

Leitura recomendada

Utilizando Ubuntu live-CD/USB para backup com PartImage

Implantando um Servidor de Backup com Bacula - Debian Squeeze

Clonar HD com o comando pv salvando em .img

Backup com o FSArchiver

Backup de VMs ligadas do XEN Server

  
Comentários
[1] Comentário enviado por danniel-lara em 24/11/2014 - 11:26h

Parabéns muito bom mesmo

[2] Comentário enviado por andersonjackson em 25/11/2014 - 12:48h

Muito bom, parabéns.

[3] Comentário enviado por snails em 27/11/2014 - 09:24h

Muito bom seu post. Parabéns mesmo.....

[4] Comentário enviado por rrodrigues345 em 26/02/2017 - 21:06h

Olá Bruno! Parabéns pelo artigo!
Sobre as permissoes, o HD externo sempre fica como root? Reparei que ao plugar o HD o meu usuário não tinha permissões p escrever na partição... Resolvi isso alterando o grupo de root para o meu usuário. Mas o dono ficou como root mesmo.. n consegui alterá-lo...

É assim mesmo ou estou deixando passar algo?

Valeu!

Abraço

[5] Comentário enviado por bruno-debian em 26/02/2017 - 21:15h


[4] Comentário enviado por ricardoperera em 26/02/2017 - 21:06h

Olá Bruno! Parabéns pelo artigo!
Sobre as permissoes, o HD externo sempre fica como root? Reparei que ao plugar o HD o meu usuário não tinha permissões p escrever na partição... Resolvi isso alterando o grupo de root para o meu usuário. Mas o dono ficou como root mesmo.. n consegui alterá-lo...

É assim mesmo ou estou deixando passar algo?

Valeu!

Abraço


Olá ricardoperera. Acredito que é assim mesmo, no meu caso não atentei a este detalhe pois utilizo os discos para efetuar bkp, dos servidores de onde trabalho e sempre o acesso já e como root. Não precisei fazer esse tipo de alteração de já montar com alguma permissão especifica. De qualquer forma vou checar e em breve te retorno.

[6] Comentário enviado por rrodrigues345 em 26/02/2017 - 21:45h

Olá Bruno! Sim, rs! Pois é, eu me atentei as permissões pois a ideia seria sincronizar somente os arquivos do usuario via rsync... aí achei curioso o fato de ñ ter conseguido mudar o "dono".

Para o rsync, acho q n daria problemas mesmo... só na hora de copiar algum arquivo de volta, do HD para o PC, pois copiaria como root. Ms tbm, nada demais rs!

Abraço

[7] Comentário enviado por pelo em 29/04/2020 - 17:50h

Olá,
Com sua dica, implementei criptografia no backup da empresa.
Obrigado!
Sérgio Abrantes

[8] Comentário enviado por bruno-debian em 29/04/2020 - 18:06h


[7] Comentário enviado por pelo em 29/04/2020 - 17:50h

Olá,
Com sua dica, implementei criptografia no backup da empresa.
Obrigado!
Sérgio Abrantes


Que bacana cara, fico feliz em ajudar. Estou ausente da comunidade, mas pretendo voltar a fazer mais posts.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts