J'ai installé un nouveau système 11.04 quand il a été publié et configuré le chiffrement intégral du disque avec LUKS. Au début, il m'a demandé un mot de passe pour mes trois partitions chiffrées:
/
/home
swap
Taper trois fois la phrase secrète était frustrant. J'ai donc essayé de configurer/home et de permuter le déchiffrement à partir d'un fichier de clés stocké sur /. J'ai créé le fichier de clés et l'ai activé sur les deux partitions. Mon crypttab ressemble maintenant à ceci:
root-root_crypt UUID=13c21bf6-4d92-42a7-877a-87cc31b1aa19 none luks
home-home_crypt UUID=ba90ce5b-9df7-4764-8a72-011bbb164db4 /root/keyfile luks
home-home_crypt UUID=ba90ce5b-9df7-4764-8a72-011bbb164db4 none luks
sda3_crypt UUID=e4677895-2114-4054-9f23-d36f6bb0e6a2 /root/keyfile luks,swap
Cela fonctionne bien pour/home, qui est monté automatiquement sans demander de mot de passe. Mais cryptsetup demande toujours un mot de passe pour l'espace de swap. J'ai même essayé d'ajouter noauto à l'espace d'échange afin qu'il ne soit pas configuré du tout. Une fois le système démarré, je peux l'activer sans la phrase secrète. J'ai donc pensé ajouter un script d'initialisation tardif. mais, même avec noauto, cryptsetup demande toujours la phrase secrète.
Merci!
Avait la même question, voici comment je l'ai fait sur Ubuntu 12.04.1 et 12.10,
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.
Obtenir les UUID:
blkid
Préparer>
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
informe le système de la partition swap, édite 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
informe le système de la partition d'échange, modifie fstab>
nano /etc/fstab
=? assurez-vous que vous avez cette ligne
/dev/mapper/SYSTEM-SWAP_crypt swap swap sw 0 0
informe le système de la partition swap, édite resume>
nano /etc/initramfs-tools/conf.d/resume
=? assurez-vous que vous avez cette ligne
RESUME=UUID=uuid-of-encrypted-swap-SYSTEM-SWAP_crypt
met à jour initramfs sur la partition de démarrage>
update-initramfs -u -k all
La réponse inspirée par Configuration d’un système Debian crypté (lien archivé):
Si vous utilisez un système Debian crypté, vous avez probablement des exigences de sécurité à respecter. 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, en utilisant une phrase secrète 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 la mémoire occupée par la 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échiffrée.
J'ai résolu ce problème en demandant à 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 paquetage cryptsetup implémente ceci avec
/lib/cryptsetup/scripts/decrypt_derived
. Ainsi, pour configurer la partition de swap, procédez comme suit, en supposant quehda2
soit la partition contenant le swap crypté et que le système de fichiers racine se trouve danshda5_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 celles-ci:
/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
Une fois que cela est en place, dès que vous configurez le système pour une suspension sur disque, la partition de swap est automatiquement configurée très tôt avec le système de fichiers racine au cours de 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
dans/etc/initramfs-tools/conf.d/resume
- un paramètre de périphérique de reprise dans/etc/uswsusp.conf
(voiruswsusp.conf(5)
) - une entrée dans/etc/suspend.conf
- unresume=/dev/mapper/hda2_crypt
dans la ligne de commande du noyauVous pouvez inspecter
/usr/share/initramfs-tools/hooks/cryptroot
si vous voulez en savoir plus à ce sujet.
Cela indique probablement que la partition de swap est en cours d'accès au cours de la partie initramfs
du processus de démarrage. À ce stade, le système de fichiers racine n’a pas encore été monté. Par conséquent, aucun fichier de configuration stocké n’est visible.
Bien que l'espace d'échange soit monté après le système de fichiers racine, le processus d'initialisation initramfs
a une raison d'accéder à l'espace d'échange: lors de la mise en veille prolongée de votre ordinateur, le contenu de la mémoire et l'état du système sont écrits dans swap. Pour sortir de l'hibernation, il est nécessaire de vérifier si l'espace de permutation contient une image d'hibernation nécessitant la phrase secrète.
Si cela ne vous dérange pas de perdre la possibilité de reprendre le mode veille prolongée, vous pouvez désactiver ce problème en modifiant /etc/initramfs-tools/conf.d/resume
et en commentant la ligne commençant par RESUME=
. Après avoir effectué le changement, exécutez update-initramfs -u
pour mettre à jour l'image initramfs
.