ReLoad

Thierry Jaouen ~ WikiBlog
"Rien à foutre d'être lu, tant que je peux me relire."

Outils pour utilisateurs

Outils du site


blog:2013:10:17:dans_ton_luks_avec_busybox_et_dropbear

Dans ton LUKS, avec BusyBox et DropBear

Soit un système totalement chiffré avec LUKS ( et les utilitaires cryptsetup) … (Sauf la partition de “/boot” bien sur)…

La meilleure des protections (en terme de sécurité), et de taper, sur un clavier, le long code secret a chaque (re)démarrage du système.

Mais lorsque le système est loin de tout, ou simplement sans clavier, comment faire ?

~~READMORE~~

PS: je sais qu'on peut coller le code dans une clé USB… mais en terme de sécurité, c'est nul.

La doc est là dedans: /usr/share/doc/cryptsetup/README.remote.gz

Packages

# aptitude install busybox dropbear

Dropbear

Sauf cas particulier, vérifiez que “dropbear” ne démarre pas en daemon.

Donc, dans /etc/default/dropbear , vérifier:

NO_START=1

initramfs

conf

Dans /etc/initramfs-tools/initramfs.conf , vérifier qu'on a bien:

BUSYBOX=y

et qu'on n'a pas DROPBEAR=n .

et faire en sorte d'ajouter:

# TJ -------------
IP=192.168.1.111::192.168.1.254:255.255.255.0:zbox:eth0:off
# ----------------

Ce qui permet d'associer une IP à “eth0” sans dhcp
Où: IP=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf>
( Doc: http://www.cs.fsu.edu/~baker/devices/lxr/http/source/linux/Documentation/nfsroot.txt?v=2.6.11.8 )

keys

Vérifier qu'on a bien des clés “dropbear” la dedans /etc/initramfs-tools/etc/dropbear/ (normalement, elles y sont).

On a plusieurs possibilités, mais la méthode qui a ma préférence est d'ajouter une clé publique (“id_rsa.pub”) dans /etc/initramfs-tools/root/.ssh/authorized_keys.

Exemple:

# cat id_rsa.pub >> /etc/initramfs-tools/root/.ssh/authorized_keys

re-creer initramfs

Cette étape ne doit être faite qu'une fois qu'on a fait toutes les modifications ci-dessus.

# update-initramfs -u

(On peut voir que ça a changé là dedans: /boot/initrd.img-…. )

Et puis:

# update-grub

On peut rebooter.

Accès a DropBear

Au reboot suivant, une clé “LUKS” est demandée.

On accède a Sshd/Dropbear:

$ ssh -oStrictHostKeyChecking=no -oUserKnownHostsFile=/dev/null root@192.168.1.111

… Si on a bien sa clé publique enregistrée dans authorized_keys , vu précédemment.

Une fois dans dropbear, on peut envoyer le code secret attendu via:

# echo -ne "secret" >/lib/cryptsetup/passfifo

Et voila: on peut quitter la session.

Changement de port

Éventuellement, on peut souhaiter que le port d'accès a Dropbear soit différent que celui habituellement en usage (le port 22).

:!: C'est pas trop propre, mais je n'ai pas mieux a proposer.

Sauvergarde de l'original:

# cp -p /usr/share/initramfs-tools/scripts/init-premount/dropbear{,.original}

Désarmer la version “original” (sinon, elle va être demarré aussi!)

# chmod a-x /usr/share/initramfs-tools/scripts/init-premount/dropbear.original

A la fin , du script “dropbear” , ajouter l'option qui va bien, par exemple pour le port “23” :

/sbin/dropbear -p 23

… pour finir:

# update-initramfs -u
# update-grub

Voila.
Au reboot suivant, “Dropbear” sera en attente sur le port “23”.

blog/2013/10/17/dans_ton_luks_avec_busybox_et_dropbear.txt · Dernière modification : 2013/10/17 21:47 de thierry