Linux Mint: Como ativar cryptswap com senha customizada?

2

Quando você deseja usar a hibernação e cuida da segurança, você gostaria de ter a troca criptografada. Mas não com a senha aleatória, escolhida para você na inicialização, mas com uma senha fixa, fornecida por você no momento da inicialização, portanto, o estado hibernado estaria disponível para retomada na próxima inicialização.

Havia uma maneira legal de fazer isso, que funcionou até o dia 15: Como: obter todo o sistema criptografado

Isso não funciona mais em Petra. Alguém pode me ajudar com o trabalho? O principal culpado, o script /usr/share/initramfs-tools/scripts/local-top não mudou, então acho que tem algo a ver com o kernel. Parece que o kernel recente simplesmente ignora todo o scirpt, ou pelo menos a parte que pede uma senha para swap.

Ah, e eu consegui o prompt de senha, quando eu acidentalmente inicializei o Mint 16 com o kernel do Mint 15.

Veja também uma questão relacionada:

Como pedir uma senha para montar o crypted swap no boot do Linux Mint 16 com o initramfs-tools?

Algumas informações de depuração

Após abrir o dispositivo de troca com sudo cryptsetup luksOpen /dev/sda5 cryptswap :

sudo lsblk -o name,uuid

NAME                  UUID
sda                   
├─sda1                F251-38C0
├─sda2                c66b8e51-dd1b-4d92-8605-a3ba7df6af83
├─sda3                77af32db-038d-4c10-b302-039634cf943a
├─sda4                7a3cde35-ab80-4618-ad76-7aa064d55f56
├─sda5                fc068dd2-759c-4779-b521-c73cc5499e86
│ └─cryptswap (dm-1)  964eafeb-c88b-49c8-8b5e-6f8395e040b4
├─sda6                926fa7cc-6f97-4672-85a7-a1ed8f5bd842
├─sda7                804b9c88-907b-43d9-b23f-964c32ecc2ac
└─sda8                ce2cd926-133f-4e20-86f8-45bc4844271c
  └─adama-docs (dm-0) 61a32b98-3b65-4af6-81ff-da090cae039f
sr0              

cat /etc/crypttab

#cryptswap1 /dev/sda5 /dev/urandom swap,cipher=aes-cbc-essiv:sha256
swap UUID=fc068dd2-759c-4779-b521-c73cc5499e86  none luks

cat /etc/fstab

UUID=926fa7cc-6f97-4672-85a7-a1ed8f5bd842   /   btrfs   defaults,subvol=@,compress,autodefrag   0   1
# /boot was on /dev/sda2 during installation
UUID=c66b8e51-dd1b-4d92-8605-a3ba7df6af83   /boot   ext3    defaults    0   2
# /boot/efi was on /dev/sda1 during installation
UUID=F251-38C0  /boot/efi   vfat    defaults    0   1
# /home was on /dev/sda6 during installation
UUID=926fa7cc-6f97-4672-85a7-a1ed8f5bd842   /home   btrfs   defaults,subvol=@home   0   2
# /mnt/ext4 was on /dev/sda7 during installation
UUID=804b9c88-907b-43d9-b23f-964c32ecc2ac   /mnt/ext4   ext4    defaults    0   0
# swap was on /dev/sda5 during installation
UUID=964eafeb-c88b-49c8-8b5e-6f8395e040b4 none            swap    sw              0       0

/etc/initramfs-tools/conf.d/resume

RESUME=/dev/disk/by-uuid/964eafeb-c88b-49c8-8b5e-6f8395e040b4

atualização:

Quando configuro tudo como acima, o sistema exibe o prompt familiar de senha. Ele não faz isso toda vez, e se isso acontecer, é uma fração de segundo antes da tela de login (o Linux Mint usa mdm para login). Eu acho que há condições de corrida; a montagem da troca é feita paralelamente à inicialização do sistema; Espero que o sistema aguarde a inicialização até que a troca seja montada e faça isso o mais cedo possível. Caso contrário, como poderia retomar o estado de hibernação?

Existe uma questão semelhante para o Ubuntu: link Parece , que funcionou para alguém se ele criptografou a raiz também.

    
por Adam Ryczkowski 12.01.2014 / 09:53

1 resposta

0

Eu ainda não sei qual configuração você tem e o que realmente está acontecendo quando você tenta hibernar sua máquina, mas tentarei responder à pergunta.

Eu tenho a distro de teste do Debian, mas acho que não deve haver um problema para configurar isso no seu pc. Basta olhar para a minha configuração, talvez você descubra o que há de errado no seu caso.

Este é o meu disco de teste:

root:~# lsblk -o name,uuid
NAME                  UUID
sda
├─sda1                727035387035047F
├─sda2                c55b13b7-ca46-488e-a78c-ac229cb6634c
├─sda3                1c379414-bac2-45d9-85c5-25163c663341
│ └─sda3_crypt (dm-0) 44cd4817-c27f-47aa-a7d5-b64276817a74
└─sda4                7774cf98-35fd-42fd-9891-7255c916fe02
  └─sda4 (dm-1)       0905595d-db03-4cc9-93d6-7d1262c140a4

sda2 é para partição de inicialização, sda3 , há o meu linux e sda4 é a partição de troca. sda3 e sda4 são criptografados e você deseja desbloquear a partição swap na inicialização. Você precisa editar alguns arquivos para fazer isso.

/etc/fstab file:

UUID=0905595d-db03-4cc9-93d6-7d1262c140a4 swap swap defaults 0 0

/etc/initramfs-tools/conf.d/resume file:

RESUME=/dev/disk/by-uuid/0905595d-db03-4cc9-93d6-7d1262c140a4

/etc/crypttab file:

swap    UUID=7774cf98-35fd-42fd-9891-7255c916fe02   none    luks

Agora você tem que regenerar o initramfs:

update-initramfs -u -k all

Esta solução funciona para mim no meu teste debian. Eu não fiz mais nada, a inicialização, o desbloqueio e o trabalho de hibernação sem nenhum problema.

UPDATE

Eu acho que percebi isso. Instalei o sistema e fiz o que escrevi na resposta, mas isso não funcionou. Talvez seja por causa do upstart - estou usando o sysvinit. Então eu instalei o sistema novamente, agora usando o recurso embutido criptografado. Em seguida, verifiquei todos os três arquivos e apenas o arquivo /etc/fstab foi diferente. Parece que você não pode usar UUIDs em /etc/fstab quando quiser montar ou interagir com dispositivos criptografados. Então, instalei o sistema mais uma vez (não criptografado) e criei uma partição separada para swap. Os dois arquivos /etc/initramfs-tools/conf.d/resume e /etc/crypttab permanecem os mesmos, mas no arquivo /etc/fstab eu adicionei a seguinte linha:

/dev/mapper/swap none            swap    sw              0       0

E funcionou - eu tinha uma tela de senha inicial e ela parou de ser inicializada até que a senha correta fosse informada. Também verifiquei se a hibernação funciona e funciona conforme o esperado.

    
por 01.03.2014 / 19:08