J’utilise un petit ordinateur de poche dans mon sac à dos. Cet appareil sert pour les tests et le développement, et il stocke des informations sensibles telles que des identifiants, des mots de passe et des clés d’accès. Je ne veux pas que ces données tombent entre de mauvaises mains. Contrairement au notebook, qui dispose d’un disque dur chiffré, mon ordinateur de poche n’utilise pas le chiffrement du disque. Le chiffrement consomme beaucoup de puissance et nécessite de désactiver le TRIM du SSD, ce qui nuit aux performances.
Alors pour contourner le problème j’ai décidé de créer un conteneur chiffré pour ne stocker que les informations sensibles. Ce conteneur est monté uniquement lorsque nécessaire, ce qui augmente la sécurité du système.
Création d’un conteneur chiffré
Vous devez installer le paquet cryptsetup. Pour cela, exécutez en tant que root :
sudo apt install cryptsetup
Ensuite, créez le conteneur chiffré. Tout d’abord, générez un fichier de 200 Mo (à titre d’exemple) :
dd if=/dev/urandom of=secure_container.img bs=1M count=200
Initialisez le LUKS :
cryptsetup luksFormat secure_container.img
Ouvrez le conteneur :
cryptsetup open secure_container.img secure_container
Formatez (ext4 comme exemple) :
mkfs.ext4 /dev/mapper/secure_container
Montez le conteneur :
mkdir -p /mnt/secure_container
mount /dev/mapper/secure_container /mnt/secure_container
À présent, le répertoire /mnt/secure_container est prêt à l’emploi. Vous pouvez y déplacer vos fichiers sensibles et créer des liens symboliques (par exemple, du répertoire ~/.ssh ou des clés d’accès ~/.aws).
Démonter le conteneur
Pour démonter, démontez le répertoire et fermez le conteneur :
umount /mnt/secure_container
cryptsetup close secure_container
Automatiser le montage et le démontage
Comme le montage et le démontage du conteneur se répètent beaucoup, il vaut la peine de créer des scripts et d’automatiser cette tâche. Les scripts nécessitent des droits root pour fonctionner. Vous pouvez configurer sudo pour ne pas demander de mot de passe pour ces scripts, ce qui facilite leur utilisation.
Script de montage (mount_secure_container.sh)
#!/bin/sh
[ "root" != "$USER" ] && exec sudo $0 "$@"
# Chemins d'exemple.
IMAGE_PATH="/home/user/secure_container.img"
MAPPER_NAME="secure_container"
MOUNT_POINT="/mnt/secure_container"
# Ouvre le conteneur.
cryptsetup open "$IMAGE_PATH" "$MAPPER_NAME" || {
echo "Échec lors de l'ouverture du conteneur."
exit 1
}
# Monte le conteneur.
mount "/dev/mapper/$MAPPER_NAME" "$MOUNT_POINT" || {
echo "Échec du montage du conteneur."
cryptsetup close "$MAPPER_NAME"
exit 1
}
echo "Conteneur monté sur: $MOUNT_POINT"
exit 0
Script de démontage (umount_secure_container.sh)
#!/bin/sh
[ "root" != "$USER" ] && exec sudo $0 "$@"
IMAGE_PATH="/home/user/secure_container.img"
MAPPER_NAME="secure_container"
MOUNT_POINT="/mnt/secure_container"
# Démonte le conteneur.
umount "$MOUNT_POINT" || {
echo "Échec du démontage. Vérifiez si un fichier est encore utilisé."
exit 1
}
# Ferme le conteneur.
cryptsetup close "$MAPPER_NAME" || {
echo "Échec de la fermeture du conteneur LUKS."
exit 1
}
echo "Conteneur démonté et fermé."
exit 0
Script pour l’arrêt (off)
Créez un script nommé off pour garantir que le conteneur est démonté avant l’arrêt :
#!/bin/sh
[ "root" != "$USER" ] && exec sudo $0 "$@"
sync
/home/user/bin/umount_encrypted.sh
poweroff
Ensuite, configurez sudo pour ne pas demander de mot de passe lors de l’exécution de ces scripts :
sudo visudo
Ajoutez les lignes :
user ALL=(ALL) NOPASSWD: /home/user/bin/mount_encrypted.sh
user ALL=(ALL) NOPASSWD: /home/user/bin/umount_encrypted.sh
user ALL=(ALL) NOPASSWD: /home/user/bin/off
N’oubliez pas de remplacer user dans les scripts par votre nom d’utilisateur.
Conclusion
Cette méthode maintient les données sensibles en sécurité et accessibles uniquement lorsque c’est nécessaire. Le conteneur chiffré facilite les sauvegardes et le transfert vers un autre ordinateur. Ainsi, vous combinez sécurité et praticité dans votre système.




