J'ai eu la même question, voici comment je l'ai fait sur Ubuntu 12.04.1 et 12.10,
- Avant de commencer, assurez-vous d'avoir une sauvegarde et pouvez également démarrer votre système avec ubuntu cd ou usb; comme si vous faites une erreur, votre système peut ne plus démarrer ou vous risquez de perdre des données. je suppose que vous avez un système ubuntu crypté avec LUKS, à l'intérieur de LUKS vous avez 3 partitions, SYSTEM-BOOT (non crypté), SYSTEM-SWAP (crypté) et SYSTEM-OS (crypté) -
vous devez ajuster les UUID, SYSTEM-SWAP_crypt, SYSTEM-OS_crypt, SYSTEM-SWAP, SYSTEM-OS à la variation utilisée sur votre système, veuillez consulter le lien de référence ci-dessous ma solution pour plus d'informations
Obtenez les UUID:
blkid
Préparez>
swapoff /dev/mapper/SYSTEM-SWAP_crypt
cryptsetup luksClose SYSTEM-SWAP_crypt
Dites à cryptsetup de calculer la phrase secrète de la partition de swap à partir de la clé de déchiffrement du volume contenant le système de fichiers racine>
/lib/cryptsetup/scripts/decrypt_derived SYSTEM-OS_crypt | cryptsetup luksFormat /dev/mapper/SYSTEM-SWAP --key-file -
/lib/cryptsetup/scripts/decrypt_derived SYSTEM-OS_crypt | cryptsetup luksOpen /dev/mapper/SYSTEM-SWAP SYSTEM-SWAP_crypt --key-file -
mkswap /dev/mapper/SYSTEM-SWAP_crypt
informer le système de la partition de swap, éditer crypttab>
nano /etc/crypttab
=? assurez-vous que deux lignes correspondent
SYSTEM-OS_crypt UUID=uuid-of-luks-containing-osroot none luks
SYSTEM-SWAP_crypt UUID=uuid-of-luks-containing-swap SYSTEM-OS_crypt luks,keyscript=/lib/cryptsetup/scripts/decrypt_derived
informer le système de la partition d'échange, éditer fstab>
nano /etc/fstab
=? assurez-vous que vous avez cette ligne
/dev/mapper/SYSTEM-SWAP_crypt swap swap sw 0 0
informer le système de la partition d'échange, modifier le CV>
nano /etc/initramfs-tools/conf.d/resume
=? assurez-vous que vous avez cette ligne
RESUME=UUID=uuid-of-encrypted-swap-SYSTEM-SWAP_crypt
mettre à jour initramfs sur la partition de démarrage>
update-initramfs -u -k all
Référence
La réponse inspirée par la mise en place d'un système Debian crypté (lien archivé):
Si vous utilisez un système Debian chiffré, vous devez probablement respecter certaines exigences de sécurité. Si tel est le cas, vous devez également utiliser une partition de swap chiffrée.
La partition de swap peut être chiffrée de deux manières:
- il peut être recréé à chaque démarrage, à l'aide d'une phrase de passe aléatoire, ou
- il peut être créé comme les autres volumes chiffrés avec une phrase secrète persistante
Si vous souhaitez utiliser la suspension sur disque, vous ne pouvez pas utiliser la première approche car elle écraserait votre empreinte mémoire stockée dans la partition de swap. De plus, vous ne pouvez pas utiliser un fichier de clé comme les autres partitions, car le système de fichiers racine n'est pas (et ne doit pas) être monté au moment où le processus de reprise démarre et doit lire la partition de swap décryptée.
La façon dont j'ai résolu cela est de dire à cryptsetup de calculer la phrase secrète de la partition de swap à partir de la clé de déchiffrement du volume contenant le système de fichiers racine; le package cryptsetup implémente cela avec /lib/cryptsetup/scripts/decrypt_derived
. Ainsi, pour configurer la partition de swap, je fais ce qui suit, en supposant que hda2
la partition contenant le swap crypté et que le système de fichiers racine se trouve hda5_crypt
:
swapoff /dev/mapper/hda2_crypt
cryptsetup luksClose hda2_crypt
dd if=/dev/urandom of=/dev/hda2
/lib/cryptsetup/scripts/decrypt_derived hda5_crypt \
| cryptsetup luksFormat /dev/hda2 --key-file -
/lib/cryptsetup/scripts/decrypt_derived hda5_crypt \
| cryptsetup luksOpen /dev/hda2 hda2_crypt --key-file -
mkswap /dev/mapper/hda2_crypt
Pour informer le système de cette partition de swap, nous devons l'ajouter à
/etc/crypttab
et /etc/fstab
; assurez-vous que ces fichiers contiennent des lignes comme les suivantes:
/etc/crypttab:
hda2_crypt /dev/hda2 hda5_crypt luks,keyscript=/lib/cryptsetup/scripts/decrypt_derived
/etc/fstab:
/dev/mapper/hda2_crypt swap swap sw 0 0
Avec cela en place, dès que vous configurez le système pour une suspension sur disque, la partition de swap sera automatiquement configurée à côté du système de fichiers racine très tôt pendant la séquence de démarrage. Pour déterminer la partition de swap à rendre disponible à ce stade, cryptsetup vérifie les éléments suivants: asfasfafs - une ligne comme RESUME=/dev/mapper/hda2_crypt
in /etc/initramfs-tools/conf.d/resume
- un paramètre de reprise de périphérique dans /etc/uswsusp.conf
(voir uswsusp.conf(5)
) - une entrée dans /etc/suspend.conf
- a resume=/dev/mapper/hda2_crypt
dans la ligne de commande du noyau
Vous pouvez inspecter /usr/share/initramfs-tools/hooks/cryptroot
si vous souhaitez en savoir plus à ce sujet.