Verschlüsselung von Festplatten und USB-Sticks mit LUKS, Veracrypt, cryfs oder gpg
Autor: Gerd Raudrnbusch
Stand: 28.07.2025
Inhalt
- Motivation zum Verschlüsseln aller Festspeicher
- Verfügbarkeit und Anwendungsfall der Technologien
- LUKS
- Veracrypt
- Cryptomator
- CryFS
- gpg
- Anhang I: Neue Hardware lokalisieren
- Anhang II: Mount
Motivation zum Verschlüsseln aller Festspeicher
Egal, ob USB-Stick oder Festplatte - nach dem Kauf ist es heutzutage angemessen und verhältnismäßig, seinen Festspeicher aus Prinzip verschlüsseln, weil unverschlüsselte Daten bei Verlust oder Diebstahl des Geräts leicht ausgelesen werden können und Verschlüsselung einen elementaren Schutz vor unbefugtem Zugriff bietet.
Wesentliche Gründe sind:
-
Sicherstellung der Privatsphäre:
Verschlüsselte Daten bleiben auch dann privat, wenn physischer Zugriff auf das Gerät besteht – das ist für Journalisten, politische Aktivisten oder in Berufen mit Verschwiegenheitspflichten besonders entscheidend.
-
Minimierung von wirtschaftlichem und reputativem Schaden:
Gelangen sensible Daten in falsche Hände, drohen finanzielle Verluste und Vertrauensverluste. Verschlüsselung schützt effektiv davor, auch im Fall von Sicherheitsvorfällen, z.B. durch Cyberangriffe.
-
Effektiver Schutz bei Diebstahl oder Verlust:
Wenn der Festspeicher nicht verschlüsselt ist, kann ein Angreifer durch den Ausbau der Festplatte oder Starten eines alternativen Betriebssystems direkt auf alle Daten zugreifen, auch wenn das Betriebssystem durch ein Passwort geschützt ist.
-
Datenschutz und rechtliche Vorgaben:
Die DSGVO verpflichtet zum Schutz personenbezogener Daten; Verschlüsselung ist eine wichtige Maßnahme, um Compliance zu gewährleisten, besonders für Unternehmen, aber auch für Privatpersonen.
-
Technische Einfachheit:
Moderne Betriebssysteme integrieren Verschlüsselung häufig kostenfrei und benutzerfreundlich. Konsequente Verschlüsselung erzeugt praktisch keine nennenswerten Geschwindigkeitseinbußen mehr. Warum also zögern?
-
Erweiterung der Handlungsspielräume
Wer z.B. einen alten Rechner übrig hat, kann auf ihm Linux installieren und eine Festplatte anschließen und verschlüsseln. Der Rechner kann dann als zentraler Sammelpunkt (zu Hause nennt sich so eine Cloud "Network Attached Storage" (NAS)) für Daten im Heimnetz verwendet werden (Dokumente, Musik, Bilder, Videos, Kalender, Kontakte).
4 Terrabyte USB Festspeicher auf einem DiN-A4 Blatt Die vorgestellten Technologien ermöglichen die Abgrenzung von privatem Speicherplatz verschiedener Parteien auf ein und demselben (ebenso verschlüsselten) Datenträger.
Verfügbarkeit und Anwendungsfall der Technologien
Die hier vorgestellten Technologien sind vor allem für Linux-Rechner interessant, da konzernabhängigen Betriebssystemen nur begrenzt Vertrauen ausgesprochen werden kann. Die Tabelle zeigt, auf welchen Plattformen die vorgestellten Verschlüsselungstechniken LUKS, Veracrypt, CryFS, Cryptomator und gpg verfügbar sind:
Technik | Anwendungsfall | Linux | Windows | macOS | Android | iOS |
---|---|---|---|---|---|---|
LUKS | Datenträger | Ja | Teilweise | Teilweise | Nein | Nein |
Veracrypt | Datenträger oder Dateicontainer | Ja | Ja | Ja | Ja | Ja |
Cryptomator | Ordner | Ja | Ja | Ja | Ja | Ja |
CryFS | Ordner | Ja | Ja | Ja | Nein | Nein |
gpg | Datei | Ja | Ja | Ja | Teilweise | Teilweise |
LUKS
LUKS (Linux Unified Key Setup) ist der aktuelle Standard für die Verschlüsselung von Festplatten unter Linux, der sichere Verwaltung von Schlüsseln und mehrere Passwörter pro Container ermöglicht. Damit können Partitionen vollständig verschlüsselt und kontrolliert werden, wer darauf zugreifen kann.
Anwendungsfall von LUKS
LUKS eignet sich hervorragend, um Datenträger komplett zu verschlüsseln.
Installation von LUKS
sudo apt update
sudo apt install cryptsetup
Neue LUKS-Partition erstellen
-
Partition vorbereiten Wenn die Platte noch nicht partitioniert ist, muss muss z.B. mit
fdisk
oderparted
ein freier Bereich zugewiesen werden. Im folgenden Beispiel wird angenommen, dass die Platte auf/dev/sdb
eingehängt ist und ihre Partition/dev/sdb1
heißt. -
LUKS-Partition anlegen:
sudo cryptsetup luksFormat /dev/sdb1
(Die führt zur Abfrage der Passphrase. Das Kennwort sollte aus mindestens 20 Zeichen bestehen)
-
Partition öffnen und Mapper erstellen:
sudo cryptsetup luksOpen /dev/sdb1 mein_luks
Damit wird der verschlüsselte LUKS-Container (die LUKS-Partition) unter
/dev/mapper/mein_luks
eingehängt. -
Dateisystem anlegen:
sudo mkfs.ext4 /dev/mapper/mein_luks
Damit wird ein ext4-Dateisystem angelegt.
-
Verschlüsselte Partition wieder schließen:
sudo cryptsetup luksClose mein_luks
Dieser Befehl hängt den LUKS-Container wieder aus.
Manuelles Mounten und Unmounten
Wenn die Platte in /dev/mapper/mein_luks
eingehängt ist,
- Mounten (einbinden):
sudo cryptsetup luksOpen /dev/sdb1 mein_luks sudo mount /dev/mapper/mein_luks /mnt
- Unmounten (aushängen) und schließen:
Das Dateisystem kann beliebig gemountet und geschlossen werden.sudo umount /mnt sudo cryptsetup luksClose mein_luks
Automatisches Einbinden beim Booten (Auto-Mount)
Damit eine verschlüsselte Partition beim Booten automatisch entschlüsselt und eingebunden wird, sind folgende Schritte notwendig:
-
/etc/crypttab bearbeiten:
Zeile hinzufügen:
mein_luks /dev/sdb1 none luks
oder mit Keyfile:
mein_luks /dev/sdb1 /root/luks.key luks
-
/etc/fstab bearbeiten (um das Dateisystem nach dem Entschlüsseln zu mounten):
/dev/mapper/mein_luks /mnt ext4 defaults 0 2
Der Mountpoint /mnt
muss existieren.
-
Neuladen & Test:
sudo systemctl daemon-reload sudo systemctl restart systemd-cryptsetup@mein_luks sudo mount -a
Nach einem Neustart sollte eine Passwort-Abfrage für die Platte erscheinen.
-
Optional: Keyfile anlegen
Wenn keine Passworteingabe beim Boot erwünscht ist (nicht empfehlenswert):
sudo dd if=/dev/urandom of=/root/luks.key bs=1 count=4096 sudo chmod 400 /root/luks.key sudo cryptsetup luksAddKey /dev/sdb1 /root/luks.key
(Keyfile muss in
/etc/fstab
verwendet werden, s. Punkt 2)
- Ohne Keyfile erfolgt beim Boot die Passwort-Abfrage.
- Wer ein Keyfile verwendet sollte dies nur tun, wenn dieses selbst auf einer gut gesicherten, weiteren verschlüsselten Partition liegt.
- Reihenfolge: Zuerst wird die Entschlüsselung via
crypttab
durchgeführt, und dann das Einhängen über diefstab
. - Ein fehlerhafter Eintrag in der
crypttab
oderfstab
kann das Booten verhindern; daher empfiehlt sich ein Test nach jeder Änderung und ggf. ein Notfallsystem/Live-Medium bereitzuhalten. - Für Spezialfälle (z.B. Entschlüsselung mit USB-Stick) kann die Schlüsseldatei von dort gelesen werden.
Veracrypt
VeraCrypt ist eine kostenlose, quelloffene Software zur Verschlüsselung von Daten, insbesondere ganzer Festplatten oder einzelner Container-Dateien, die wie ein virtuelles, verschlüsseltes Laufwerk agieren. Zwar ist sie interoperabel auf jeder Plattform verfügbar, doch lassen sich die Container nicht überall nativ für das Betriebssystem selbst nutzen, sondern sie müssen manuell oder über Skripte eingehängt werden. Linux ist jedoch dazu in der Lage. Veracrypt hat außerdem das einzigartige Feature, einen doppelten Boden zu bieten, um damit glaubhafte Abstreitbarkeit zur ermöglichen. Veracrypt lässt sich entweder auf Partitionen oder auf Container-Dateien anwenden.
Anwendungsfall von Veracrypt
Veracrypt eignet sich hervorragend, um größere Datenmengen inform einer Containerdatei interoperabel auf allen Plattformen verfügbar zu machen. Der Zugriff ist schnell genug, um ein Streaming daraus zu ermöglichen.
Installation von Veracrypt
sudo add-apt-repository ppa:unit193/encryption -y
sudo apt update
sudo apt install veracrypt -y
Veracrypt-Container erstellen
Folgender Befehl erstellt einen neuen Veracrypt-Container:
veracrypt --text --create /pfad/zum/container
Der Assistent führt durch die Erstellung. Es geht aber auch ohne Interaktion:
veracrypt --text --create /pfad/zum/container --size 100M --password DEINPASSWORT --hash sha512 --encryption AES --filesystem ext4 --volume-type normal --pim 0
(Parameter nach Bedarf ersetzen)
Veracrypt-Container mounten
veracrypt --text --mount /pfad/zum/container /mnt/veracrypt1
Optional kann das Passwort mitgegeben werden (Achtung: Landet in der history
):
veracrypt --text --mount --password DEINPASSWORT /pfad/zum/container /mnt/veracrypt1
Veracrypt-Container unmounten
Zum aushängen:
veracrypt --text --dismount /mnt/veracrypt1
Oder, um alle gemounteten Container zu aushängen:
veracrypt --text --dismount
VeraCrypt-Container müssen wie LUKS-Container auch über /etc/crypttab
und anschließend /etc/fstab
eingebunden werden.
-
In der Datei /etc/crypttab:
meinvolume /pfad/zum/volume /pfad/zur/passwortdatei tcrypt-veracrypt
Statt einer Passwortdatei kann auch "none" stehen, wenn beim Boot ein Passwort eingegeben werden soll. Keyfiles können z.B. durch
tcrypt-keyfile=/pfad/zum/keyfile
hinzugefügt werden. -
In der /etc/fstab verweist du dann auf das entschlüsselte Mapper-Device:
/dev/mapper/meinvolume /mnt/zielverzeichnis auto defaults 0 0
Der Name ("meinvolume") muss mit dem aus crypttab übereinstimmen.
Ein automatisches Einbinden erfordert, dass Passwörter oder Keyfiles irgendwo hinterlegt werden – dies stellt ein Sicherheitsrisiko dar. Für maximale Sicherheit sollte auf das automatische Mounten verzichtt oder möglichst sichere Methoden zur Schlüsselaufbewahrung benutzt werden.
Cryptomator
Cryptomator ist eine freie Open-Source-Software, die es ermöglicht, Daten sicher und verschlüsselt zu speichern. Die Clients wurden insbesondere darauf zugeschnitten, auch in öffentlichen Clouds anwendbar zu sein. Jedoch läßt sich Cryptomator als solches auch auf dem eigenen System einrichten. Die Einrichtung eines Command Line Interfaces (CLI) zur reinen Steuerung über Befehle muss jedoch nachinstalliert werden und die Cryptomator-Clients sind als Freeware oft eingeschränkt.
Anwendungsfall
Cryptomator eignet sich hervorragend für weniger versierte Einsteiger, die keine eigene Cloudlösung und keinen NAS ("Network Attached Storage" = Cloudspeicher auf dem Heimserver) haben.
Installation von Cryptomator
sudo add-apt-repository ppa:sebastian-stenzel/cryptomator
sudo apt update
sudo apt install cryptomator
CryFS
CryFS ist ein Open-Source-Tool zur clientseitigen Verschlüsselung von Verzeichnissen, das auch von Cloud-Providern zum sicheren Speichern von Daten verwendet wird. Es erstellt einen verschlüsselten Container und bindet diesen als virtuelles, entschlüsseltes Dateisystem in ein anderes Verzeichnis ein.
Anwendungsfall von CryFS
CryFS eignet sich hervorragend, um im Dateisystem spontan einen verschlüsselten Ordner zu erzeugen, der zwar mehrere Dateien aufnimmt, aber nicht gleich den ganzen Datenträger beansprucht und im Gegensatz zu Veracrypt trotzdem dynamisch wachsen kann. CryFS ist jedoch langsamer als LUKS und Veracrypt; dies macht sich z.B. bemerkbar, wenn Mediendateien aus diesen Quellen gestreamt werden sollen, was nicht immer gut funktioniert.
Installation von CryFS
sudo apt update
sudo apt install cryfs
Ordner in der Konsole erstellen
Beispiel:
# Backend-Ordner für verschlüsselten Inhalt:
mkdir ~/MeinCryfsContainer
# Mountpunkt für entschlüsselten Backend-Ordner:
mkdir ~/MeinCryfsMount
CryFS-Container initialisieren und mounten
cryfs ~/MeinCryfsContainer ~/MeinCryfsMount
Das Passwort wird bei der Initialisierung abgefragt.
Unmounten (Aushängen) des CryFS-Verzeichnisses
fusermount -u ~/MeinCryfsMount
Damit wird das CryFS-Verzeichnis sicher ausgehängt und der Zugriff auf die Daten ist nur noch verschlüsselt möglich.
gpg
GPG (GNU Privacy Guard) ist ein altbewährtes Programm zur Verschlüsselung und digitalen Signierung von Dateien und Nachrichten, basierend auf dem OpenPGP-Standard. Es kann Dateien sowohl mit einem Passwort (symmetrisch) als auch mit einem Schlüsselpaar aus öffentlichem und privatem Schlüssel (asymmetrisch) verschlüsseln.
Anwendungsfall von gpg
gpg eignet sich hervorragend zur Verschlüsselung einzelner Dateien.
Installation von gpg
sudo apt update
sudo apt install gnupg
Verschlüsseln mit gpg
Beispiel:
gpg -c geheim.txt
Dabei wird man nach einem Passwort gefragt, das zur Verschlüsselung genutzt wird. Das Ergebnis ist eine verschlüsselte Datei mit der Endung .gpg
. Beispiel für eine Datei „geheim.txt“:
Die verschlüsselte Datei heißt dann „geheim.txt.gpg“.
Entschlüsseln mit gpg
Um die verschlüsselte Datei wieder zu entschlüsseln, verwendet man:
gpg geheim.txt.gpg
Dabei wird man nach dem Passwort gefragt, das zur Entschlüsselung benötigt wird.
Dies entschlüsselt die Datei und entfernt die gpg-Erweiterung. Alternativ kann man mit der Option -o
den entschlüsselten Inhalt in eine Datei speichern, z.B.:
gpg -d -o geheimentschluesselt.txt geheim.txt.gpg
Anhang I: Neue Hardware lokalisieren
Wenn ein neues Speichermedium angeschlossen wird, muss zunächst ermittelt werden, wo der neue Datenträger (USB-Stick, Festplatte) erkannt wurde. Auch Datenträger ohne gültige Formatierung werden in Linux als Blockgeräte im /dev
-Verzeichnis, z.B. als /dev/sdX angezeigt. Partitionen heißen dann /dev/sdX1, /dev/sdX2 usw.
Wenn gar keine neue Device-Node erscheint, ist ggf. ein Hardware- oder Treiberproblem die Ursache. Um herauszufinden, unter welchem Pfad im /dev-Verzeichnis der neue USB-Stick oder die Festplatte erkannt wird, führen folgende Methoden zum Ziel:
-
dmesg nach dem Einstecken anzeigen:
Mit dem Befehl:dmesg | tail -20
kann man das System-Logbuch verfolgen. Kurz nach dem Anschließen steht in den letzten Zeilen, welches Device (z.B. /dev/sdb, /dev/sdc) neu hinzugekommen ist und ob Partitionen erkannt wurden (/dev/sdb1 etc.).
-
lsblk ausführen:
Der Befehl:lsblk
liefert eine übersichtliche Auflistung aller Blockgeräte (Festplatten, Sticks, Partitionen) und zeigt, welches Gerät vorher nicht da war. Auch unformatierte Datenträger sind hier als Gerät gelistet (ggf. ohne zugehörige Partition).
-
sudo fdisk -l:
Dieser Befehl listet alle erkannten Festplatten und Partitionen, unabhängig vom Dateisystem. Ein USB-Stick ohne gültige Partitionstabelle erscheint meist trotzdem als Gerät (z.B. /dev/sdb) – ggf. als Meldung, dass keine Partitionstabelle vorhanden ist. -
df, falls das Medium automatisch gemountet wird:
Der Befehldf
zeigt gemountete Partitionen inklusive der zugehörigen /dev-Pfade (bei unformatierten Medien aber meist kein Eintrag).
Anhang II: Mount
Ein Dateisystem zu "mounten" bedeutet, es in die Verzeichnisstruktur eines Betriebssystems einzublenden, bzw. einzubinden, sodass auf dessen Inhalte zugegriffen werden kann. Unter Linux werden Datenträger (Festplatten, USB-Sticks, Netzlaufwerke) einem sogenannten Mountpoint (meist ein sonst leeres Verzeichnis) zugeordnet – ab diesem Moment erscheinen die darauf gespeicherten Dateien in diesem Verzeichnis und sind im System nutzbar. Beliebte Verzeichnisse sind z.B. /mnt
oder /media
.
Beispiel:
Ein regulärer USB-Stick wird nach dem Einstecken automatisch erkannt und gemountet, sodass er z. B. unter /mnt/usbstick
im Dateisystem sichtbar und benutzbar wird.
Entferntes Dateisystem über SSH mounten
Die Protokolle NFS oder SMB lassen sich zwar präzise für viele Benutzer konfigurieren und administrieren, sind aber ohne VPN unverschlüsselt, während SSHFS eine sehr einfache Lösung ist, um ein Dateisystem entfernt über SSH zu mounten. Damit lässt sich ein Verzeichnis auf einem entfernten Rechner wie ein lokales Verzeichnis einbinden, solange SSH-Zugang besteht.
Installation (Ubuntu/Debian):
sudo apt install sshfs
Mount-Befehl:
sshfs benutzername@remote-server:/pfad/zum/ordner /lokaler/mountpunkt
Beispiel:
mkdir -p ~/meinserver
sshfs user@192.168.1.100:/home/user ~/meinserver
Der gemountete Ordner /home/user
auf dem Rechner 192.168.1.100
kann nun wie jeder andere lokale Ordner unter ~/meinserver
verwendet werden. Zusätzlich können Veracrypt-Container gemountet werden, auf CryFS-Ordner oder gpg-Dateien zugegriffen werden, die sich auf dem entfernten Rechner befinden.
Um das Dateisystem wieder zu lösen, dient der Befehl:
fusermount -u ~/meinserver