EncFS/README.md

206 lines
5.7 KiB
Markdown
Raw Normal View History

2026-06-26 15:56:28 +02:00
markdown
Copier
# 🔐 EncFS - Chiffrement de fichiers
## 📌 Description
**EncFS** est un outil de **chiffrement transparente** de fichiers en espace utilisateur (FUSE). Il permet de créer un **système de fichiers chiffré** monté dans un répertoire, accessible comme un dossier normal, mais dont le contenu est **totalement chiffré** sur le disque.
Ce guide explique comment :
- Installer EncFS.
- Créer un conteneur chiffré sur un **support amovible** (clé USB, carte SD).
- Automatiser le montage/démontage via un script (`coffre`).
---
---
## 🛠 Prérequis
Composant | Description |
|--------------------|-----------------------------------------------------------------------------|
| **Système Linux** | Compatible avec **FUSE** (la plupart des distributions modernes). |
| **Droits root** | Nécessaire pour installer des paquets et configurer des scripts système. |
| **Support amovible** | Clé USB ou carte SD (formatée ou non). |
| **FUSE** | Généralement installé par défaut. Sinon : `sudo apt install fuse`. |
---
## 🚀 Installation
### 1⃣ Installer EncFS
```bash
2023-05-04 11:04:04 +02:00
sudo apt install encfs
```
2026-06-26 15:56:28 +02:00
📁 Préparation des répertoires
1⃣ Créer les répertoires
Dans votre répertoire personnel, créez :
```bash
mkdir ~/encrypted # Répertoire chiffré (stockage des données)
mkdir ~/decrypted # Répertoire déchiffré (accès aux données)
2023-05-04 11:04:04 +02:00
```
2023-09-27 09:41:32 +02:00
2023-05-04 10:57:06 +02:00
2026-06-26 15:56:28 +02:00
2⃣ Formater le support amovible (optionnel)
Si vous souhaitez stocker la clé de chiffrement (passphrase.bin) sur un support amovible (ex: clé USB ou carte SD) :
```bash
dd if=/dev/urandom of=/media/xavier/Secure/passphrase.bin bs=16k count=1
2023-05-04 11:04:04 +02:00
```
2026-06-26 15:56:28 +02:00
⚠️ Attention :
Remplacez /media/xavier/Secure/ par le chemin vers votre support amovible.
Cette commande écrase le fichier passphrase.bin s'il existe déjà.
🔒 Création du conteneur EncFS
1⃣ Initialiser le conteneur
Exécutez la commande suivante pour lier les répertoires encrypted et decrypted :
```bash
2023-05-04 10:57:06 +02:00
encfs ~/encrypted ~/decrypted
2023-05-04 11:04:04 +02:00
```
2023-05-04 10:57:06 +02:00
2026-06-26 15:56:28 +02:00
2⃣ Choisir le mode de sécurité
2023-05-04 10:57:06 +02:00
2026-06-26 15:56:28 +02:00
Sélectionnez le mode p (paranoïaque) pour une sécurité maximale.
Définissez un mot de passe temporaire (sera remplacé par passphrase.bin plus tard).
🔑 Génération de la passphrase
1⃣ Générer passphrase.bin
Utilisez ssh-keygen pour créer une clé RSA qui servira de passphrase :
```bash
ssh-keygen -t rsa -f passphrase.bin
2023-09-27 09:41:32 +02:00
```
2023-05-04 10:57:06 +02:00
2026-06-26 15:56:28 +02:00
💡 Où placer passphrase.bin ?
Sur un support amovible (recommandé) : /media/$USER/Usb/passphrase.bin.
Ou dans un répertoire sécurisé de votre système.
2⃣ Associer passphrase.bin au conteneur EncFS
Exécutez la commande suivante pour lier la passphrase au conteneur :
```bash
echo -n "Enter current password: " && read -s PASSWORD && (echo \$PASSWORD && base64 -w 0 passphrase.bin) | encfsctl autopasswd ~/.encrypted
2023-09-27 09:41:32 +02:00
```
2026-06-26 15:56:28 +02:00
⚠️ Explications :
read -s PASSWORD : Demande votre mot de passe temporaire (celui défini lors de la création du conteneur).
base64 -w 0 passphrase.bin : Encode la passphrase pour une utilisation sécurisée.
3⃣ Monter le conteneur avec passphrase.bin
Désormais, vous pouvez monter le conteneur sans mot de passe :
```bash
base64 -w 0 passphrase.bin | encfs -S ~/.encrypted ~/decrypted
2023-09-27 09:41:32 +02:00
```
2023-05-04 10:57:06 +02:00
2026-06-26 15:56:28 +02:00
4⃣ Démontage manuel
Pour fermer l'accès au conteneur :
```bash
fusermount -u ~/decrypted
2023-05-04 11:04:04 +02:00
```
2026-06-26 15:56:28 +02:00
🤖 Automatisation via le script coffre
1⃣ Préparer le script
Créez un fichier nommé coffre dans /usr/local/sbin/ :
```bash
sudo nano /usr/local/sbin/coffre
2023-05-04 11:04:04 +02:00
```
2023-09-27 09:41:32 +02:00
2026-06-26 15:56:28 +02:00
Collez le contenu suivant (exemple de script) :
```bash
#!/bin/bash
MOUNT_POINT="\$HOME/decrypted"
ENCRYPTED_DIR="\$HOME/encrypted"
PASSPHRASE_FILE="/media/\$USER/SECURE/passphrase.bin"
case "\$1" in
open)
if [ -f "\$PASSPHRASE_FILE" ]; then
base64 -w 0 "\$PASSPHRASE_FILE" | encfs -S "\$ENCRYPTED_DIR" "\$MOUNT_POINT"
echo "✅ Coffre ouvert : \$MOUNT_POINT"
else
echo "❌ Fichier passphrase.bin introuvable sur le support amovible."
exit 1
fi
;;
close)
fusermount -u "\$MOUNT_POINT"
echo "🔒 Coffre fermé."
;;
*)
echo "Usage: coffre {open|close}"
exit 1
;;
esac
2023-05-04 11:04:04 +02:00
```
2026-06-26 15:56:28 +02:00
Rendez le script exécutable :
```bash
sudo chmod +x /usr/local/sbin/coffre
2023-05-04 11:04:04 +02:00
```
2026-06-26 15:56:28 +02:00
2⃣ Labeliser le support amovible
Insérez votre clé USB ou carte SD.
Vérifiez son label avec :
```bash
lsblk -o NAME,LABEL,MOUNTPOINT
2023-05-04 11:04:04 +02:00
```
2026-06-26 15:56:28 +02:00
Si nécessaire, labelisez-le en SECURE :
```bash
sudo e2label /dev/sdX1 SECURE
2023-05-04 11:04:04 +02:00
```
2023-09-27 09:48:48 +02:00
2026-06-26 15:56:28 +02:00
⚠️ Remplacez /dev/sdX1 par le périphérique réel (ex: /dev/sdb1).
Montez le support (si ce n'est pas automatique) :
```bash
mkdir -p /media/\$USER/SECURE
sudo mount LABEL=SECURE /media/\$USER/SECURE
```
3⃣ Utilisation du script
coffre open
Monte le conteneur chiffré (nécessite que passphrase.bin soit présent sur le support amovible).
coffre close
Démonte le conteneur.
⚠️ Limitations et Sécurité
Point à vérifier
Description
Support amovible
Le script coffre suppose que le support est monté sur /media/$USER/SECURE/.
Permissions
Assurez-vous que l'utilisateur a les droits pour monter/démonter FUSE.
Sauvegarde de passphrase.bin
Perte = données inaccessibles ! Conservez une copie sécurisée.
Chiffrement du support
Le support contenant passphrase.bin n'est pas chiffré par défaut. Utilisez LUKS pour le sécuriser.
2023-09-27 09:48:48 +02:00
2026-06-26 15:56:28 +02:00
📜 Licence
Ce guide et les scripts associés sont sous licence MIT. Vous êtes libre de les utiliser, modifier et distribuer.