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
# aptitude install busybox dropbear
Sauf cas particulier, vérifiez que “dropbear
” ne démarre pas en daemon.
Donc, dans /etc/default/dropbear
, vérifier:
NO_START=1
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 )
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
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.
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.
É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”.