Sensible Daten auf Linux mit Verschlüsselung schützen Datenträger mit Linux Unified Key Setup verschlüsseln

Von Thomas Joos 6 min Lesedauer

Anbieter zum Thema

LUKS (Linux Unified Key Setup) ermöglicht die Verschlüsselung von Datenträgern in Linux. Dabei werden mehrere Schlüssel unterstützt, wodurch unterschiedliche Benutzer Zugang zu demselben verschlüsselten Volume haben können. Der Beitrag zeigt Möglichkeiten und Praxis.

Der Beitrag erläutert, wie Linux Unified Key Setup (LUKS) die Daten auf Festplatten für Unbefugte unzugänglich macht.(Bild:  ©blackdovfx, Getty Images Signature via Canva.com)
Der Beitrag erläutert, wie Linux Unified Key Setup (LUKS) die Daten auf Festplatten für Unbefugte unzugänglich macht.
(Bild: ©blackdovfx, Getty Images Signature via Canva.com)

Die Festplattenverschlüsselung unter Linux mit Linux Unified Key Setup (LUKS) gewährleistet die Sicherheit sensibler Daten, indem sie die Festplatteninhalte unzugänglich für unbefugte Dritte macht. Die Einrichtung erfolgt in mehreren Schritten.

Ablauf bei der Verschlüsselung mit LUKS

Zunächst wird die neue Festplatte in das System integriert und auf ihre Funktionsfähigkeit geprüft. Dies geschieht mithilfe von SMART-Tools, die sicherstellen, dass keine physischen Defekte vorliegen. Anschließend wird eine Partitionstabelle erstellt, meist im GPT-Format, gefolgt von der Anlage einer oder mehrerer Partitionen.

Der nächste Schritt umfasst die eigentliche Verschlüsselung der Partition mit „cryptsetup“. Hierbei werden verschiedene Parameter gesetzt, unter anderem die Verschlüsselungsmethode (beispielsweise AES-XTS), die Schlüssellänge sowie die Passwort-Hashing-Methode. Nach Eingabe eines sicheren Passworts wird die Partition verschlüsselt. Anschließend kann die verschlüsselte Partition geöffnet und ein Dateisystem, typischerweise EXT4, darauf erstellt werden.

Durch den Einsatz von LUKS wird eine hohe Sicherheit der Daten gewährleistet, wobei die Auswirkungen auf die Systemleistung je nach Hardware variieren können. Eine regelmäßige Überprüfung und Sicherung der Partitionstabelle und ein funktionierendes Backup sind unerlässlich, um Datenverlust zu vermeiden.

LUKS wird in verschiedenen Szenarien eingesetzt, um Datenträger zu verschlüsseln. Die Vorteile von LUKS sind eine relative einfache Bedienung, hohe Sicherheit durch starke Verschlüsselungsalgorithmen und Unterstützung für verschiedene Schlüsselverwaltungsszenarien. LUKS verwendet „dm-crypt“ als Backend und bietet eine standardisierte Methode zur Verwaltung der Verschlüsselung.

Bei dm-crypt handelt es sich um ein transparentes Festplattenverschlüsselungssystem, das in den Linux-Kernel integriert ist und häufig in Kombination mit dem Linux Unified Key Setup (LUKS) verwendet wird. LUKS bietet einen Standard auf dem Gebiet der Festplattenverschlüsselung und erleichtert die Handhabung und Sicherheitsschlüsselverwaltung. Dabei nutzt dm-crypt LUKS-Header, um Informationen über die Verschlüsselung, wie den verwendeten Algorithmus und die Schlüssel, sicher zu speichern. LUKS ermöglicht es, mehrere Passwörter für die Entschlüsselung zu verwenden, was die Verwaltung und Wiederherstellung der verschlüsselten Daten erleichtert.

Die Nutzung von dm-crypt mit LUKS ist besonders vorteilhaft in Szenarien, in denen hohe Sicherheitsanforderungen bestehen, wie bei sensiblen Unternehmensdaten oder auf mobilen Geräten. Durch die Verwendung standardisierter Methoden und starker kryptografischer Algorithmen gewährleistet diese Kombination eine hohe Sicherheit und schützt die Daten vor unbefugtem Zugriff, selbst wenn das physische Speichermedium in die falschen Hände gerät.

Die Metadaten einschließlich Schlüsselinformationen werden im Header des verschlüsselten Geräts gespeichert. Diese Struktur ermöglicht die Verwaltung mehrerer Schlüssel und unterstützt verschiedene Verschlüsselungsalgorithmen. LUKS unterstützt unter anderem AES, Twofish und Serpent.

Installation notwendiger Software-Pakete

Auf Debian-basierten Systemen kann cryptsetup mit „sudo apt-get install cryptsetup“ installiert werden, auf Red Hat-basierten Systemen erfolgt die Installation mit „sudo yum install cryptsetup“. Der folgende Befehl initialisiert einen LUKS-Container auf einer Partition:

sudo cryptsetup luksFormat /dev/sdX1

Das System fordert zur Eingabe einer Passphrase auf. Diese Passphrase wird zum Entsperren des verschlüsselten Containers benötigt. Informationen zu den Partitionen lassen sich zum Beispiel mit „fdisk -l „anzeigen. Danach öffnet man den Container und erstellt ein Dateisystem:

sudo cryptsetup open /dev/sdX1 my_luks_volumesudo mkfs.ext4 /dev/mapper/my_luks_volume

Für das automatische Einbinden der Datenträger beim Systemstart bearbeitet man die Datei „/etc/crypttab“:

my_luks_volume /dev/sdX1 none luks

Die Partition wird in der „/etc/fstab“-Datei eingetragen:

/dev/mapper/my_luks_volume /mnt/luks ext4 defaults 0 2

Eine zusätzliche Passphrase kann mit folgendem Befehl hinzugefügt werden:

sudo cryptsetup luksAddKey /dev/sdX1

Um eine Passphrase zu entfernen, wird folgender Befehl verwendet:

sudo cryptsetup luksRemoveKey /dev/sdX1

Die Passphrase kann mit

sudo cryptsetup luksChangeKey /dev/sdX1

geändert werden.

Überprüfung der Verschlüsselung und Integrität der Daten

Der Verschlüsselungsstatus kann überprüft werden:

sudo cryptsetup status my_luks_volume

Ein regelmäßiger Check der Dateisystemintegrität erfolgt mittels „fsck“:

sudo fsck /dev/mapper/my_luks_volume

Der Befehl „fsck“ (File System Consistency Check) wird verwendet, um Dateisysteme auf Konsistenz und Fehler zu überprüfen und gegebenenfalls zu reparieren. Im Zusammenhang mit LUKS-verschlüsselten Partitionen ist fsck ein wichtiger Bestandteil der Datenpflege und -wiederherstellung. Vor der Anwendung von fsck auf eine LUKS-verschlüsselte Partition muss diese zunächst entschlüsselt und gemountet werden. Dies geschieht mithilfe von „cryptsetup open“, um die verschlüsselte Partition zugänglich zu machen, und „mount“, um das Dateisystem einzuhängen. Anschließend kann fsck auf die entschlüsselte Partition angewendet werden, um das Dateisystem zu überprüfen und Fehler zu beheben.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zur IT-Sicherheit

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung. Die Einwilligungserklärung bezieht sich u. a. auf die Zusendung von redaktionellen Newslettern per E-Mail und auf den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern (z. B. LinkedIn, Google, Meta).

Aufklappen für Details zu Ihrer Einwilligung

Zum Beispiel wird die verschlüsselte Partition „/dev/sda1“ mit dem Namen „encrypted_partition „geöffnet und gemountet, bevor fsck auf „/dev/mapper/encrypted_partition“ ausgeführt wird. Dieser Prozess stellt sicher, dass das Dateisystem innerhalb der verschlüsselten Container auf Integrität überprüft wird, ohne die Verschlüsselung zu beeinträchtigen.

Logs können in „/var/log/syslog“ oder mit „journalctl“ eingesehen werden, um Aktivitäten des LUKS-Containers zu überwachen:

journalctl -u cryptsetup

Die Performance kann durch Tuning der I/O-Scheduler oder Optimierung der Verschlüsselungsparameter verbessert werden. Nutzung des „noop“-Schedulers:

echo noop | sudo tee /sys/block/sdX/queue/scheduler

Verschlüsselung externer Festplatten und von USB-Sticks

Externe Laufwerke werden ähnlich wie interne verschlüsselt. Der Prozess umfasst die Initialisierung, das Erstellen eines Dateisystems und das automatische Einbinden beim Anschluss:

sudo cryptsetup luksFormat /dev/sdYsudo cryptsetup open /dev/sdY external_lukssudo mkfs.ext4 /dev/mapper/external_luks

Die Verschlüsselung der Root-Partition erfolgt meist während der Installation des Betriebssystems. Für Home-Verzeichnisse wird ähnlich wie bei externen Festplatten vorgegangen:

sudo cryptsetup luksFormat /dev/sdX3sudo cryptsetup open /dev/sdX3 home_lukssudo mkfs.ext4 /dev/mapper/home_luks

Einsatz von LUKS in virtuellen Maschinen

In virtuellen Maschinen kann LUKS für virtuelle Festplatten verwendet werden:

sudo cryptsetup luksFormat /dev/vdasudo cryptsetup open /dev/vda vm_lukssudo mkfs.ext4 /dev/mapper/vm_luks

LUKS kann dabei auch in Automatisierungsskripte integriert werden, um bei der Bereitstellung von Systemen verschlüsselte Volumes zu erstellen:

ansible-playbook create_luks_volume.yml

Verschlüsselte Partitionen in Linux nutzen

Die „cryptsetup open“-Befehle ermöglichen das Entschlüsseln und Öffnen einer verschlüsselten Partition, sodass sie gemountet und genutzt werden kann:

sudo cryptsetup open /dev/sdb1 my_encrypted_partition

In diesem ersten Beispiel wird die Partition „/dev/sdb1“ geöffnet und unter dem Namen „my_encrypted_partition“ zugänglich gemacht. Nach Eingabe des korrekten Passworts ist die entschlüsselte Partition unter „/dev/mapper/my_encrypted_partition“ verfügbar.

Beispiel 2: Öffnen einer verschlüsselten Partition mit einem spezifischen Schlüsselformat:

sudo cryptsetup open --type luks /dev/sdc1 encrypted_data

Hier wird die Partition „/dev/sdc1“ mit dem Namen „encrypted_data“ geöffnet. Die Option „--type luks“ gibt explizit an, dass es sich um eine LUKS-verschlüsselte Partition handelt.

sudo cryptsetup open --key-file /path/to/keyfile /dev/sdd1 secure_storage

In diesem Beispiel wird die Partition „/dev/sdd1“ geöffnet, wobei eine Schlüsseldatei („/path/to/keyfile“) zur Authentifizierung verwendet wird. Die entschlüsselte Partition wird unter dem Namen „secure_storage“ verfügbar gemacht.

sudo cryptsetup open --readonly /dev/sde1 readonly_partition

Diese Variante öffnet die Partition „/dev/sde1“ im Nur-Lese-Modus unter dem Namen „readonly_partition“. Das ist nützlich, wenn die Daten nur gelesen und nicht verändert werden sollen.

sudo cryptsetup open --key-slot 1 /dev/sdf1 backup_storage

In diesem Beispiel wird die Partition „/dev/sdf1“ unter Verwendung des Schlüssels aus dem „Slot 1“ geöffnet und als „backup_storage“ bereitgestellt. Diese Methode ist hilfreich, wenn mehrere Schlüssel für die Entschlüsselung verwendet werden. Nach dem Öffnen der verschlüsselten Partition kann diese wie gewohnt gemountet werden:

sudo mount /dev/mapper/my_encrypted_partition /mnt/my_mount_point

(ID:50133058)