# Live USB + persistence + luks + yubikey

**URL:** <https://www.debian-fr.org/t/live-usb-persistence-luks-yubikey/87182>\
**Category:** Support Debian\
**Tags:** clé-usb, luks-grub\
**Created:** [Septembre 25, 2022, 7:10 UTC](https://www.debian-fr.org/t/live-usb-persistence-luks-yubikey/87182 "2022-09-25T07:10:21Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![pouet300](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/p/ce73a5/32.png) [@pouet300](https://www.debian-fr.org/u/pouet300)\
**Post date:** [Septembre 25, 2022, 7:10 UTC](https://www.debian-fr.org/t/live-usb-persistence-luks-yubikey/87182/1 "2022-09-25T07:10:21Z")

</div>

Bonjour,

Je suis en train de créer un live-cd personnalisé sur clé USB, l’idée étant de créer des terminaux sécurisés d’accès à mes données qui se mettent à jour tout seul (au niveau de mes données personnelles) lorsqu’ils bootent sur mon réseau privé.  
Je suis franchement bien content du résultat pour le moment que j’ai obtenu en personnalisant un live-cd debian sid pour activer la persistence sur une partition encryptées via luks. Je donne la recette plus bas. J’exécute un script au démarrage qui va faire des git pull et des rsync pour récupérer mes données sur mon nas. J’ai aussi configuré mes mails, clés PGP etc… Bref c’est vraiment un chouette petit outil de secours si jamais une catastrophe survenait chez moi genre foudre qui crame tous les PC…

Disposant aussi d’une yubikey 5c nfc que je commence à mettre en oeuvre, j’aimerai bien faire une V2 dont la partition de persistence serait déverrouillée via yubikey + pin avec le slot 1, ce qui me permettrait de mettre un mot de passe bien plus fort qu’actuellement sur le slot 0 de luks.

Je pense que le fait que ça soit un live-cd complique tout, et je suis relativement noob sur le domaine.  
Le mieux que j’arrive à obtenir en suivant ce tuto ([Unlock LUKS volume with a YubiKey – Guy Rutenberg](https://www.guyrutenberg.com/2022/02/17/unlock-luks-volume-with-a-yubikey/)) c’est d’avoir mon live CD qui me demande mon password comme avant (yubikey ne marche pas) puis qui freeze, je dois faire un ctrl-c et là j’obtiens l’invite qui marche soit avec mon mdp du slot 0 soit avec auth via yubikey + pin du slot 1. J’aimerai bien sûr avoir ça dès le départ 😉

J’imagine que c’est parce que l’initramfs recréé n’est au final dispo qu’une fois que la partition persistence est déverouillée et que pour que cela marche il faudrait en fait le faire lors de la compilation du live-cd… Je cherche donc une piste si vous avez sur la manière de faire…  
J’imagine qu’il faudrait bidouiller après le lb chroot ou je dois déjà appliquer un workarround pour que la persistence fonctionne sous sid (ça marche directe sous stable)

Merci d’avance.

Compil du live CD:

sudo apt install live-build  
mkdir live && cd live  
mkdir auto  
cp /usr/share/doc/live-build/examples/auto/\* auto/

sudo lb clean

lb config --distribution sid   
–bootappend-live "  
boot=live   
config   
locales=fr\_LU.UTF-8   
keyboard-layouts=ch   
persistent=cryptsetup   
persistence-encryption=luks   
persistence"

nano config/package-lists/live.list.chroot  
#Ajout de :  
live-boot  
live-config  
live-config-systemd  
cryptsetup  
cryptsetup-initramfs  
firmware-linux-free  
task-kde-desktop

sudo lb bootstrap ; sudo lb chroot  
sudo su -  
echo dm-crypt \>\> chroot/etc/initramfs-tools/modules  
sed ‹&nbsp;/CRYPTSETUP=/s/^#//;s/=.\*/=y/&nbsp;› -i chroot/etc/cryptsetup-initramfs/conf-hook  
ln -s …/…/cryptsetup-initramfs/conf-hook chroot/etc/initramfs-tools/hooks/cryptsetup  
chroot chroot live-update-initramfs -u

lb installer ; lb binary

sudo dd if=live-image-amd64.hybrid.iso of=/dev/sdb bs=4M status=progress && sync

sudo fdisk --wipe never /dev/sdb  
#Creation de sdb3 pour luks puis  
sudo cryptsetup luksFormat -s 512 -h sha512 /dev/sdb3  
sudo cryptsetup luksOpen /dev/sdb3 data  
sudo dd if=/dev/urandom of=/dev/mapper/data status=progress  
sudo mkfs.ext4 -L persistence /dev/mapper/data  
sudo mount /dev/mapper/data /mnt

sudo su -  
echo «&nbsp;/ union&nbsp;» \> /mnt/persistence.conf  
sync  
umount /mnt  
cryptsetup luksClose /dev/mapper/data

---

<div class="post-metadata">

**Author:** ![anoskar](https://www.debian-fr.org/user_avatar/www.debian-fr.org/anoskar/32/12201_2.png) [@anoskar](https://www.debian-fr.org/u/anoskar)\
**Post date:** [Septembre 29, 2022, 8:18 UTC](https://www.debian-fr.org/t/live-usb-persistence-luks-yubikey/87182/2 "2022-09-29T08:18:58Z")

</div>

> [@pouet300](#):
>
> commence

Bonjour !  
Je te conseille ce lien qui m’aide pas mal actuellement

> **[Standard Debian live — liveng 1.0 documentation](https://liveng.readthedocs.io/en/latest/standard-live.html)**

Concernant l’initramfs, il y explique ceci :

> The initial RAM disk image : a RAM disk containing all the modules needed to mount the root filesystem and some scripts and binaries to perform the task. _initramfs-tools_ is responsible of creating such an image when updating the kernel or adding some modules to the system

J’ai actuellement un soucis car je travaille aussi à mettre en oeuvre une live key bootable custom.  
Je suis parti sur linux-live-kit : [https://www.linux-live.org/](https://www.linux-live.org/)  
Cette solution marche pour moi mais n’a rien à envier à live-build ( elle l’utilise au final )

Tous les articles que je lis parlent unaniment de monter une partition chiffrée sur le côté ( persistence + encryption)  
Ne peut-on pas chiffrer le root ( / ) ???

Je vais ouvrir un post sur le côté pour ne pas polluer ici, j’espère avoir pu t’aider, c’est un sujet qui semble «&nbsp;simple&nbsp;» mais ne l’est absolument pas, il faut bien comprendre certain sujets.

Bonne journée ! 🙂
