GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment chiffrer des répertoires avec eCryptfs sur Ubuntu 16.04

Ce tutoriel montre comment utiliser eCryptfs pour chiffrer un répertoire sur Ubuntu 16.04 (Xenial Xerus). 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 et également 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.

1 Remarque préliminaire

Dans ce tutoriel, je vais chiffrer un nouveau répertoire /home/secure. il s'agit d'un répertoire ordinaire et n'utilise pas de partition propre.

2 Installer eCryptfs

eCryptfs peut facilement être installé comme suit :

apt-get -y install ecryptfs-utils

3 Chiffrer un répertoire avec eCryptfs

Je vais maintenant chiffrer un nouveau répertoire /home/secure/. Créez le répertoire avec la commande mkdir :

mkdir /home/secure

Si vous utilisez un répertoire existant, il se peut qu'il y ait déjà des fichiers (non chiffrés) dans ce répertoire. Dans ce cas, vous devez en faire une sauvegarde afin de pouvoir les restaurer ultérieurement dans le répertoire /home/secure/ alors crypté (sinon ces fichiers ne pourront pas être consultés/lus tant que le répertoire est crypté) :

cp -pfr /home/secure/ /tmp/

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

mount -t ecryptfs /home/secure /home/secure

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

[email protected]:~# mount -t ecryptfs /home/secure /home/secure
Passphrase: <-- Enter a secure password
Select cipher:
1) aes: blocksize = 16; min keysize = 16; max keysize = 32
2) blowfish: blocksize = 8; min keysize = 16; max keysize = 56
3) des3_ede: blocksize = 8; min keysize = 24; max keysize = 24
4) twofish: blocksize = 16; min keysize = 16; max keysize = 32
5) cast6: blocksize = 16; min keysize = 16; max keysize = 32
6) cast5: blocksize = 8; min keysize = 5; max keysize = 16
Selection [aes]: <-- Press ENTER
Select key bytes:
1) 16
2) 32
3) 24
Selection [16]: <-- 32
Enable plaintext passthrough (y/n) [n]: <-- Press ENTER
Enable filename encryption (y/n) [n]: <-- Press ENTER
Attempting to mount with the following options:
ecryptfs_unlink_sigs
ecryptfs_key_bytes=16
ecryptfs_cipher=aes
ecryptfs_sig=bd28c38da9fc938b
Mounted eCryptfs
[email protected]:~#

Les paramètres par défaut que j'ai choisis ici chiffrent le contenu du fichier mais pas le nom du fichier. Si vous souhaitez également sécuriser les noms de fichiers, veuillez activer l'option de cryptage des noms de fichiers lors de la configuration ci-dessus.

Jetez un oeil à la sortie de

mount

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

[email protected]:~# mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,nosuid,relatime,size=1002992k,nr_inodes=250748,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=204440k,mode=755)
/dev/mapper/server1--vg-root on / type ext4 (rw,relatime,errors=remount-ro,data=ordered,jqfmt=vfsv0,usrjquota=quota.user,grpjquota=quota.group)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/lib/systemd/systemd-cgroups-agent,name=systemd,nsroot=/)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,pids,nsroot=/)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer,nsroot=/)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio,nsroot=/)
cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb,nsroot=/)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset,nsroot=/)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct,nsroot=/)
cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls,net_prio,nsroot=/)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory,nsroot=/)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event,nsroot=/)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices,nsroot=/)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=27,pgrp=1,timeout=0,minproto=5,maxproto=5,direct)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime)
mqueue on /dev/mqueue type mqueue (rw,relatime)
fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)
/dev/sda1 on /boot type ext2 (rw,relatime,block_validity,barrier,user_xattr,acl)
tmpfs on /run/lxcfs/controllers type tmpfs (rw,relatime,size=100k,mode=700)
devices on /run/lxcfs/controllers/devices type cgroup (rw,relatime,devices,nsroot=/)
perf_event on /run/lxcfs/controllers/perf_event type cgroup (rw,relatime,perf_event,nsroot=/)
memory on /run/lxcfs/controllers/memory type cgroup (rw,relatime,memory,nsroot=/)
net_cls,net_prio on /run/lxcfs/controllers/net_cls,net_prio type cgroup (rw,relatime,net_cls,net_prio,nsroot=/)
cpu,cpuacct on /run/lxcfs/controllers/cpu,cpuacct type cgroup (rw,relatime,cpu,cpuacct,nsroot=/)
cpuset on /run/lxcfs/controllers/cpuset type cgroup (rw,relatime,cpuset,nsroot=/)
hugetlb on /run/lxcfs/controllers/hugetlb type cgroup (rw,relatime,hugetlb,nsroot=/)
blkio on /run/lxcfs/controllers/blkio type cgroup (rw,relatime,blkio,nsroot=/)
freezer on /run/lxcfs/controllers/freezer type cgroup (rw,relatime,freezer,nsroot=/)
pids on /run/lxcfs/controllers/pids type cgroup (rw,relatime,pids,nsroot=/)
name=systemd on /run/lxcfs/controllers/name=systemd type cgroup (rw,relatime,xattr,release_agent=/lib/systemd/systemd-cgroups-agent,name=systemd,nsroot=/)
lxcfs on /var/lib/lxcfs type fuse.lxcfs (rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other)
tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,size=204440k,mode=700,uid=1000,gid=1000)
tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,size=204440k,mode=700)
/home/secure on /home/secure type ecryptfs (rw,relatime,ecryptfs_sig=bd28c38da9fc938b,ecryptfs_cipher=aes,ecryptfs_key_bytes=32,ecryptfs_unlink_sigs)
[email protected]:~#

Lors de l'utilisation d'un répertoire existant :restaurons notre sauvegarde dans le répertoire désormais chiffré /home/secure/ et supprimons ensuite la sauvegarde :

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

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

cp /etc/hosts /home/secure

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

cat /home/secure/hosts

Démontez maintenant /home/secure/...

umount /home/secure

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

cat /home/secure/hosts

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

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

  2. Sécuriser Nginx avec Let's Encrypt sur Ubuntu 18.04 - Comment faire ?

  3. Comment installer Let's Encrypt sur Ubuntu 20.04 avec Apache

  4. Comment sécuriser Nginx avec Let's Encrypt sur Ubuntu 20.04

  5. Comment sécuriser Apache avec Lets Encrypt sur Ubuntu 18.04

Comment installer Nginx avec Let's Encrypt TLS/SSL sur Ubuntu 20.04

Comment installer Let's Encrypt SSL sur Ubuntu avec Apache

Comment installer Let's Encrypt SSL avec Nginx sur Ubuntu 16.04 LTS

Comment sécuriser Nginx avec Let's Encrypt sur Ubuntu 20.04

Comment sécuriser Apache avec Let's Encrypt sur Ubuntu 20.04

Comment sécuriser votre site Web avec Let's Encrypt sur Ubuntu 20.04