Dropbear, utilisation et astuces

Généralités

La partition liée à Grenode sur les machines physiques est chiffrée. Pour les (re)booter, une phrase secrète est demandée pour devérouiller la clé de chiffrement. Il est aussi possible de taper cette phrase à distance en utilisant une connection ssh. En effet, lors du démarage de la machine un serveur ssh tourne (il s'appelle dropbear). Pour l'instant, on ne s'y connecte que par clé RSA (configuration par défaut).

Connexion et utilisation

Pour pouvoir se connecter au dropbear, il faut poser sa clef dans /etc/initramfs-tools/root/.ssh/authorized_keys, avec ce petit bout de conf dans le ~/.ssh/config, tout roule :

Host <machine>.grenode.net-boot
    User root
    IdentityFile ~/.ssh/<clef>
    HostName <machine>.grenode.net

Pour déverouiller la partition chiffrée :

ssh root@palanquee.grenode.net-boot
echo -n "La phrase ?" > /lib/cryptsetup/passfifo

Il est aussi possible d'utiliser /lib/cryptsetup/askpass pour ne pas afficher la passphrase.

Pour vérifier si cela a marché, il est possible de regarder la liste des processus actifs... et puis de toute façon vous allez vous faire jeter si cela a marché.

Si trop d'essais effectués...

crypsetup est configuré pour autoriser que 5 essais. Après par défaut le processus se termine. Dans ce cas là, quand on essaie de taper la passphrase, cela ne fonctionne plus.

Dans ce cas là, il est possible de démarrer manuellement le script de déchiffrement :

ssh root@palanquee.grenode.net
export PATH=/sbin:$PATH
/scripts/local-top/cryptroot
# il faut taper la passphrase

# Une fois le volume chiffré ouvert, il faut identifier le numéro de processus 
# correspondant à "sh -i" (le terminal interactif)
kill -9 <numero du process>

A partir de là le processus de boot devrait continuer normalement.

Utiliser dropbear comme recovery-mode

Dropbear est aussi très utile pour récupérer une bêtise sur le disque dur, en équivalent à un recovery-mode. Pour ça, il faut se connecter à la machine en ssh, puis :

cryptsetup luksOpen <device> <name>
vgchange -a y
mkdir /mnt
mount -t ext4 /dev/mapper/<le lv à monter> /mnt
# Effectuer les modifications
umount /mnt
vgchange -a n
cryptsetup luksClose <name>

On peut alors rebooter.