LUKS: Criptografia de Dados do Disco Rígido Linux com Suporte NTFS no Linux

A sigla LUKS significa Linux Unified Key Setup, que é um método amplamente utilizado de criptografia de disco pelo Kernel do Linux e é implementado com o pacote cryptsetup.

O comando cryptsetup linha de comando criptografa um disco de volume na mosca usando uma chave de criptografia simétrica derivada da frase de acesso fornecida toda vez que um disco de volume, uma partição e até mesmo um disco completo (até mesmo um pendrive) é montado na hierarquia do sistema de arquivos e usa o cifrado aes-cbc-essiv:sha256.

Linux Hard Disk Encryption Using LUKS

Porque LUKS pode criptografar dispositivos de bloco inteiros (discos rígidos, pendrives, discos flash, partições, grupos de volume etc) em sistemas Linux, é amplamente recomendado para proteger mídias de armazenamento removíveis, discos rígidos de laptops ou arquivos de troca do Linux e não é recomendado para criptografia em nível de arquivo.

NTFS (Sistema de Arquivos de Novas Tecnologias) é um sistema de arquivos proprietário desenvolvido pela Microsoft.

O Ubuntu 14.04 fornece suporte total para criptografia LUKS e também suporte nativo NTFS para o Windows com a ajuda do pacote ntfs-3g.

Para provar meu ponto neste tutorial, adicionei um novo disco rígido (4º) na máquina Ubuntu 14.04 (a referência do sistema para o novo HDD é /dev/sdd) que será dividido em duas partições.

  1. Uma partição (/dev/sdd1 – primária) usada para criptografia LUKS.
  2. A segunda partição (/dev/sdd5 – estendida) formatada NTFS para acessar dados em sistemas Linux e Windows.

Também as partições serão montadas automaticamente no Ubuntu 14.04 após a reinicialização.

Passo 1: Criar Partições de Disco

1. Após adicionar fisicamente seu disco rígido à sua máquina, use o comando ls para listar todos os /dev/dispositivos (o quarto disco é /dev/sdd</diy5).

# ls /dev/sd*
List Partitions in Linux

2. Em seguida, verifique seu novo HDD com o comando fdisk.

$ sudo fdisk –l /dev/sdd
Check Linux Hard Disk

Como nenhum sistema de arquivos foi escrito, o disco ainda não contém uma tabela de partição válida.

3. Os próximos passos fatiam o disco rígido para resultar em duas partições usando a utilidade de disco cfdisk.

$ sudo cfdisk /dev/sdd

4. A próxima tela abre o modo interativo do cfdisk. Selecione o Espaço livre do disco rígido e navegue até a opção Novo usando as setas para a esquerda/direita.

cfdisk Interactive Mode

5. Escolha o tipo de partição como Primária e pressione Enter.

Select Your Partition Type

6. Anote o tamanho desejado da partição em MB.

Write Down Partition Size

7. Crie esta partição no Início do espaço livre do disco rígido.

Create a Partition

8. Em seguida, navegue até a opção de Tipo de partição e pressione Enter.

Partition Type

9. O próximo prompt apresenta uma lista de todos os tipos de sistemas de arquivos e seus códigos numéricos (número hexadecimal). Esta partição será criptografada com o Linux LUKS, então escolha o código 83 e pressione Enter novamente para criar a partição.

Enter File System Type

10. A primeira partição foi criada e o prompt da utilidade cfdisk retorna ao início. Para criar a segunda partição usada como NTFS, selecione o Espaço livre restante, navegue até a opção Novo e pressione a tecla Enter.

Create New Partition

11. Desta vez, a partição será uma Lógica Estendida. Portanto, vá até a opção Lógica e pressione novamente Enter.

Select Logical Partition Type

12. Insira o tamanho da sua partição novamente. Para usar o espaço livre restante como a nova partição, deixe o valor padrão no tamanho e apenas pressione Enter.

Enter Size of Partition

13. Escolha novamente o código do tipo de partição. Para o sistema de arquivos NTFS, escolha o código de volume 86.

Select Partition Type

14. Após revisar e verificar as partições, selecione Gravar, responda sim na próxima pergunta interativa do prompt e depois Sair para sair da utilidade cfdisk.

Write Partition Table to Disk
Confirm Changes
Quit to leave cfdisk utility

Parabéns! Suas partições foram criadas com sucesso e agora estão prontas para serem formatadas e usadas.

15. Para verificar novamente a Tabela de Partição do disco, emita o comando fdisk novamente, que mostrará informações detalhadas da tabela de partição.

$ sudo fdisk –l /dev/sdd
Confirm Parition Table

Passo 2: Criar Sistema de Arquivos de Partição

Sistema de Arquivos NTFS

16. Para criar o sistema de arquivos NTFS na segunda partição, execute o comando mkfs.

$ sudo mkfs.ntfs /dev/sdd5
Create NTFS Filesystem

17. Para tornar a partição disponível, ela deve ser montada no sistema de arquivos em um ponto de montagem. Monte a segunda partição no quarto disco rígido no ponto de montagem /opt usando o comando mount.

$ sudo mount /dev/sdd5 /opt

18. Em seguida, verifique se a partição está disponível e listada no arquivo /etc/mtab usando o comando cat.

$ cat /etc/mtab
Check Partition Availability

19. Para desmontar a partição, use o seguinte comando.

$ sudo umount /opt
EXT4 LUKS

20. Certifique-se de que o pacote cryptsetup esteja instalado no seu sistema.

$ sudo apt-get install cryptsetup		[On Debian Based Systems]

# yum install cryptsetup				[On RedHat Based Systems]

21. Agora é a hora de formatar a primeira partição no quarto disco rígido com o sistema de arquivos ext4 emitindo o seguinte comando.

$ sudo luksformat  -t ext4  /dev/sdd1

Responda em maiúsculas SIM à pergunta “Você tem certeza?” e insira três vezes a sua senha desejada.

Format Partition

Observação: Dependendo do tamanho da sua partição e da velocidade do HDD, a criação do sistema de arquivos pode levar um tempo.

22. Você também pode verificar o status do dispositivo da partição.

$ sudo cryptsetup luksDump  /dev/sdd1
Verify Partition Status

23. O LUKS suporta um máximo de 8 senhas adicionadas. Para adicionar uma senha, use o seguinte comando.

$ sudo cryptsetup luksAddKey /dev/sdd1
Add a Password

Para remover uma senha, use.

$ sudo cryptsetup luksRemoveKey /dev/sdd1
Remove a Password

24. Para que esta partição criptografada seja ativa, ela deve ter uma entrada de nome (ser inicializada) no diretório /dev/mapper com a ajuda do pacote cryptsetup.

Esta configuração requer a seguinte sintaxe de linha de comando:

$ sudo cryptsetup luksOpen  /dev/LUKS_partiton  device_name

Onde “nome_do_dispositivo” pode ser qualquer nome descritivo que você preferir! (Eu o nomeei de volume_criptografado). O comando real ficará assim como mostrado abaixo.

$ sudo cryptsetup luksOpen  /dev/sdd1 crypted_volume
Active Encrypted Partition

25. Em seguida, verifique se seu dispositivo está listado em /dev/mapper, diretório, link simbólico e status do dispositivo.

$ ls /dev/mapper
$ ls –all /dev/mapper/encrypt_volume
Verify Encrypted Partition
$ sudo cryptsetup –v status encrypt_volume
Encrypted Partition Status

26. Agora, para tornar o dispositivo de partição amplamente disponível, monte-o em seu sistema em um ponto de montagem usando o comando mount.

$ sudo mount  /dev/mapper/crypted_volume  /mnt
Mount Encrypted Partition

Como pode ser visto, a partição está montada e acessível para escrever dados.

27. Para torná-la indisponível, basta desmontá-la do seu sistema e fechar o dispositivo.

$ sudo umount  /mnt
$ sudo cryptsetup luksClose crypted_volume
Umount Encrypted Partition

Passo 3: Montar a Partição Automaticamente

Se você usar um disco rígido fixo e precisar que ambas as partições sejam montadas automaticamente pelo sistema após reiniciar, você deve seguir estas duas etapas.

28. Primeiro, edite o arquivo /etc/crypttab e adicione os seguintes dados.

$ sudo nano /etc/crypttab
  1. Nome do alvo: Um nome descritivo para o seu dispositivo (veja o ponto acima 22 em EXT4 LUKS).
  2. Drive de origem: A partição do disco rígido formatado para LUKS (veja o ponto acima 21 em EXT4 LUKS).
  3. Arquivo de chave: Escolha nenhum
  4. Opções: Especifique luks

A linha final ficará assim como mostrado abaixo.

encrypt_volume               /dev/sdd1          none       luks
Mount Partition Automatically

29. Em seguida, edite /etc/fstab e especifique o nome do seu dispositivo, ponto de montagem, tipo de sistema de arquivos e outras opções.

$ sudo nano /etc/fstab

Na última linha, use a seguinte sintaxe.

/dev/mapper/device_name (or UUID)	/mount_point     filesystem_type     options    dump   pass

E adicione seu conteúdo específico.

/dev/mapper/encrypt_volume      /mnt    ext4    defaults,errors=remount-ro     0     0
Add Partition Entry in Fstab

30. Para obter o UUID do dispositivo, use o seguinte comando.

$ sudo blkid
Get Device UUID

31. Para também adicionar o tipo de partição NTFS criado anteriormente, use a mesma sintaxe acima em uma nova linha no arquivo fstab ( aqui é utilizado redirecionamento de anexo de arquivo Linux ).

$ sudo su -
# echo "/dev/sdd5	/opt	ntfs		defaults		0              0"  >> /etc/fstab
Add NTFS Partition in fstab

32. Para verificar as alterações, reinicie sua máquina, pressione Enter após a mensagem de inicialização “Inicializando dispositivo de rede” e digite a sua senha do dispositivo.

Reboot Machine
Verify Partition is Mounted Automatically

Como mostrado, ambas as partições de disco foram automaticamente montadas na hierarquia do sistema de arquivos do Ubuntu. Como conselho, não use volumes automaticamente criptografados do arquivo fstab em servidores fisicamente remotos se você não puder reiniciar para fornecer a senha do seu volume criptografado.

As mesmas configurações podem ser aplicadas em todos os tipos de mídia removível, como pen drive, memória flash, disco rígido externo, etc., para proteger dados importantes, secretos ou sensíveis contra espionagem ou roubo.

Source:
https://www.tecmint.com/linux-hard-disk-encryption-using-luks/