É sensato que, se você tiver algum tipo de criptografia de dispositivo de bloco implementada em seu sistema GNU / Linux, também criptografar sua partição de swap, pois todos os dados descriptografados podem ser gravados em texto não criptografado a qualquer momento na troca.
Olhando a página de manual do debian para "crypttab", vejo um exemplo de criação de uma partição swap de chave aleatória na inicialização, portanto a chave é definida aleatoriamente à medida que a inicialização prossegue 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, ou seja, /dev/sda6
Os caminhos absolutos do dispositivo 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 infeliz se houvesse /dev/sda6
uma partição diferente do esperado e, posteriormente, foi substituída por dados de troca aleatórios !!
Portanto, a solução parece ser: use um UUID em vez de um caminho do 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 o cryptsetup recria a partição de troca criptografada no momento da inicialização, gera um novo UUID para ele! Doh!
Portanto, precisamos preservar o UUID desse sistema de arquivos criptografado de alguma forma. Eu acho que o cryptsetup pode fazer isso com seu --offset
switch, permitindo a preservação do cabeçalho LUKS e, portanto, do UUID.
Encontrei este URL: https://wiki.archlinux.org/index.php/System_Encryption_with_LUKS#Using_UUIDs_with_encrypted_swap_partitions
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!
EDIT
Pode-se usar ecryptfs para obter os mesmos fins (espaço de troca criptografado) usando o comando:
ecryptfs-setup-swap
Sem os problemas que afetam a criptografia do dispositivo de bloco. Dê uma olhada nesta consulta AskUbuntu
ecryptfs-setup-swap
é apenas um auxiliar que configuradm-crypt
/crypttab
para você. Comoecryptfs
é um driver em nível de arquivo, ele não lida com partições inteiras; portanto, faz issodm-crypt
. Você pode achar esse método mais fácil de usar, mas no fim das contas não está conseguindo nada diferente. De qualquer forma, as peculiaridades desse método (incluindo o UUID) provavelmente me deixaram mais confusa do que se eu tivesse acabado de fazer isso sozinho desde os primeiros princípios ... embora eu tenha aprendido mais.Respostas:
No / etc / crypttab, use / dev / disk / by-id em vez de / dev / disk / by-UUID para se referir à sua partição swap. Por exemplo, sua entrada / etc / fstab para swap pode ser
A entrada correspondente correta em / etc / crypttab seria algo como
Observe que o dispositivo acima é referido por / dev / disk / by-id, que você pode descobrir para sua unidade digitando o seguinte na CLI:
fonte
/dev/sdaN
depois conectar outro disco algum dia e descobrir que sua ordem de nomeação do kernel foi alterada e uma das partições que não são de troca foi lixeira. O UUID também seria bom, mas acho que o principal problema é que ele é armazenado nos primeiros bytes da partição, para obtermos o cenário insolúvel de ovo e galinha discutido aqui.No meu / etc / crypttab, tenho
Aqui / dev / mapper / cswap é um volume lógico criado pelo LVM, que se encarrega de atribuir corretamente nomes de volumes lógicos, independentemente dos nomes das letras da unidade. Também me permite redimensionar facilmente minha partição de troca.
fonte
Tente implementar o restante da solução, ignorando o arquivo init. Parece que esse pedaço de script init está lá apenas para protegê-lo. O Debian não o protege dessa maneira, ou você receberá uma mensagem de erro quando você tentar inicializá-lo, que, com sorte, o levará ao lugar certo.
Eu também cuidaria para que o IIRC Debian e o ArchLinux tenham formatos diferentes para o / etc / crypttab (louco, eu sei, mas mudei do Ubuntu para o Arch alguns anos atrás e acabei decidindo usar o bash direto em vez de mexer com o crypttabs).
fonte
execute ecryptfs-setup-swap ou manualmente:
Esta configuração usa chaves geradas aleatoriamente na inicialização e não suporta a hibernação no disco rígido! Você deve desativar a hibernação através do seu respeitado DE Power Management Utility e configurá-lo como Shutdown on Critical para evitar a perda de dados!
Mudar para uma conta de administrador / raiz
su root ou sudo para cada comando
Desativar Troca
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 de crypttab: / dev / mapper / cswap
OLU UUID = d03f3d8e-7888-48a5-b3cc-41de8dbbcfdc padrões de swap 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
Para obter mais informações, consulte o manual de instalação do Windows 10, que pode ser baixado no site da Microsoft, para obter mais informações.
Troca criptografada ativa
Reinicie o computador
Verificar operações de troca codificada
dmsetup -C info
Exemplo: cswap 253 0 L - w 2 1 0 CRYPT-PLAIN-cswap
lsblk
Exemplo part─sda3 8: 3 0 8G 0 parte
│ └─cswap 253: 0 0 8G 0 crypt [SWAP]
cat / proc / swaps
exemplo: Nome do arquivo Tipo Tamanho Usado Prioridade / dev / dm-0 partição 8385532 0 -1
fonte