Cifragem de Partições e Discos com LUKS em Linux

Bem-vindo ao fascinante mundo da cifragem de partições e discos em Linux usando LUKS (Linux Unified Key Setup). Neste capítulo, vamos explorar em detalhe como utilizar o LUKS para proteger os teus dados sensíveis através da cifragem dos teus discos e partições. Desde a instalação das ferramentas necessárias até ao manuseio de comandos especializados, vou guiar-te passo a passo por este processo crucial para a segurança dos teus dados.

Instalação de Ferramentas Necessárias

Antes de mergulharmos no mundo da cifragem com LUKS, é essencial garantir que tens as ferramentas adequadas instaladas no teu sistema. Geralmente, a maioria das distribuições de Linux inclui estas ferramentas de cifragem por padrão, mas é sempre bom verificar.

Podes instalar as ferramentas necessárias utilizando o gestor de pacotes da tua distribuição. Em distribuições baseadas em Debian, como Ubuntu, podes executar o seguinte comando no terminal:

sudo apt install cryptsetup

Se estás a utilizar uma distribuição baseada em Red Hat, como Fedora ou CentOS, podes instalar as ferramentas de cifragem com o seguinte comando:

sudo dnf install cryptsetup

Uma vez que tenhas instalado o cryptsetup, estarás pronto para começar a trabalhar com LUKS.

Criação de um Volume LUKS

O primeiro passo para cifrar uma partição ou disco em Linux é criar um volume LUKS. Este volume atuará como uma camada de cifragem que protegerá os dados armazenados na partição ou disco.

Para criar um volume LUKS, precisarás especificar a partição ou disco que desejas cifrar. Certifica-te de que a partição está desmontada antes de prosseguir. Suponhamos que queremos cifrar a partição /dev/sdb1. O seguinte comando criará um volume LUKS nesta partição:

sudo cryptsetup luksFormat /dev/sdb1

Este comando iniciará o processo de criação do volume LUKS na partição especificada. Serás solicitado a confirmar esta ação, pois o processo apagará todos os dados existentes na partição. Após confirmar, serás solicitado a introduzir uma senha para desbloquear o volume LUKS no futuro. Certifica-te de escolher uma senha segura e recorda-a bem, pois precisarás dela sempre que quiseres aceder aos dados cifrados.

Uma vez concluído o processo, terás um volume LUKS criado na partição especificada, pronto para ser utilizado.

Abertura e Fecho do Volume LUKS

Depois de criar um volume LUKS, o próximo passo é abri-lo para poder aceder aos dados armazenados nele. Para abrir um volume LUKS, precisarás especificar a partição que contém o volume e atribuir-lhe um nome.

sudo cryptsetup luksOpen /dev/sdb1 minha_particao_cifrada

Neste comando, /dev/sdb1 é a partição que contém o volume LUKS, e minha_particao_cifrada é o nome que estamos a atribuir ao volume aberto. Uma vez que executes este comando, serás solicitado a introduzir a senha que especificaste durante a criação do volume LUKS. Após introduzir a senha correta, o volume será aberto e estará pronto para ser utilizado.

Para fechar o volume LUKS e bloquear o acesso aos dados cifrados, podes utilizar o seguinte comando:

sudo cryptsetup luksClose minha_particao_cifrada

Este comando fechará o volume LUKS com o nome especificado (minha_particao_cifrada neste caso), o que impedirá o acesso aos dados armazenados nele até que seja aberto novamente.

Criação de um Sistema de Ficheiros num Volume LUKS

Uma vez que tenhas aberto um volume LUKS, podes criar um sistema de ficheiros nele para começar a armazenar dados de forma segura. Podes utilizar qualquer sistema de ficheiros compatível com Linux, como xfs ou btrfs.

Suponhamos que queremos criar um sistema de ficheiros xfs no volume LUKS aberto (minha_particao_cifrada). O seguinte comando criará um sistema de ficheiros xfs no volume:

sudo mkfs.xfs /dev/mapper/minha_particao_cifrada

Este comando formatará o volume LUKS aberto com um sistema de ficheiros xfs, o que te permitirá começar a armazenar dados nele de forma segura.

Montagem e Desmontagem de um Volume LUKS

Uma vez que tenhas criado um sistema de ficheiros num volume LUKS, podes montá-lo no sistema de ficheiros para aceder aos dados armazenados nele. Para montar um volume LUKS, podes utilizar o seguinte comando:

sudo mount /dev/mapper/minha_particao_cifrada /mnt

Neste comando, /dev/mapper/minha_particao_cifrada é o caminho para o dispositivo de bloco que representa o volume LUKS aberto, e /mnt é o ponto de montagem onde o sistema de ficheiros será montado.

Depois de montar o volume LUKS, podes aceder aos dados armazenados nele como farias com qualquer outro sistema de ficheiros montado em Linux. Quando terminares de trabalhar com os dados, podes desmontar o volume LUKS utilizando o seguinte comando:

sudo umount /mnt

Este comando desmontará o sistema de ficheiros do volume LUKS, o que evitará que acedas aos dados armazenados nele até que seja montado novamente.

Gestão de Volumes LUKS

O LUKS fornece várias ferramentas para gerir volumes, incluindo a capacidade de mudar a senha, adicionar chaves adicionais e fazer backups dos cabeçalhos dos volumes.

Para mudar a senha de um volume LUKS, podes utilizar o seguinte comando:

sudo cryptsetup luksChangeKey /dev/sdb1

Este comando pedirá a senha atual do volume LUKS e depois permitirá introduzir uma nova senha.

Se desejas adicionar uma chave adicional ao volume LUKS, podes utilizar o seguinte comando:

sudo cryptsetup luksAddKey /dev/sdb1

Este comando pedirá a senha atual do volume LUKS e depois permitirá introduzir uma nova chave adicional.

Para fazer um backup do cabeçalho de um volume LUKS, podes utilizar o seguinte comando:

sudo cryptsetup luksHeaderBackup /dev/sdb1 --header-backup-file backup_file

Este comando fará um backup do cabeçalho do volume LUKS para o ficheiro especificado, permitindo restaurá-lo caso o cabeçalho do volume se danifique.

Resumo de Comandos para Criar Volume Cifrado com LUKS

sudo cryptsetup luksFormat /dev/DISCO
sudo cryptsetup luksOpen /dev/DISCO DISCO_DESCIFRADO
sudo mkfs.xfs /dev/mapper/DISCO_DESCIFRADO
sudo mount /dev/mapper/DISCO_DESCIFRADO /caminho_de_montagem

Integração com crypttab e fstab

Uma vez que tenhas cifrado uma partição ou disco utilizando LUKS em Linux, podes querer configurar a abertura automática do contêiner LUKS durante o arranque do sistema e montá-lo num ponto específico do sistema de ficheiros. Isto pode ser conseguido utilizando os ficheiros de configuração crypttab e fstab.

Configuração de crypttab

O ficheiro crypttab é utilizado para configurar o mapeamento automático de dispositivos cifrados durante o processo de arranque do sistema. Podes especificar os dispositivos cifrados e as suas correspondentes chaves de cifragem neste ficheiro.

Para configurar um dispositivo cifrado no crypttab, primeiro precisas conhecer o UUID (Identificador Único Universal) do contêiner LUKS. Podes encontrar o UUID executando o seguinte comando:

sudo cryptsetup luksUUID /dev/sdb1

Uma vez que tenhas o UUID do contêiner LUKS, podes adicionar uma entrada no ficheiro crypttab para configurar o mapeamento automático. Por exemplo, suponhamos que o UUID do contêiner LUKS é 12345678-1234-1234-1234-123456789abc. Podes adicionar a seguinte entrada no ficheiro crypttab:

minha_particao_cifrada UUID=12345678-1234-1234-1234-123456789abc none luks

Também pode ser feito desta forma sem usar o UUID:

minha_particao_cifrada /dev/sdb1 none luks

Nesta entrada, minha_particao_cifrada é o nome que demos ao contêiner LUKS, e UUID=12345678-1234-1234-1234-123456789abc é o UUID do contêiner. A palavra none indica que não é utilizada uma chave pré-compartilhada, e luks especifica que o dispositivo está cifrado com LUKS.

Configuração de fstab

Uma vez que tenhas configurado o mapeamento automático do dispositivo cifrado no crypttab, podes configurar a montagem automática do sistema de ficheiros no fstab. O ficheiro fstab é utilizado para configurar a montagem automática de sistemas de ficheiros durante o arranque do sistema.

Para configurar a montagem automática de um sistema de ficheiros no fstab, primeiro precisas conhecer o ponto de montagem e o tipo de sistema de ficheiros do contêiner LUKS. Suponhamos que o ponto de montagem é /mnt/minha_particao e o sistema de ficheiros é xfs. Podes adicionar uma entrada no ficheiro fstab da seguinte maneira:

/dev/mapper/minha_particao_cifrada /mnt/minha_particao xfs defaults 0 2

Nesta entrada, /dev/mapper/minha_particao_cifrada é o caminho para o dispositivo de bloco que representa o contêiner LUKS aberto, /mnt/minha_particao é o ponto de montagem onde o sistema de ficheiros será montado, xfs é o tipo de sistema de ficheiros, defaults especifica as opções de montagem por defeito, e 0 2 especifica as opções de verificação do sistema de ficheiros.

Recomendações com crypttab

No caso de um servidor, eu não teria o crypttab ativo, ou seja, deixaria a configuração posta mas comentada, tal como com o fstab. Faria as montagens de forma manual após um reinício. Assim evitamos ter de usar ficheiros de chave e prevenir alguns problemas derivados.

Deixe um comentário