GNU/Linux >> Tutoriels Linux >  >> Debian

Comment chiffrer des répertoires/partitions avec eCryptfs sur Debian Squeeze

eCryptfs est un système de fichiers cryptographiques empilés de classe entreprise conforme à POSIX pour Linux. Vous pouvez l'utiliser pour chiffrer des partitions ainsi que des répertoires qui n'utilisent pas de partition propre, quel que soit le système de fichiers sous-jacent, le type de partition, etc. Ce tutoriel montre comment utiliser eCryptfs pour chiffrer un répertoire sur Debian Squeeze.

Je n'émets aucune garantie que cela fonctionnera pour vous !

1 Remarque préliminaire

Dans ce didacticiel, je chiffrerai mon répertoire personnel, /home/falko/, qui se trouve sur la partition / (c'est-à-dire que /home/falko/ est un répertoire ordinaire et n'utilise pas sa propre partition).

2 Installer eCryptfs

eCryptfs peut facilement être installé comme suit :

apt-get install ecryptfs-utils

3 Chiffrer un répertoire

Je vais maintenant chiffrer mon répertoire personnel /home/falko/. Comme il y a déjà des fichiers (non cryptés) dans ce répertoire, je dois en faire une sauvegarde afin de pouvoir les restaurer ultérieurement dans le répertoire /home/falko/ alors crypté (sinon ces fichiers ne peuvent pas être consultés/lus tant que le répertoire est crypté):

cp -pfr /home/falko/ /tmp/

Je peux maintenant chiffrer le répertoire /home/falko/ en le montant avec le type de système de fichiers ecryptfs :

mount -t ecryptfs /home/falko /home/falko

Lorsque vous faites cela pour la première fois, vous devrez répondre à quelques questions :

[email protected] :~# mount -t ecryptfs /home/falko /home/falko
Passphrase : <-- some_passphrase
Sélectionnez cipher :
 1) aes : blocksize = 16 ; taille de clé minimale = 16 ; max keysize = 32 (non chargé)
 2) blowfish : blocksize = 16 ; taille de clé minimale = 16 ; max keysize = 56 (non chargé)
 3) des3_ede : blocksize = 8 ; taille de clé minimale = 24 ; max keysize = 24 (non chargé)
 4) twofish : blocksize = 16 ; taille de clé minimale = 16 ; max keysize = 32 (non chargé)
 5) cast6 : blocksize = 16 ; taille de clé minimale = 16 ; max keysize = 32 (non chargé)
 6) cast5 : blocksize = 8 ; taille de clé minimale = 5 ; max keysize = 16 (non chargé)
Sélection [aes] : <-- ENTER
Sélectionnez key bytes :
 1) 16
 2) 32
 3) 24
Sélection [16] : <-- ENTER
Activer le passthrough en texte clair (y/n) [n] : <-- ENTER
Enable filename encryption (y/n) [n] : <-- ENTER
 Tentative de montage avec les options suivantes :
  ecryptfs_unlink_sigs
  ecryptfs_key_bytes=16
  ecryptfs_cipher=aes
  ecryptfs_sig=bd28c38da9fc938b
AVERTISSEMENT : Selon la contenu de [/root/.ecryptfs/sig-cache.txt],
il semble que vous n'avez jamais monté avec cette clé
avant. Cela pourrait signifier que vous avez saisi votre
phrase de passe mal .

Souhaitez-vous continuer avec le montage (oui/non) ? : <-- oui
Souhaitez-vous ajouter sig [bd28c38da9fc938b] à 
[/root/.ecryptfs/sig-cache.txt]
afin d'éviter cet avertissement à l'avenir ( Oui Non)? : <-- oui
Nouvelle signature ajoutée au fichier cache de signature utilisateur 
 eCryptfs montés 
[email protected] :~#

Jetez un oeil à la sortie de

monter

et vous devriez voir que /home/falko/ est maintenant crypté :

[email protected] :~# mount
/dev/sda1 on / type ext3 (rw,errors=remount-ro)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid ,mode=0755)
proc sur /proc type proc (rw,noexec,nosuid,nodev)
sysfs sur /sys type sysfs (rw,noexec,nosuid,nodev)
udev sur / dev type tmpfs (rw,mode=0755)
tmpfs sur /dev/shm type tmpfs (rw,nosuid,nodev)
devpts sur /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
/home/falko sur /home/falko type ecryptfs (rw,ecryptfs_sig=bd28c38da9fc938b,ecryptfs_cipher=aes,ecryptfs_key_bytes=16,ecryptfs_unlink_sigs)
[email protected] :~#

Restaurons notre sauvegarde dans le répertoire désormais chiffré /home/falko/ et supprimons ensuite la sauvegarde :

cp -pfr /tmp/falko/ /home/
rm -fr /tmp/falko/

À des fins de test, copions un autre fichier, par ex. /etc/hosts, vers /home/falko/ pour vérifier s'il est vraiment crypté :

cp /etc/hosts /home/falko

Alors que /home/falko/ est monté avec le type de système de fichiers ecryptfs, il devrait être possible de lire le contenu de /home/falko/hosts :

cat /home/falko/hosts

Démontez maintenant /home/falko/...

umount /home/falko

... et réessayez de lire /home/falko/hosts, et vous devriez obtenir des informations cryptées :

cat /home/falko/hosts
?æËÊÀû5)í}Ó`§wʽ.ÂçµÔyiIezz°Ñd¦R,`Ëi,0ñ*úÐ%^-']YÑj÷#6 ÷¨Y-]«é²ùô 

4 Comment monter automatiquement une partition chiffrée au démarrage

Bien sûr, nous ne voulons pas monter /home/falko/ manuellement à chaque fois - ce serait mieux s'il pouvait être monté automatiquement au démarrage. Pour ce faire, nous avons besoin d'un fichier de phrase secrète, et pour des raisons de sécurité, je souhaite que ce fichier de phrase secrète soit situé sur une clé USB.

Branchez une clé USB et lancez

fdisk -l

pour connaître son nom d'appareil et son type de système de fichiers :

[email protected] :~# fdisk -l

Disque /dev/sda : 32,2 Go, 32212254720 octets
255 têtes, 63 secteurs/piste, 3 916 cylindres
Unités = cylindres de 16 065 * 512 = 8225 280 octets
Taille de secteur (logique/physique) : 512 octets / 512 octets 
Taille d'E/S (minimale/optimale) : 512 octets / 512 octets
Identificateur de disque:0x00035e35

Démarrage du périphérique Blocs de fin des blocs ID
/ dev / sda1 * 1 3793 30461952 83 Linux
/ dev / sda2 3793 3917 992257 5 étendu
/dev/sda5            3793        3917      992256   82  Linux swap / Solaris

Disque /dev/sdb : 8086 Mo, 8086617600 octets
255 têtes, 63 93 secteurs/piste = cylindres de 16 065 * 512 = 8225 280 octets
Taille de secteur (logique/physique) : 512 octets / 512 octets 
Taille d'E/S (minimale/optimale) : 512 octets / 512 octets
Disque identifiant : 0x000e439f

   Démarrage de l'appareil      Démarrer         Fin      Blocs   I d  Système
/dev/sdb1               1         983     7895916    b  W95 FAT32
[email protected] :~#

Dans mon cas, le nom du périphérique est /dev/sdb1, et il utilise un système de fichiers FAT32.

Montons la clé USB sur /mnt/usb :

mkdir /mnt/usb
mount /dev/sdb1 /mnt/usb

Jetez un oeil à la sortie de

monter

... et vous devriez voir qu'il a été monté avec le type de système de fichiers vfat (FAT32) - nous aurons besoin de ces informations plus tard pour notre fichier /etc/fstab :

[email protected] :~# mount
/dev/sda1 on / type ext3 (rw,errors=remount-ro)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid ,mode=0755)
proc sur /proc type proc (rw,noexec,nosuid,nodev)
sysfs sur /sys type sysfs (rw,noexec,nosuid,nodev)
udev sur / dev type tmpfs (rw,mode=0755)
tmpfs sur /dev/shm type tmpfs (rw,nosuid,nodev)
devpts sur /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
/dev/sdb1 sur /mnt/usb type vfat (rw)
[email protected] :~#

Examinez maintenant le contenu de /root/.ecryptfs/sig-cache.txt :

cat /root/.ecryptfs/sig-cache.txt
bd28c38da9fc938b

Nous avons besoin de cette signature pour le fichier /root/.ecryptfsrc que nous créons comme suit :

vi /root/.ecryptfsrc

Assurez-vous d'utiliser la signature du fichier /root/.ecryptfs/sig-cache.txt dans la ligne ecryptfs_sig :

key=passphrase:passphrase_passwd_file=/mnt/usb/passwd_file.txtecryptfs_sig=bd28c38da9fc938becryptfs_cipher=aesecryptfs_key_bytes=16ecryptfs_passthrough=necryptfs_enable_filename_crypto=n

Nous créons maintenant le fichier de phrase secrète sur notre clé USB :

vi /mnt/usb/passwd_file.txt
passphrase_passwd=some_passphrase

Assurez-vous d'utiliser la phrase secrète correcte, c'est-à-dire la phrase secrète que vous utiliseriez si vous montiez le répertoire manuellement.

Ouvrez ensuite /etc/fstab...

vi /etc/fstab

... et ajoutez les deux lignes suivantes (assurez-vous d'utiliser le bon type de système de fichiers pour votre clé USB - vfat dans mon cas) :

[...]/dev/sdb1 /mnt/usb vfat ro 0 0/home/falko /home/falko ecryptfs defaults 0 0 

(Il est important que la ligne de la clé USB vienne avant la ligne de la partition chiffrée car la clé USB doit être montée avant que la partition chiffrée ne puisse être montée !)

Redémarrez ensuite le système :

redémarrer

Si tout se passe bien, votre partition cryptée devrait être automatiquement montée après le redémarrage. Cependant, il est possible que votre système ne puisse pas monter votre clé USB lors du démarrage, ce qui signifie que votre partition chiffrée ne peut pas non plus être montée. Si cela se produit, éditez /etc/rc.local (ce script est exécuté à la fin du processus de démarrage)...

vi /etc/rc.local

... et ajoutez la ligne /bin/mount -a avant la ligne exit 0 :

#!/bin/sh -e## rc.local## Ce script est exécuté à la fin de chaque niveau d'exécution multi-utilisateur.# Assurez-vous que le le script "exit 0" en cas de succès ou toute autre valeur# en cas d'erreur.## Pour activer ou désactiver ce script, modifiez simplement les bits d'exécution#.## Par défaut, ce script ne fait rien./bin/mount -aexit 0 

Cela (re-)montera toutes les partitions (y compris votre clé USB et la partition chiffrée) à la fin du processus de démarrage.

  • eCryptfs :https://launchpad.net/ecryptfs
  • Debian :http://www.debian.org/

Debian
  1. Comment chiffrer le répertoire avec EncFS sur Debian 9 Stretch Linux

  2. Comment configurer un pare-feu avec UFW sur Debian 10

  3. Comment configurer un pare-feu avec UFW sur Debian 9

  4. Comment installer Automad CMS avec Apache et Lets encrypt sur Debian 10

  5. Comment sauvegarder des bases de données MySQL avec mylvmbackup sur Debian Squeeze

Comment chiffrer vos données avec EncFS sur Debian 8 (Jessie)

Comment protéger les répertoires par mot de passe avec mod_authn_dbd et MySQL sur Apache (Debian 8)

Comment installer Shopware avec NGINX et Lets encrypt sur Debian 9

Comment configurer le certificat SSL Let's Encrypt avec Nginx sur Debian 10 / Debian 9

Comment chiffrer des partitions Linux avec VeraCrypt sur Debian 10

Comment chiffrer des partitions Linux avec VeraCrypt sur Ubuntu