Como criptografar dispositivos de bloco usando LUKS no Linux
Às vezes, você pode querer criptografar seu disco rígido para que, quando alguém conectar seu disco rígido ao computador, seja necessário fornecer credenciais de usuário para montar a unidade. No Linux, é possível criptografar dispositivos de blocos individuais. Neste artigo, aprenderemos como criptografar dispositivos de bloco no Linux usando LUKS. LUKS é a camada de criptografia do Linux que pode ser usada para criptografar toda a partição raiz, um volume lógico ou uma partição específica.
Este tutorial cobre as seguintes distribuições Linux
- Debian
- Ubuntu
- RHEL
- CentOS
- Linux rochoso
- Almalinux
Instale o pacote cryptsetup-luks
A ferramenta utilitária Cryptsetup vem com o pacote cryptsetup-luks que é usado para configurar a criptografia de dispositivos de bloco em sistemas Linux. A instalação pode ser feita usando o seguinte comando.
Ubuntu/Debian
apt-get install cryptsetup
RHEL/CentOS/Rocky Linux/Almalinux
dnf install cryptsetup-luks
Prepare uma partição LUKS
Depois que a ferramenta utilitária estiver instalada, prepare uma partição para criptografia. Para listar todas as partições e dispositivos de bloco disponíveis, execute o seguinte comando.
fdisk -l
blkid
Agora use o comando cryptsetup luksFormat para configurar a criptografia na partição. Neste exemplo, a partição sdb é usada para criptografia. Você pode fazer sua própria suposição com base no seu ambiente.
cryptsetup -y -v luksFormat /dev/sdb
O comando executado acima removerá todos os dados da partição
Agora precisamos criar um dispositivo mapeador de dispositivo lógico montado na partição criptografada por LUKS na etapa acima. Neste exemplo, criptografado é o nome fornecido para o nome do mapeamento da partição LUKS aberta.
O comando a seguir criará um volume e definirá a senha ou as chaves iniciais. Lembre-se de que a senha não pode ser recuperada.
cryptsetup luksOpen /dev/sdb encrypted
Os detalhes de mapeamento da partição podem ser encontrados usando o seguinte comando.
ls -l /dev/mapper/encrypted
Use o comando a seguir para visualizar o status do mapeamento. Substitua o nome do seu mapeamento por criptografado.
cryptsetup -v status encrypted
cryptsetup junto com o comando luksDump podem ser usados para verificar se o dispositivo foi formatado com sucesso para criptografia. Neste exemplo, a partição sdb está sendo usada para confirmação.
cryptsetup luksDump /dev/sdb
Formatar partição LUKS
Escrever zeros na partição criptografada por LUKS alocará o tamanho do bloco com zeros. Use o seguinte comando para definir zeros no dispositivo de bloco criptografado.
dd if=/dev/zero of=/dev/mapper/encrypted
O comando dd pode levar algum tempo para ser executado. Use o comando pv para verificar o progresso.
pv -tpreb /dev/zero | dd of=/dev/mapper/encrypted bs=128M
Observação: substitua criptografado pelo nome de mapeamento do seu dispositivo.
Agora formate a nova partição com o sistema de arquivos desejado. Neste exemplo, o sistema de arquivos ext4 é usado.
mkfs.ext4 /dev/mapper/encrypted
Substitua criptografado pelo nome do mapeador de dispositivo.
Monte o novo sistema de arquivos. Neste exemplo, o novo sistema de arquivos é montado em /encrypted
mkdir /encrypted
mount /dev/mapper/encrypted /encrypted
Substitua o nome do mapeador de dispositivos criptografado pelo seu próprio nome de mapeador.
df -h
cd /encrypted
ls -l
Então criamos com sucesso uma partição criptografada no Linux usando LUKS.