Observação:

Criptografe unidades usando o LUKS no Oracle Linux

Introdução

O Oracle Linux inclui criptografia de mapeador de dispositivos (dm-crypt) e o LUKS (Linux Unified Key Setup) para tratar a criptografia em dispositivos de bloco.

Neste laboratório, vamos nos concentrar nas ferramentas de front-end para criptografar um dispositivo usando o LUKS, que utiliza o módulo dm-crypt do suporte ao mapeador de dispositivos incluído no Kernel do Linux.

Objetivos

Requisitos

Um sistema com um disco disponível e uma instalação totalmente corrigida do Oracle Linux.

Configurar Ambiente do Laboratório

Observação: ao usar o ambiente de laboratório gratuito, consulte Conceitos Básicos do Oracle Linux Lab para obter conexão e outras instruções de uso.

  1. Se ainda não estiver conectado, abra um terminal e conecte-se via ssh à instância ol-node01.

    ssh oracle@<ip_address_of_instance>
    
  2. Verifique se os volumes em blocos existem.

    lsblk -f
    

    A saída do ambiente de laboratório gratuito mostra dois dispositivos de bloco: sda, que contém o SO base e sdb, que este laboratório usa. O uso da opção -f exibe o tipo de sistema de arquivos (FSTYPE) e o identificador exclusivo universalmente dos blocos (UUID).

Instalar Pacotes de Criptografia

  1. Se ainda não estiver disponível no sistema, instale a ferramenta cryptsetup.

    Verifique se cryptsetup está instalado.

    sudo dnf list --installed cryptsetup
    

    Se não estiver instalado, instale cryptsetup.

    sudo dnf -y install cryptsetup
    

    Observação: O ambiente de laboratório gratuito já tem a ferramenta cryptsetup instalada.

Criptografar o Volume com LUKS

O LUKS e o dm-crypt funcionam em dispositivos de bloco, RAID, volumes físicos do LVM e até mesmo swap. Depois de criptografados, os dados nesses dispositivos podem ser acessados no momento da inicialização ou montagem apenas com as credenciais adequadas.

O ambiente de laboratório gratuito fornece um disco /dev/sdb1 pré-particionado para esta etapa.

  1. Criptografe o disco.

    sudo cryptsetup -y -v luksFormat /dev/sdb1
    

    Digite YES para continuar e forneça a frase-senha duas vezes. A frase-senha deve conter:

    • no mínimo 8 caracteres
    • 1 dígito
    • 1 letra superior
    • 1 caractere especial
    • palavra baseada em não dicionário

    Importante: Lembre-se de que a senha digitada será usada posteriormente.

    Exemplo de Saída:

    [oracle@ol-node01 ~]$ sudo cryptsetup -y -v luksFormat /dev/sdb1
      
    WARNING!
    ========
    This will overwrite data on /dev/sdb1 irrevocably.
      
    Are you sure? (Type 'yes' in capital letters): YES
    Enter passphrase for /dev/sdb1: 
    Verify passphrase: 
    Key slot 0 created.
    Command successful.
    
  2. Abra o volume criptografado.

    Esta etapa requer um destino que possa ser nomeado como qualquer coisa. Usaremos mysecrets.

    sudo cryptsetup -v luksOpen /dev/sdb1 mysecrets
    

    Digite a mesma frase-senha criada na etapa anterior, quando solicitada.

    Exemplo de Saída:

    [oracle@ol-node01 ~]$ sudo cryptsetup -v luksOpen /dev/sdb1 mysecrets
    Enter passphrase for /dev/sdb1: 
    Key slot 0 unlocked.
    Command successful.
    
  3. Verifique os dispositivos de bloco novamente.

    lsblk -f
    

    O dispositivo /dev/sdb1 agora exibe o FSTYPE como crypto_LUKS e mostra o mapeamento do volume de dispositivos criptografados mysecrets.

Formatar o Volume Criptografado

Antes de adicionar dados ao volume criptografado, ele precisa ser formatado. É possível escolher diferentes sistemas de arquivos, como xfs, ext3, ext4 etc.

  1. Crie um sistema de arquivos.

    sudo mkfs.xfs /dev/mapper/mysecrets
    

Montar o Volume Criptografado

  1. Crie um ponto de montagem.

    sudo mkdir -p /u01/my_secret_storage
    
  2. Monte o volume.

    sudo mount -v /dev/mapper/mysecrets /u01/my_secret_storage
    

    A saída mostra uma advertência SELinux.

    Exemplo de Saída:

    [oracle@ol-node01 ~]$ sudo mount -v /dev/mapper/mysecrets /u01/my_secret_storage/
    mount: /u01/my_secret_storage does not contain SELinux labels.
           You just mounted an file system that supports labels which does not
           contain labels, onto an SELinux box. It is likely that confined
           applications will generate AVC messages and not be allowed access to
           this file system.  For more details see restorecon(8) and mount(8).
    mount: /dev/mapper/mysecrets mounted on /u01/my_secret_storage.
    

    Isso requer um novo rótulo do contexto de segurança SELinux do ponto de montagem.

    sudo restorecon -vvRF /u01/my_secret_storage
    

    Execute o comando mount novamente.

    sudo mount -v -o remount /u01/my_secret_storage
    
  3. Exiba o volume montado.

    lsblk
    

    Exemplo de Saída:

    [oracle@ol-node01 ~]$ lsblk
    NAME               MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT
    sda                  8:0    0 46.6G  0 disk  
    |-sda1               8:1    0  100M  0 part  /boot/efi
    |-sda2               8:2    0    1G  0 part  /boot
    `-sda3               8:3    0 45.5G  0 part  
      |-ocivolume-root 252:0    0 35.5G  0 lvm   /
      `-ocivolume-oled 252:1    0   10G  0 lvm   /var/oled
    sdb                  8:16   0   50G  0 disk  
    `-sdb1               8:17   0    2G  0 part  
      `-mysecrets      252:2    0    2G  0 crypt /u01/my_secret_storage
    

Exibir Detalhes do Volume LUKS

Exiba as informações de cabeçalho, segmento de dados, slots de chave e versão do LUKS.

  1. Despejar detalhes do LUKS.

    sudo cryptsetup luksDump /dev/sdb1
    

    Exemplo de Saída:

    LUKS header information
    Version:       	2
    Epoch:         	3
    Metadata area: 	16384 [bytes]
    Keyslots area: 	16744448 [bytes]
    UUID:          	4ccea398-5864-45a9-b274-173c8ebc3356
    Label:         	(no label)
    Subsystem:     	(no subsystem)
    Flags:       	(no flags)
      
    Data segments:
      0: crypt
    	offset: 16777216 [bytes]
    	length: (whole device)
    	cipher: aes-xts-plain64
    	sector: 512 [bytes]
      
    Keyslots:
      0: luks2
    	Key:        512 bits
    	Priority:   normal
    	Cipher:     aes-xts-plain64
    	Cipher key: 512 bits
    	PBKDF:      argon2i
    	Time cost:  10
    	Memory:     1048576
    	Threads:    4
    	Salt:       ee d2 c7 5b 05 43 0f 0a 12 60 da b5 87 19 4a 6f 
    	            06 57 a2 31 b1 dd bb 60 74 53 95 b2 ca 2f ad 4b 
    	AF stripes: 4000
    	AF hash:    sha256
    	Area offset:32768 [bytes]
    	Area length:258048 [bytes]
    	Digest ID:  0
    Tokens:
    Digests:
      0: pbkdf2
    	Hash:       sha256
    	Iterations: 243628
    	Salt:       89 6c 8b aa 37 af 58 e9 26 49 c5 e5 db 2d 54 ea 
    	            f8 7a c2 89 0e ab ed 48 74 a5 23 d7 b0 e6 9c 87 
    	Digest:     4a 2b 25 76 c5 85 1a 6c a9 28 0c ee d0 c7 76 eb 
    	            e1 4c ee 9c 5b 9a e2 d0 95 6e 1f 6e bb 1b 03 d1 
    

Para obter informações adicionais, consulte a página manual cryptsetup(8), a Documentação da Oracle ou as Perguntas mais Frequentes upstream.

Para Obter Mais Informações

Consulte outros recursos relacionados:

Mais Recursos de Aprendizagem

Explore outros laboratórios em docs.oracle.com/learn ou acesse mais conteúdo de aprendizado gratuito no canal YouTube do Oracle Learning. Além disso, visite education.oracle.com/learning-explorer para se tornar um Oracle Learning Explorer.

Para obter a documentação do produto, visite o Oracle Help Center.