Wie man Verzeichnisse mit eCryptfs auf Ubuntu 16.04 verschlüsselt.

Dieses Tutorial zeigt, wie man eCryptfs verwendet, um ein Verzeichnis auf Ubuntu 16.04 (Xenial Xerus) zu verschlüsseln. eCryptfs ist ein POSIX-kompatibles, gestapeltes kryptographisches Dateisystem für Linux. Sie können damit Partitionen und auch Verzeichnisse verschlüsseln, die keine eigene Partition verwenden, unabhängig vom zugrunde liegenden Dateisystem, Partitionstyp usw.

1 Vorbemerkung

In diesem Tutorial werde ich ein neues Verzeichnis /home/secure verschlüsseln. Dies ist ein gewöhnliches Verzeichnis und verwendet keine eigene Partition.

2 Installation von eCryptfs

eCryptfs kann wie folgt einfach installiert werden:

apt-get -y install ecryptfs-utils

3 Verschlüsseln eines Verzeichnisses mit eCryptfs

Ich werde nun ein neues Verzeichnis /home/secure/ verschlüsseln. Erstellen Sie das Verzeichnis mit dem Befehl mkdir:

mkdir /home/secure

Wenn Sie ein bestehendes Verzeichnis verwenden, dann kann es bereits (unverschlüsselte) Dateien in diesem Verzeichnis geben. In diesem Fall müssen Sie ein Backup von ihnen machen, damit Sie sie später in das dann verschlüsselte Verzeichnis /home/secure/ wiederherstellen können (sonst können diese Füllungen nicht aufgerufen/gelesen werden, während das Verzeichnis verschlüsselt ist):

cp -pfr /home/secure/ /tmp/

Ich kann nun das Verzeichnis /home/secure/ verschlüsseln, indem ich es mit dem Dateisystemtyp ecryptfs mounte:

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

Wenn Sie dies zum ersten Mal tun, müssen Sie einige Fragen beantworten:

root@server1:~# 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
root@server1:~#

Die Standardeinstellungen, die ich hier gewählt habe, verschlüsseln den Inhalt der Datei, nicht aber den Dateinamen. Wenn Sie auch die Dateinamen geschützt halten möchten, aktivieren Sie bitte die Option zur Verschlüsselung von Dateinamen während der obigen Installation.

Werfen Sie einen Blick auf die Ausgabe von

mount

und du solltest sehen, dass /home/secure/ jetzt verschlüsselt ist:

root@server1:~# 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)
root@server1:~#

Bei Verwendung eines vorhandenen Verzeichnisses: Lasst uns unser Backup in das nun verschlüsselte Verzeichnis /home/secure/ zurückladen und das Backup anschließend löschen:

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

Zu Testzwecken kopieren wir eine andere Datei, z.B. /etc/hosts, nach /home/secure/, um zu überprüfen, ob sie wirklich verschlüsselt wird:

cp /etc/hosts /home/secure

Während /home/secure/ mit dem Dateisystemtyp ecryptfs eingebunden ist, sollte es möglich sein, den Inhalt von /home/secure/hosts zu lesen:

cat /home/secure/hosts

eCryptFS testen

Deinstallieren Sie nun /home/secure/…..

umount /home/secure

…. und versuche erneut, /home/secure/hosts zu lesen, und du solltest ein paar kryptische Sachen besorgen:

cat /home/secure/hosts

4 Links

Das könnte Dich auch interessieren …