Ceci est une ancienne révision du document !
Gérer la sécurité d'une installation ubuntu avec une clé usb
Ici nous verrons comment paramétrer le verrouillage/déverrouillage d'une installation d'Ubuntu avec une clé USB.
Décrypter automatiquement une partition cryptée au démarrage
Si vous possédez une installation d'Ubuntu sur partition LUKS (Linux Unified Key Setup) et que vous en avez marre de taper le mot de passe à chaque démarrage, vous pouvez paramétrer une clé usb afin de vous authentifier automatiquement si cette dernière est branchée!
Si cette dernière n'est pas branchée, le mot de passe vous sera demandé.
Prérequis
- Une partition de type LUKS avec ubuntu d'installé dessus
- Une partition de boot séparée
- Une clé usb ou un support amovible (testé avec carte SD et clé usb)
Vous pouvez avoir une installation de windows à coté. Ceci ne posera pas de soucis.
Etape 1 : Préparer la clé
De plus, soyez attentifs aux commandes, et ne validez celles-ci que lorsque vous-vous êtes relu! Un risque de perte de données existe si vous faites des erreurs de code!
Créez une partition vierge de type ext4[3/2] d'au moins 1Mo sur le support. Utilisez gparted par exemple.
Attention, /dev/sdb représente la clé en entier, n'oubliez pas de spécifier le numéro de partition (sdb1, sdf2, sdc4… tout dépend de votre clé)
Montez la clé
mkdir /mnt/usb mount /dev/sdb1 /mnt/usb
Créez un fichier "d'authentification" de 256octet sur la clé.
dd if=/dev/random of=/mnt/usb/.authkey bs=1 count=256
Puis démontezla clé.
sync umount /mnt/usb
Etape 2 : Préparer la séquence de démarrage
Editez le fichier /etc/initramfs-tools/modules avec les droits root
sudo gedit /etc/initramfs-tools/modules
Et ajoutez les lignes suivantes au fichier.
- Si vous utilisez une carte SD:
mmc_core sdhci mmc_block aes_i586 sha256 dm_mod dm_crypt
- Si vous utilisez une clé USB:
usbcore ohci_hcd ehci_hcd usb_storage sd_mod aes_i586 sha256 dm_mod dm_crypt
Ajoutez la nouvelle configuration au système.
update-initramfs -v -u
Etape 3 : Paramétrer le démarrage
Redémarrez, et lorsque le système vous demandera de rentrer votre mot de passe, rentrez 3 fois un mot de passe erroné. Vous atterrirez sur une console avec marqué
(initramfs)
Montez la clé
mkdir /usb mount /dev/sdb1 /usb
Ajoutez le fichier d'authentification aux clé connues
cryptsetup luksAddKey /dev/sda2 /usb/.authkey
Démontez la clé et redémarrez
umount /usb sync reboot
Etape 4 : Paramétrer le système
Redémarrez normalement.
Notez l'UUID (identifiant de partition) de la partition obtenu par cette commande:
(Nous prendrons ici "9645b6cb-80db-457b-8d46-fbb9fd33dxxb". N'oubliez pas de le remplacer par le votre dans les commandes suivantes)
blkid /dev/sdb1
Éditez le fichier /etc/crypttab avec les droits root:
sudo gedit /etc/crypttab
Vous devriez avoir quelque chose du genre:
sda2_crypt UUID=9df4f-878ytju-ilk45q-gfbb9f-d33dxxb none luks
Dupliquez la ligne et changez le "none" par UUID=9645b6cb-80db-457b-8d46-fbb9fd33dxxb:.authkey Et rajoutez ",tries=3,keyscript=/usr/local/sbin/bootkeyscript" à la fin de la ligne Soit après "luks" dans notre exemple. Attention à la virgule qui est importante, et à ne pas avoir de duplicatat dans la ligne.
Notre fichier final ressemblera donc à quelque chose du genre:
sda2_crypt UUID=9df4f-878ytju-ilk45q-gfbb9f-d33dxxb UUID=9645b6cb-80db-457b-8d46-fbb9fd33dxxb:.authkey luks,tries=3,keyscript=/usr/local/sbin/bootkeyscript sda2_crypt UUID=9df4f-878ytju-ilk45q-gfbb9f-d33dxxb none luks
Téléchargez ce script et placez le dans /usr/local/sbin/bootkeyscript à l'aide des droits root.
sudo cp ~/Téléchargements/bootkeyscript /usr/local/sbin/bootkeyscript
(N'oubliez pas de changez l'emplacement du fichier téléchargé si "~/Téléchargements/bootkeyscript" n'est pas sa localisation)
Donnez-lui les droits d’exécution:
sudo chmod +x /usr/local/sbin/bootkeyscript
Réactualisez la séquence de démarrage:
update-initramfs -v -u
Redémarrez et profitez! ;)