Como criar uma partição swap criptografada aleatoriamente, referindo-se a ela por "uuid", no Debian?

8

É sensato que, se você tiver algum tipo de criptografia de dispositivo de bloco implementado em seu sistema GNU / Linux, criptografe sua partição swap também, pois qualquer dado descriptografado pode ser gravado em texto não criptografado a qualquer momento.

Olhando a página do debian man para "crypttab" eu vejo um exemplo de criação de uma partição swap aleatoriamente chaveada na inicialização, então a chave é configurada aleatoriamente conforme a inicialização continua e é conhecida apenas pelo próprio sistema:

# Encrypted swap device
cswap /dev/sda6 /dev/urandom cipher=aes-cbc-essiv:sha256,hash=ripemd160,size=256,swap

Neste exemplo, o dispositivo de troca é referido por um caminho de desenvolvimento convencional, por exemplo, /dev/sda6

Os caminhos de dispositivos absolutos estão sujeitos a alterações e são reatribuídos na inicialização se, por exemplo, uma unidade USB estiver conectada, por exemplo. Um usuário ficaria muito insatisfeito se /dev/sda6 fosse uma partição diferente do esperado e fosse sobrescrito posteriormente com dados de troca aleatórios!

Portanto, a solução parece ser: use um UUID em vez de um caminho de dispositivo (como um UUID não deve mudar), substituindo /dev/sda6 por /dev/disk/by-uuid/<whatever the uuid of dev/sda6 is>

MAS ... aqui está o problema: Toda vez que cryptsetup recria a partição de troca criptografada no momento da inicialização, ela gera um novo UUID para ela! Doh!

Portanto, precisamos preservar o UUID desse sistema de arquivos criptografado de alguma forma. Eu acho que o cryptsetup pode fazer isso com sua opção --offset , permitindo a preservação do cabeçalho LUKS e, portanto, do UUID.

Eu encontrei este URL: link

Alguém sabe como implementar a solução descrita para o Arch Linux no sistema operacional Debian? Os scripts init mencionados no documento parecem não existir no sistema operacional Debian

Obrigado!

EDITAR Pode-se usar ecryptfs para atingir os mesmos fins (espaço de troca criptografado) usando o comando: %código% Sem os problemas que afetam a criptografia de dispositivos de bloco. Dê uma olhada em esta consulta AskUbuntu

    
por Geeb 16.09.2011 / 02:21

4 respostas

6

Every time cryptsetup recreates the encrypted swap partition at boot time it generates a new UUID for it! Doh!

Em / etc / crypttab, use / dev / disk / by-id ao invés de / dev / disk / by-UUID para se referir à sua partição swap. Por exemplo, sua entrada / etc / fstab para swap pode ser

#<file system> <mount point> <type> <options> <dump> <pass>
/dev/mapper/cswap none swap sw 0 0

Em seguida, a entrada correspondente correta em / etc / crypttab seria algo como

# <name> <device> <password> <options>
cswap /dev/disk/by-id/ata-SAMSUNG_SSD_830_Series_S0XYNEAC762041-part5 /dev/urandom swap,cipher=aes-cbc-essiv:sha256,size=256

Observe que o dispositivo acima é referido por / dev / disk / by-id, o qual você pode descobrir para a sua unidade, digitando o seguinte na CLI:

ls -lF /dev/disk/by-id
    
por 24.01.2013 / 13:38
3

No meu / etc / crypttab, tenho

# <target name>  <source device>        <key file>   <options>
swap             /dev/mapper/cswap      /dev/random  swap

Aqui / dev / mapper / cswap é um volume lógico criado pelo LVM, que cuida da atribuição correta de nomes de volumes lógicos, independentemente dos nomes das letras das unidades. Também me permite redimensionar facilmente a minha partição de troca.

    
por 04.11.2011 / 15:37
0

Tente implementar o restante da solução, ignorando o arquivo init. Parece que esse bit de script de inicialização está lá apenas para protegê-lo. O Debian não protege você dessa maneira, ou você receberá uma mensagem de erro quando tentar inicializar com ele, o que, esperamos, o levará ao lugar certo.

Eu também terei cuidado para que o IIRC Debian e o ArchLinux tenham formatos diferentes para / etc / crypttab (louco, eu sei, mas eu mudei do Ubuntu para o Arch alguns anos atrás e eventualmente decidi usar o bash em vez de me intrometer crypttabs).

    
por 01.10.2011 / 07:59
0

execute o ecryptfs-setup-swap ou manualmente:

Esta configuração usa chaves geradas aleatoriamente na inicialização e não suportará a hibernação para o disco rígido! Você deve desativar a hibernação através de seu utilitário de gerenciamento de energia respeitado DE e configurá-lo para desligamento no crítico para evitar a perda de dados!

Mude para uma conta admin / root

su raiz ou sudo para cada comando

Desativar Trocar

swapoff -a

Localize a partição de troca existente

lsblk

exemplo: sda3 8: 3 0 8G 0 parte [SWAP]

Substituir Troca Antiga

dd se = / dev / zero bs = 1024000 de = / dev / sda < # >

exemplo: dd se = / dev / zero bs = 1024000 de = / dev / sda3

Configuração do FSTAB

vim / etc / fstab

Substitua o dispositivo SWAP antigo pelo nome do mapeador crypttab: / dev / mapper / cswap

OLD UUID = d03f3d8e-7888-48a5-b3cc-41de8dbbcfdc Padrões de troca de troca 0 0

NOVO

/ dev / mapper / cswap nenhum swap pri = 1, padrões 0 0

Configuração de criptografia

ls -lF / dev / disk / by-id

Exemplo: ata-HGST_HTS545050A7E680_TEK55D4F0BU3GV-part3 - > ../../ sda3

vim / etc / crypttab

cswap / dev / disk / by-id / ata-HGST_HTS545050A7E680_TEK55D4F0BU3GV-parte3 / dev / swap de url, cifra = aes-cbc-essiv: sha256, tamanho = 256

Troca Criptografada Ativa

Reinicie o computador

Verificar Operações de Troca Encontadas

dmsetup -C info

Exemplo: cswap 253 0 L - w 2 1 0 CRYPT-PLAIN-cswap

lsblk

Exemplo ├─sda3 8: 3 0 8G 0 part
253: 0 0 8G 0 cripta [SWAP]

cat / proc / swaps

exemplo: Nome de arquivo Tamanho do tipo usado Prioridade Partição / dev / dm-0 8385532 0 -1

    
por 01.05.2015 / 21:49