Como configurar uma partição SWAP criptografada em uma instalação existente do Debian 12.

Criptografar a partição de swap em um sistema Debian 12 existente é útil quando você deseja impedir que páginas de memória, senhas, fragmentos de documentos e outros dados transitórios sejam gravados em disco como texto simples. Para uma máquina que não precisa de hibernação, o Debian documenta um projeto simples: coloque a partição de swap atrás de um dm-crypt simples e gere uma nova chave de criptografia aleatória a cada inicialização.

Este guia utiliza esse design. Ele pressupõe o Debian 12 "bookworm", uma partição de swap dedicada e o systemd como sistema init. Os comandos são deliberadamente conservadores, pois um erro no caminho de um dispositivo de bloco pode sobrescrever a partição errada. Leia os pontos de decisão primeiro e, em seguida, substitua os identificadores de dispositivo pelos seus próprios, em vez de copiar os valores de exemplo cegamente.

A documentação do cryptsetup do Debian descreve especificamente a troca criptografada e recomenda desativar a troca, adicionar a partição /etc/crypttabcom /dev/urandom, mudar /etc/fstabpara o dispositivo mapeado e, em seguida, reativar a troca. Consulte o README do cryptsetup do Debian . O manual do crypttab(5) do Debian 12 também documenta os campos do crypttab e as opções do dm-crypt.

Você deve usar uma chave aleatória criptografada para troca de dados?

Use-o quando desejar uma partição de swap criptografada e não precisar de hibernação. A chave é regenerada a cada inicialização, portanto, o conteúdo antigo da partição de swap torna-se ilegível após o desligamento. Essa é exatamente a característica de segurança que a maioria das instalações de desktop e servidor deseja.

Não utilize esta configuração exata se você depende de hibernação, suspensão para disco, modo híbrido de suspensão ou suspensão seguida de hibernação. A retomada exige que a próxima inicialização descriptografe a mesma imagem de hibernação. Uma nova chave aleatória torna isso impossível. O Debian observa explicitamente que a troca de chave aleatória não pode ser usada como um dispositivo de retomada. A documentação do systemd hibernate-resume do Debian 12 também mostra que a retomada depende de um dispositivo de retomada persistente.

Se a hibernação for um requisito, use um design de criptografia persistente, como um dispositivo de troca com suporte a LUKS e uma configuração adequada de desbloqueio e retomada. Essa é uma configuração diferente e está intencionalmente fora do escopo deste guia.

Seu swap já está protegido por criptografia de disco?

Verifique antes de alterar qualquer coisa. Se o seu volume lógico de swap já estiver dentro de um contêiner criptografado com LUKS, adicionar outra camada dm-crypt pode oferecer pouco benefício prático, além de aumentar a complexidade.

swapon --show
lsblk -o NAME,PATH,TYPE,FSTYPE,SIZE,MOUNTPOINTS,PARTUUID

Observe o dispositivo exibido swapon --showe rastreie seus pais em lsblk. Um layout comum não criptografado pode ser exibido /dev/sda3diretamente como tipo swap. Uma instalação LVM criptografada pode, em vez disso, mostrar a partição de swap abaixo de um crypto_LUKSpai.

Ilustração do terminal Debian 12 mostrando a saída dos comandos swapon, lsblk e blkid para uma partição de swap existente e seu PARTUUID.
Identifique a partição de swap ativa e um identificador de partição estável antes de fazer qualquer alteração. Os nomes e identificadores de dispositivos mostrados aqui são apenas exemplos.

Essa distinção é importante porque este artigo trata da conversão de uma partição de swap dedicada não criptografada . Se swapon --showo sistema reportar um arquivo de swap, use um procedimento específico para arquivos de swap. Se a partição de swap já estiver em um armazenamento criptografado, primeiro decida se uma segunda camada de segurança é realmente necessária.

O que você deve gravar antes de desligar o switch?

Registre o caminho exato da partição, seu tamanho e seu PARTUUID . Um PARTUUID identifica a entrada da tabela de partições e permanece útil mesmo depois que a assinatura de troca dentro da partição for substituída por dados criptografados.

Por exemplo:

sudo blkid /dev/sda3
ls -l /dev/disk/by-partuuid/

Você poderá ver uma saída contendo um valor como:

PARTUUID="11111111-2222-3333-4444-555555555555"

Nos exemplos abaixo, o caminho estável correspondente é:

/dev/disk/by-partuuid/11111111-2222-3333-4444-555555555555

Evite depender da /dev/sda3possibilidade de alteração da enumeração de discos. Evite também usar o UUID antigo do sistema de arquivos de swap como identificador de origem a longo prazo: a configuração de swap criptografado recria a assinatura de swap no dispositivo criptografado mapeado, portanto, o UUID antigo do swap bruto não é a identidade persistente correta para a partição subjacente.

1. Como preparar o sistema com segurança?

Instale o cryptsetup caso ainda não esteja presente e, em seguida, faça backup dos dois arquivos de configuração que você irá editar.

sudo apt update
sudo apt install cryptsetup
sudo cp -a /etc/crypttab /etc/crypttab.before-encrypted-swap 2>/dev/null || true
sudo cp -a /etc/fstab /etc/fstab.before-encrypted-swap

Se /etc/crypttabainda não existir, não tem problema; crie-o ao editar a configuração.

Em seguida, certifique-se de que o sistema tenha memória disponível suficiente durante o curto período em que a área de swap estiver desativada. Depois, desative apenas a partição de swap que você está convertendo. Usar o mesmo dispositivo é mais seguro do que swapoff -aem uma máquina com várias áreas de swap.

sudo swapoff /dev/sda3
swapon --show
Ilustração do terminal Debian 12 mostrando a desativação da partição swap e a instalação do pacote cryptsetup.
Desative a partição de swap de destino antes de aplicar a criptografia. Em sistemas com múltiplas partições de swap, opere na partição desejada em vez de desativar todas desnecessariamente.

Não execute mais nada mkswapna partição bruta a partir deste ponto. A assinatura de swap deve ser criada no dispositivo mapeador criptografado, e não na partição de suporte não criptografada.

2. O que deve ser incluído em /etc/crypttab?

Crie, edite /etc/crypttabe adicione uma entrada para o mapeamento de swap criptografado. O procedimento a seguir está de acordo com a documentação do cryptsetup do Debian:

cswap /dev/disk/by-partuuid/11111111-2222-3333-4444-555555555555 /dev/urandom plain,cipher=aes-xts-plain64,size=256,swap

Substitua o PARTUUID de exemplo pelo PARTUUID do seu sistema.

Os campos significam:

  • cswapé o nome do mapeador, criando /dev/mapper/cswap.
  • O segundo campo é a partição de swap subjacente propriamente dita.
  • /dev/urandomFornece uma nova chave aleatória sempre que o mapeamento é criado.
  • plainSeleciona o dm-crypt simples em vez de um cabeçalho LUKS persistente.
  • cipher=aes-xts-plain64,size=256Torna os parâmetros plain-dm-crypt explícitos em vez de depender de valores padrão que podem mudar.
  • swapInforma à integração cryptsetup que este dispositivo mapeado é de swap e deve ser inicializado adequadamente.
Ilustração do GNU nano no Debian 12 editando /etc/crypttab com um mapeamento cswap que usa um caminho PARTUUID estável e /dev/urandom.
A entrada no crypttab cria um mapeamento criptografado temporário chamado cswap com uma nova chave de /dev/urandom a cada ativação.

O manual do crypttab do Debian alerta que o dm-crypt puro não armazena metadados de cifra, hash ou tamanho da chave em um cabeçalho, ao contrário do LUKS. É por isso que registrar explicitamente a cifra e o tamanho da chave é útil. O manual também documenta, discardmas ressalta, as implicações de segurança; não adicione essa informação simplesmente porque o dispositivo de armazenamento é um SSD, a menos que você tenha avaliado essa relação custo-benefício.

3. Quais são as alterações em /etc/fstab?

Encontre a linha de swap antiga e não criptografada em /etc/fstab. Ela pode usar um UUID, um caminho de dispositivo ou outro identificador persistente. Por exemplo:

UUID=OLD-SWAP-UUID none swap sw 0 0

Substitua-o pelo dispositivo criptografado mapeado:

/dev/mapper/cswap none swap sw 0 0

Não deixe ambas as entradas ativas. Se tanto a partição bruta quanto a /dev/mapper/cswappartição de swap estiverem habilitadas, você anula o propósito de criptografar a partição e corre o risco de confundir a ativação durante a inicialização.

Ilustração do GNU nano no Debian 12 mostrando o arquivo /etc/fstab com a antiga entrada de swap raw desativada e /dev/mapper/cswap configurado como swap.
O arquivo fstab deve apontar para o dispositivo mapeador criptografado, e não para a partição de swap original.

O manual fstab(5) do Debian define o formato de entrada de swap, enquanto swapon(8) explica como as entradas marcadas como swap são ativadas.

4. Como faço para ativar e verificar antes de reiniciar?

Após salvar ambos os arquivos, inicie o mapeamento criptografado e, em seguida, habilite a entrada de swap. A documentação do cryptsetup do Debian utiliza:

sudo cryptdisks_start cswap
sudo swapon -a

Agora verifique todas as três camadas:

swapon --show
sudo cryptsetup status cswap
lsblk -o NAME,TYPE,FSTYPE,SIZE,MOUNTPOINTS

Um resultado positivo deve mostrar a área de swap em /dev/mapper/cswap, e não diretamente na partição original. cryptsetup status cswapO relatório deve indicar que o mapeamento está ativo.

Se cryptdisks_starto pacote não estiver disponível na sua instalação, não improvise comandos destrutivos. Verifique novamente se o cryptsetuppacote está instalado e se a sintaxe do crypttab é válida. Você também pode deixar que o processo de inicialização normal do Debian crie o mapeamento após concluir a configuração de retomada abaixo. O Debian 12 usa geradores do systemd para traduzir a configuração do crypttab e do fstab em unidades de inicialização.

5. Você precisa desativar a retomada da hibernação?

Sim, se esta partição foi configurada como o dispositivo de retomada do sistema. Uma chave aleatória não pode descriptografar uma imagem de hibernação gravada com a chave anterior. As instruções do Debian para swap criptografado orientam explicitamente os administradores a desativar a retomada ao converter a antiga partição de swap de retomada para swap criptografado com chave aleatória.

Verifique a configuração atual:

grep -R "^[[:space:]]*RESUME=" /etc/initramfs-tools/conf.d/ 2>/dev/null

Se estiver se referindo à partição de swap que você acabou de converter, defina "resume" como "none":

echo "RESUME=none" | sudo tee /etc/initramfs-tools/conf.d/resume
sudo update-initramfs -u

É aqui que a questão update-initramfs -use torna relevante. Você não precisa reconstruir o initramfs simplesmente porque uma entrada de swap pós-inicialização normal foi alterada; você precisa atualizá-lo ao remover um destino antigo de retomada da hibernação que o initramfs possa tentar usar.

Teste de reinicialização: o que comprova que a configuração funciona?

Reinicie somente após a ativação em tempo real funcionar e os arquivos de configuração estarem corretos:

sudo reboot

Após o sistema retornar, execute:

swapon --show
sudo cryptsetup status cswap
lsblk -o NAME,TYPE,FSTYPE,SIZE,MOUNTPOINTS
cat /proc/swaps

Os principais critérios de sucesso são simples:

  • /dev/mapper/cswapestá ativo como swap.
  • A partição de suporte bruta não está listada diretamente como swap ativo.
  • cryptsetup status cswapRelata um mapeamento dm-crypt simples ativo.
  • A máquina inicializa sem solicitar uma senha de troca; a chave aleatória é gerada automaticamente.

Você também pode reiniciar duas vezes e comparar o comportamento do mapeamento. O objetivo do projeto é que a chave de criptografia seja efêmera; o conteúdo da partição de swap da inicialização anterior não pode ser recuperado após a recriação do mapeamento.

E se a máquina entrar em modo de emergência?

As causas mais comuns são um caminho incorreto para o dispositivo de backup, um erro de digitação em `/ etc/fstab` /etc/crypttabou uma /etc/fstablinha que ainda aponta para a antiga partição de swap bruta. Inicialize o sistema no modo de recuperação ou use um ambiente de resgate, monte o sistema de arquivos raiz em modo de leitura e gravação e restaure os backups, se necessário.

Algumas verificações úteis incluem:

sudo cryptsetup status cswap
systemctl status systemd-cryptsetup@cswap.service
systemctl status dev-mapper-cswap.swap
journalctl -b -u systemd-cryptsetup@cswap.service

Os nomes das unidades podem ser codificados de forma diferente para nomes de mapeadores incomuns, portanto, use-os systemctl list-units '*cryptsetup*'se o nome exato do serviço não for óbvio.

E quanto ao descarte de SSD?

Não habilite o descarte por padrão apenas para buscar um desempenho teórico do SSD. A documentação do crypttab do Debian afirma que encaminhar solicitações de descarte por meio de um dispositivo criptografado tem implicações de segurança. O manual do swapon do Debian observa de forma semelhante que o descarte pode melhorar o desempenho em alguns SSDs, mas geralmente não o faz. Se você precisar dele, avalie primeiro seu modelo de armazenamento e seu modelo de ameaças e, em seguida, adicione-o deliberadamente.

A troca criptografada ainda é útil se o sistema de arquivos raiz não estiver criptografado?

Sim, mas entenda os limites. A troca criptografada protege as páginas de memória gravadas na partição de troca. Ela não criptografa arquivos salvos em um sistema de arquivos raiz ou home não criptografado, histórico do shell, caches de aplicativos, despejos de memória, arquivos temporários ou logs. Se o objetivo é uma proteção ampla contra a exposição de dados em caso de roubo do disco, a criptografia completa do disco ou do sistema de arquivos é a forma mais completa de controle.

Lista de verificação final

  • Confirme se o destino é uma partição de swap dedicada e não criptografada, não um arquivo de swap e que não esteja já protegida por um dispositivo pai criptografado.
  • Registre um caminho de partição estável, como por exemplo /dev/disk/by-partuuid/......
  • Desative a troca bruta antes de configurar o dm-crypt.
  • Adicione uma entrada random-key plain-dm-crypt ao /etc/crypttab.
  • Aponte /etc/fstabapenas para /dev/mapper/cswap.
  • Ative o mapeamento e verifique-o antes de reiniciar.
  • Se a troca antiga era um dispositivo de retomada, configure RESUME=nonee execute update-initramfs -u.
  • Após a reinicialização, verifique se apenas o mapeador criptografado está ativo como swap.

Para sistemas Debian 12 que não hibernam, essa abordagem mantém a configuração pequena e evita o armazenamento de uma chave de swap persistente. A decisão principal não é "qual comando de criptografia devo executar?", mas sim se a troca com chave aleatória atende aos seus requisitos de gerenciamento de energia. Uma vez definido isso, o restante consiste em uma migração controlada da partição de swap bruta para um mapeamento dm-crypt que é recriado com segurança a cada inicialização.

Deixar um comentário

Baixe o FlightGear gratuitamente: Guia de Instalação Oficial

Baixe o FlightGear gratuitamente: Guia de Instalação Oficial

Baixe o FlightGear gratuitamente no site oficial. Compare os pacotes para Windows, macOS e Linux, instale os arquivos de dados e inicie seu primeiro voo.

Aplicativo Google Tasks para desktop: como usá-lo no computador

Aplicativo Google Tasks para desktop: como usá-lo no computador

Abra o Google Tasks em um navegador, adicione um atalho do Chrome ou inicie o aplicativo automaticamente e gerencie suas tarefas agendadas pelo Agenda e pelo Gmail.

OKSampler: Um sampler de música gratuito e simples para batidas de teclado.

OKSampler: Um sampler de música gratuito e simples para batidas de teclado.

O OKSampler mapeia trechos de MP3 para teclas do teclado e pode reproduzir áudio em loop. Saiba o que este software gratuito legado faz, onde terminam suas funcionalidades antigas e o que verificar antes de baixar.

Como instalar o Linux Mint Debian Edition 5 “Elsie” a partir de um pendrive USB

Como instalar o Linux Mint Debian Edition 5 “Elsie” a partir de um pendrive USB

Baixe e verifique a ISO arquivada do LMDE 5, crie um USB inicializável e escolha as configurações de instalação segura. O Elsie chegou ao fim de seu suporte; veja a versão atual do LMDE.

Como instalar o Wireshark no Linux: Ubuntu, Fedora, Arch e outras distribuições

Como instalar o Wireshark no Linux: Ubuntu, Fedora, Arch e outras distribuições

Instale o Wireshark no Ubuntu, Debian, Fedora, Arch ou openSUSE com os comandos de pacote atuais e, em seguida, configure a captura de pacotes em tempo real com segurança.

Como jogar Don't Starve Together no Linux

Como jogar Don't Starve Together no Linux

Instale a versão Linux de Don't Starve Together pelo Steam, crie um mundo ou junte-se a amigos seguindo estes passos de configuração e resolução de problemas.

Como jogar Squad no Linux com o Steam Proton

Como jogar Squad no Linux com o Steam Proton

Configure o Squad no Linux com o Steam Play e o Proton, instale o jogo, escolha uma ferramenta de compatibilidade e resolva problemas com o sistema anti-cheat.

Como criar uma unidade USB inicializável do Windows 11 no Linux

Como criar uma unidade USB inicializável do Windows 11 no Linux

Crie um pendrive de instalação do Windows 11 no Linux com o Ventoy: obtenha a ISO oficial, instale o Ventoy com segurança, copie a imagem e inicialize o computador de destino.

Como jogar DiRT Rally no Linux: Configuração do Steam e correções do Proton

Como jogar DiRT Rally no Linux: Configuração do Steam e correções do Proton

Aprenda a jogar DiRT Rally no Linux se você já o possui no Steam: instale a versão nativa, execute-o e use o Proton apenas como alternativa.

Como instalar o Devuan Linux a partir de um USB inicializável

Como instalar o Devuan Linux a partir de um USB inicializável

Instale o Devuan Excalibur a partir da ISO Live para desktop. Verifique o download, crie um USB inicializável, proteja as partições existentes e finalize a instalação com o Refracta Installer.