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.