Clonando uma partição raiz em um criptografado por dm-crypt

2

Eu tenho o Gentoo Linux instalado em uma partição 25.93GB / 62.43GB /dev/sda4 . As outras partições no disco são 150MB /boot em /dev/sda1 e 56,66GB de espaço não utilizado em outras duas partições.

Estou planejando criptografar o espaço não utilizado com dm-crypt , formatá-lo para ext4 e depois de migrar minha instalação para ele, para ativar a partição antiga. Minhas perguntas aqui são:

  • Isso é possível? Ou exigiria muitos ajustes para que a instalação fosse executada no volume criptografado /dev/sda2 ?

  • Esta é uma maneira eficiente? Levando em consideração o meu Gentoo de 25.9 GB, seria menos trabalhoso para mim se eu apenas criptografasse o disco inteiro e instalasse o Gentoo (e todos os pacotes) novamente?

  • Devo usar encfs ou ecryptfs em vez de dm-crypt aqui? Eles forneceriam segurança igual?

  • Qual algoritmo devo usar para criptografar a partição? Meu processador não possui AES-NI.

  • O que devo usar para sincronizar a partição criptografada com a outra? Alguma coisa como dcfldd funcionaria para isso?

Edite sendo gravado a partir da partição migrada:

  • Depois de excluir as partições não usadas e criar uma nova /dev/sda2 não formatada, eu corri:

    cryptsetup luksFormat /dev/sda2
    cryptsetup luksOpen /dev/sda2 encrypt
    pv /dev/zero > /dev/mapper/encrypt
    

    pv here é usado para monitorar o progresso de escrever zeros e depois disso eu formatei a partição criptografada para ext4 com mkfs.ext4 /dev/mapper/encrypt .

  • Para sincronizar as partições, usei a recomendação rsync do YoMismo após inicializar o PC a partir de um USB ativo. Ele não me deixou entrar com chroot , mas tive que reinicializar minha partição antiga e chroot de lá. Eu corri nesse processo:

    mkdir /tmp/old_partition /tmp/new_encrypt
    mount /dev/sda4 /tmp/old_partition
    mount /dev/mapper/encrypt /tmp/new_encrypt
    cd /tmp/new_encrypt
    rsync -av /tmp/old_partition/* .
    

    e depois de reinicializar a partição antiga /dev/sda4 , abrindo e montando /dev/sda2 e montando sistemas de arquivos do kernel virtual:

  • Eu fiz um /etc/crypttab com root UUID=<uuid of /dev/sda2> none luks

  • Eu alterei /etc/fstab para informar que minha partição raiz é UUID=<uuid of mapper> .
  • Alterei /boot/grub/grub.conf : eliminei root=<root> no final de kernel line e configurei um dispositivo crypted com crypt_root=UUID=<uuid> root=/dev/mapper/root .
  • Eu corri genkernel --install --luks initramfs para criar novos initramfs com o suporte luks.

Agora posso inicializá-lo e executá-lo, a única coisa que resta é definir a partição antiga em chamas.

    
por sikerbela 16.04.2015 / 15:34

1 resposta

3

1.- Sim, é possível, mas você terá que fazer alguns ajustes.

2.- Você não pode criptografar todo o disco, pelo menos a partição de inicialização deve ser descriptografada se você quiser que seu sistema seja iniciado (alguém precisa solicitar a senha de descriptografia -initrd- e você precisa descriptografá-la).

3.- encfs tem algumas falhas, você pode ler sobre elas aqui . Eu usaria crm-dm para o trabalho.

4.- Não pode ajudar, talvez twofish?

5.- Eu usaria um live CD / USB para fazer o trabalho. Eu não sei se o espaço que você tem é suficiente para os dados nas outras partições, se for (a partição não está cheia) eu faria:

  • Primeiro, você precisa decidir que tipo de esquema de partição deseja. Eu vou assumir que você só quer /, / boot e swap. Então / boot não precisa ser confundido, também assumirei que o espaço deixado na partição não utilizada é suficiente para os dados que você deseja colocar na partição criptografada (/ neste caso).
  • Inicie seu sistema com o CD de vida.
  • Supondo que sua partição de destino seja / dev / sdc1 do cryptsetup luksFormat /dev/sdc1 , será solicitada a senha de criptografia. Depois disso abra a partição criptografada cryptsetup luksOpen /dev/sdc1 Enc escreva todos os zeros nele dd if=/dev/zero of=/dev/mapper/Enc e crie o sistema de arquivos mkfs.ext4 /dev/mapper/Enc
  • Agora monte sua partição, copie os arquivos e altere a raiz para a nova partição.

mkdir /tmp/O /tmp/D

mount /dev/sda4 /tmp/O

mount /dev/mapper/Enc /tmp/D

cd /tmp/D;rsync -av /tmp/O/* .

mount --bind /dev dev

mount --bind /proc proc

mount --bind /proc/sys sys

mount --bind /sys sys

chroot /tmp/D

mount /dev/sda1 /boot

-Use blkid para identificar suas UUIDs de partições e use essas informações para modificar os arquivos de configuração do grub e seu fstab (o dispositivo de partição raiz deve ser / dev / mapper / root_crypt). Modifique seu / etc / crypttab para que a nova partição criptografada seja referenciada lá. Crie uma linha como root_crypt UUID=your/encrypted/dev/uuid none luks . grub-update grub-install para onde seu grub deve estar e update-initramfs para que as novas alterações sejam atualizadas em seu initrd.

Se eu não perdi nada, você deve agora estar pronto para ir a menos que você esteja preocupado com sua partição swap, se você está e quer ser capaz de retomar a partir da hibernação, você terá que seguir as etapas anteriores para criptografar o swap. partição e mkswap em vez de mkfs.ext4 . Você também precisará adicionar a partição swap ao / fts / crypttab modify fstab para que / dev / mapper / name_swap_you_created_in_etc_crypttab seja o dispositivo para a partição swap e update-initramfs .

    
por 16.04.2015 / 17:22