Verschlüsseln Sie Ihre Daten mit EncFS auf Ubuntu 16.04.

EncFS bietet ein verschlüsseltes Dateisystem im Benutzerbereich. Es läuft ohne spezielle Berechtigungen und verwendet die FUSE-Bibliothek und das Linux-Kernelmodul, um die Dateisystem-Schnittstelle bereitzustellen. Es handelt sich um ein Pass-through-Dateisystem, nicht um ein verschlüsseltes Blockgerät, d.h. es wird auf einem bestehenden Dateisystem erstellt. Dieses Tutorial zeigt, wie Sie EncFS unter Ubuntu 16.04 (Xenial Xerus) zur Verschlüsselung Ihrer Daten verwenden können.

1 Vorbemerkung

Ich verwende in diesem Tutorial den Benutzernamen falko auf meinem Ubuntu 16.04 System. Ein Sicherheitsaudit hat einige Probleme bei der aktuellen Implementierung von encfs aufgedeckt. Bitte lesen Sie die Sicherheitswarnung unten, um zu entscheiden, ob die Art und Weise, wie Sie encfs verwenden möchten, von diesen Problemen betroffen ist. Eine Alternative zu Encfs sind ecryptfs (https://launchpad.net/ecryptfs), die ich in einem anderen Tutorial behandeln werde.

Verschlüsselt Sicherheitsinformationen

„Laut einem Sicherheitsaudit von Taylor Hornby (Defuse Security) ist die aktuelle Implementierung von Encfs anfällig oder potenziell anfällig für mehrere Arten von Angriffen. So kann beispielsweise ein Angreifer mit Lese-/Schreibzugriff auf verschlüsselte Daten die Entschlüsselungskomplexität für später verschlüsselte Daten verringern, ohne dass dies von einem legitimen Benutzer bemerkt wird, oder die Timing-Analyse zum Ableiten von Informationen nutzen, und bis diese Probleme behoben sind, sollten Enkodierungen nicht als sichere Heimat für sensible Daten in Szenarien betrachtet werden, in denen solche Angriffe möglich sind.

2 Installation von EncFS

EncFS kann wie folgt installiert werden (wir benötigen root-Rechte, daher verwenden wir sudo):

sudo apt-get -y install encfs

Sie sollten nun einen Blick auf die EncFS-Manualseite werfen, um sich mit den Optionen vertraut zu machen:

man encfs

3 Verwenden von EncFS

Ich werde nun die Verzeichnisse, die in meinem Heimatverzeichnis verschlüsselt und entschlüsselt sind, erstellen:

mkdir -p ~/encrypted
mkdir -p ~/decrypted

Das entschlüsselte Verzeichnis dient als Einhängepunkt für das verschlüsselte Verzeichnis. Um ~/verschlüsselt nach ~/entschlüsselt einzubinden, führen Sie einfach aus:

encfs ~/encrypted ~/decrypted

Wenn Sie diesen Befehl zum ersten Mal ausführen, wird das EncFS-Setup gestartet und Sie müssen ein Passwort für das verschlüsselte Volume definieren:

[email protected]:~$ encfs ~/encrypted ~/decrypted
Creating new encrypted volume.
Please choose from one of the following options:
enter "x" for expert configuration mode,
enter "p" for pre-configured paranoia mode,
anything else, or an empty line will select standard mode.
?> <-- p
Paranoia configuration selected.
Configuration finished. The filesystem to be created has
the following properties:
Filesystem cipher: "ssl/aes", version 3:0:2
Filename encoding: "nameio/block", version 4:0:2
Key Size: 256 bits
Block Size: 1024 bytes, including 8 byte MAC header
Each file contains 8 byte header with unique IV data.
Filenames encoded using IV chaining mode.
File data IV is chained to filename IV.
File holes passed through to ciphertext.
-------------------------- WARNING --------------------------
The external initialization-vector chaining option has been
enabled. This option disables the use of hard links on the
filesystem. Without hard links, some programs may not work.
The programs 'mutt' and 'procmail' are known to fail. For
more information, please see the encfs mailing list.
If you would like to choose another configuration setting,
please press CTRL-C now to abort and start over.
Now you will need to enter a password for your filesystem.
You will need to remember this password, as there is absolutely
no recovery mechanism. However, the password can be changed
later using encfsctl.
New Encfs Password: <-- Enter a secure password here
Verify Encfs Password: <-- Enter the secure password a second time

Achten Sie darauf, dass Sie sich das Passwort merken, denn es gibt keine Möglichkeit, Ihre verschlüsselten Daten wiederherzustellen, wenn Sie das Passwort vergessen!

Sie sollten nun das EncFS-Volumen in den Ausgängen von

mount
[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=1002996k,nr_inodes=250749,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)
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/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/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/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices,nsroot=/)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer,nsroot=/)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event,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/pids type cgroup (rw,nosuid,nodev,noexec,relatime,pids,nsroot=/)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=31,pgrp=1,timeout=0,minproto=5,maxproto=5,direct)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime)
mqueue on /dev/mqueue type mqueue (rw,relatime)
debugfs on /sys/kernel/debug type debugfs (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)
pids on /run/lxcfs/controllers/pids type cgroup (rw,relatime,pids,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=/)
perf_event on /run/lxcfs/controllers/perf_event type cgroup (rw,relatime,perf_event,nsroot=/)
freezer on /run/lxcfs/controllers/freezer type cgroup (rw,relatime,freezer,nsroot=/)
devices on /run/lxcfs/controllers/devices type cgroup (rw,relatime,devices,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=/)
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=/)
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)
encfs on /home/falko/decrypted type fuse.encfs (rw,nosuid,nodev,relatime,user_id=1001,group_id=1001)
[email protected]:~$

und

df -h
[email protected]:~$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 980M 0 980M 0% /dev
tmpfs 200M 6.0M 194M 3% /run
/dev/mapper/server1--vg-root 27G 1.7G 24G 7% /
tmpfs 999M 0 999M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 999M 0 999M 0% /sys/fs/cgroup
/dev/sda1 472M 55M 393M 13% /boot
tmpfs 200M 0 200M 0% /run/user/1000
encfs 27G 1.7G 24G 7% /home/falko/decrypted

Um Ihre Daten verschlüsselt zu speichern, legen Sie Ihre Daten in das entschlüsselte Verzeichnis, genau wie bei einem normalen Verzeichnis:

cd ~/decrypted
echo "hello foo" > foo
echo "hello bar" > bar
ln -s foo foo2

Wenn Sie den Inhalt des Verzeichnisses überprüfen, werden Sie sehen, dass Sie es unverschlüsselt sehen können…..

ls -l
[email protected]:~/decrypted$ ls -l
total 8
-rw-rw-r-- 1 falko falko 10 Apr 26 18:54 bar
-rw-rw-r-- 1 falko falko 10 Apr 26 18:54 foo
lrwxrwxrwx 1 falko falko 3 Apr 26 18:54 foo2 -> foo

…. im verschlüsselten Verzeichnis ist es verschlüsselt:

cd ~/encrypted
ls -l
[email protected]:~/encrypted$ ls -l
total 8
lrwxrwxrwx 1 falko falko 24 Apr 26 18:54 k2TAV0tGBWM3baIGmS62hGQa -> oFXp,s2KI6JXGzJX6Lu6,lf9
-rw-rw-r-- 1 falko falko 26 Apr 26 18:54 oFXp,s2KI6JXGzJX6Lu6,lf9
-rw-rw-r-- 1 falko falko 26 Apr 26 18:54 ZZ68NvkTaiUipHBsZGVn2ZqV
[email protected]:~/encrypted$

Um das verschlüsselte Volume zu deinstallieren, führen Sie run aus:

cd
fusermount -u ~/decrypted

Überprüfen Sie die Ausgänge von…..

mount

…. und…. und….

df -h

…. und Sie werden sehen, dass das EncFS-Volume nicht mehr aufgeführt ist.

Um es wieder zu mounten, führen Sie aus

encfs ~/encrypted ~/decrypted

Sie werden nach dem zuvor definierten Passwort gefragt:

[email protected]:~$ encfs ~/encrypted ~/decrypted
EncFS Password:
<– dein geheimes Passwort

Wenn Sie das richtige Passwort angeben, wird das Verzeichnis ~/verschlüsselt nach ~/decrypted gemountet, von wo aus Sie unverschlüsselt auf Ihre verschlüsselten Daten zugreifen können. Wenn Sie das Passwort vergessen, gehen Ihre verschlüsselten Daten verloren!

Wenn Sie das Passwort ändern möchten, können Sie dies mit der Funktion

encfsctl passwd ~/encrypted

Befehl.

[email protected]:~$ encfsctl passwd ~/verschlüsselt
Aktuelles Encfs-Passwort
eingeben EncFS-Passwort:
<– dein geheimes Passwort
Geben Sie das neue Encfs-Passwort
ein Neues Encfs-Passwort:
<– newsecretpassword
Encfs-Passwort überprüfen: <– newsecretpassword
Volumenschlüssel erfolgreich aktualisiert.

4 Links

Das könnte dich auch interessieren …