Bonjour,
j'ai récemment installé une Debian sur des partitions chiffrées avec cryptsetup et LUKS.
Je souhaiterais pouvoir démarrer sur la partition que laquelle est montée la racine du système, soit :
- Par le biais d'une clé, placé sur un support amovible (cela j'y parviens)
- OU en saisissant un mot de passe si la clé est introuvable.
Quelqu'un pourrait m'aider svp ?
J'ai comme partions lvm, dans le conteneur LUKS:
- Une partition root
- Une partition de données (je crée des liens depuis le /home vers les fichiers de cette partition.
- Une swap
- Deux partitions vides destinées à tester des distributions.
J'ai ajouté une clé dans un slot de la partition root. Pour booter sur la partition root, j'ai récupéré un script, appelé dans /etc/crypttab, qui récupère la clé et la fournit (via un echo) à cryptsetup au démarrage. Cela se passe sans problème.
En revanche si la clé est absente, le démarrage s'interrompt et j'obtiens le message d'erreur "cryptsetup : cryptsetup failed, bad password or options ?" puis une invite sur ce qui me semble être la console busybox ou initramfs.
En examinant plusieurs tutoriels (références en bas de page) je ne suis pas parvenu à trouver une solution à ce problème.
Auriez-vous une solution oou des pistes à examiner s'il-vous-plaît ?
Ci-dessous :
- le contenu du fichier /etc/crypttab (les lignes précédée d'un # correspondent à des tentatives infructueuses
# <target name> <source device> <key file> <options>
tank UUID=61a4c4e4-708d-4012-a7df-fc7bae0e8391 tank.key luks,keyscript=/etc/initramfs-tools/scripts/tank.sh
#tank UUID=61a4c4e4-708d-4012-a7df-fc7bae0e8391 none luks,keyscript=/etc/initramfs-tools/scripts/tank.sh
#tank UUID=61a4c4e4-708d-4012-a7df-fc7bae0e8391 tank.key luks,tries=1,timeout=3
#tank UUID=61a4c4e4-708d-4012-a7df-fc7bae0e8391 UUID=a248a493-7ae2-448d-87f1-084da8057994:tank.key luks,keyscript=/etc/initramfs-tools/scripts/tank.sh
#tank UUID=61a4c4e4-708d-4012-a7df-fc7bae0e8391 UUID=a248a493-7ae2-448d-87f1-084da8057994:tank.key luks
sav UUID=90e1c47b-5173-498d-89d9-fedaf20986bb savLx0.key luks,keyscript=/etc/initramfs-tools/scripts/savLx0.sh
- Le script appelé dans /etc/crypttab et situé dans /etc/initramfs-tools/scripts
#!/bin/sh
# Modif en statique
mkdir /keyTmpMnt 2>/dev/null
mount UUID=a248a493-7ae2-448d-87f1-084da8057994 /keyTmpMnt -t ext4 2>/dev/null
cat /keyTmpMnt/LUKS/tank.key 2>/dev/null
umount /keyTmpMnt 2>/dev/null
rmdir /keyTmpMnt 2>/dev/null
exit
# Principe : Monter la partition contenant la clé du conteneur LUKS et la lire
# Définition des variables
tmpMnt="/keyTmpMnt"
keyDev=""
keyPath="LUKS"
keyFile="tank.key"
keyPartUUID="a248a493-7ae2-448d-87f1-084da8057994"
keyPartfs="ext4"
keybool=0 # flag indiquant si la clé a été lue ou non
# Extraction du dev correspondant à l'UUID de la partition contenant la clé
keyDev=$(blkid | grep $keyPartUUID | cut -d: -f1)
# chargement des modules nécessaires
modprobe usb-storage >/dev/null 2>&1
modprobe ext2 >/dev/null 2>&1
# Création d'un répertoire temporaire (s'il n'existe pas déjà) où monter la partition contenant la clef
if test ! -d $tmpMnt; then
mkdir $tmpMnt 2>/dev/null
echo "Création du point de montage"
else
echo "Point de montage préexistant"
fi
# Montage de la partition si ce n'est pas déjà fait.
if test "$(mount -l | grep $tmpMnt | wc -m)" -eq 0; then
#mount $keyDev $tmpMnt -t $keyPartfs -o ro 2>/dev/null
#Modif
mount $keyDev $tmpMnt
echo "Montage de la partition contenant la clé"
else
echo "Partition déjà montée"
fi
# Affichage de la clé
if test -f $tmpMnt/$keyPath/$keyFile; then
cat $tmpMnt/$keyPath/$keyFile 2>/dev/null
keybool=1
echo "Le conteneur LUKS est ouvert"
else
# Tentative de saisie du mot de passe
echo -n "Essai de saisie du mot de passe: " >&2
read -r A
echo -n "$A"
fi
#~ # Nettoyage
sleep 1
umount $tmpMnt 2>/dev/null
rmdir $tmpMnt 2>/dev/null
Je suis à votre disposition pour vous communiquer toute information complémentaires.
Par avance merci
PS: Liste non exhaustive des tutoriels consultés :
- http://www.linuxpedia.fr/doku.php/exper ... cryptsetup
- http://vesta.homelinux.free.fr/wiki/cry ... ebian.html
- http://doc.ubuntu-fr.org/cryptsetup
- http://korben.info/comment-chiffrer-une ... buntu.html
- http://wejn.org/how-to-make-passwordles ... 02760c694b
Dernière modification par ArtaxerxesFr (21-03-2015 08:52:31)