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

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:

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

  1. Partition vorbereiten Wenn die Platte noch nicht partitioniert ist, muss muss z.B. mit fdisk oder parted 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.

  2. LUKS-Partition anlegen:

    sudo cryptsetup luksFormat /dev/sdb1
    

    (Die führt zur Abfrage der Passphrase. Das Kennwort sollte aus mindestens 20 Zeichen bestehen)

  3. 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.

  4. Dateisystem anlegen:

    sudo mkfs.ext4 /dev/mapper/mein_luks
    

    Damit wird ein ext4-Dateisystem angelegt.

  5. 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,

Automatisches Einbinden beim Booten (Auto-Mount)

Damit eine verschlüsselte Partition beim Booten automatisch entschlüsselt und eingebunden wird, sind folgende Schritte notwendig:

  1. /etc/crypttab bearbeiten:

    Zeile hinzufügen:

    mein_luks   /dev/sdb1   none   luks
    

    oder mit Keyfile:

    mein_luks   /dev/sdb1   /root/luks.key   luks
    
  2. /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.

  1. 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.

  2. 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)

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.

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:

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

Zurück zur Hauptseite