Seite wählen

NETWAYS Blog

Verschlüsselten File-Container mittels cryptsetup und LUKS erstellen


Datenschutz wird im Jahr 2018 so groß geschrieben wie nie zuvor. Verschiedene Anforderungen an die Absicherung der Daten zwingen Admins, sich elegante und sichere Setups einfallen zu lassen. Ich nehme das zum Anlass, eine neue Serie zur Dateiverschlüsselung zu eröffnen, bei der es um die verschiedensten Möglichkeiten geht, die gespeicherten Daten gegen den Zugriff Unbefugter abzusichern.
Oftmals ist eine Verschlüsselung der Daten aufgrund bestehender Infrastrukturen oder mangels Rechten (z. B. bei extern angemieteten Storages) nicht so einfach möglich. Früher war hier ECryptFS im Linux-Umfeld und TrueCrypt bei Windows State of the Art. Heute haben sich die Anforderungen geändert und ECryptFS ist wegen einer zu restriktiven Beschränkungen der Dateinamen nicht mehr alltagstauglich. Daher stelle ich hier eine moderne Alternative mit cryptsetup in Ergänzung mit LUKS vor.

Vorbereitung

Installation von cryptsetup (Beispiel Debian-Derivate)

sudo apt-get install cryptsetup

Laden des Kernel-Moduls (nur bei initialer Einrichtung)

sudo modprobe dm-crypt

File-Container erstellen

Zunächst wird mittels dd ein File-Container mit 1GB Größe erstellt, der Wert kann natürlich je nach Anforderung angepasst werden

dd if=/dev/zero of=/storage/my_container bs=1M count=1024

File-Container mittels cryptsetup initialisieren

 cryptsetup -y luksFormat /storage/my_container

Nun die gewünschte Passphrase eingeben. Aber Achtung, ohne ein gut gewähltes Passwort nutzt die stärkste Verschlüsselung nichts!
Verschlüsselten Container öffnen und Dateisystem erstellen

cryptsetup luksOpen /storage/my_container my_mount

hier wird das Kennwort abgefragt, dies sollte man sich natürlich zuvor gut merken. Der Container ist nun unter /dev/mapper/my_mount eingebunden.  Anschließend wird ein ext4-Dateisystem in dem Container erzeugt.

mkfs.ext4 -j /dev/mapper/my_mount

File-Container am Wunschort mounten

Ordner zum mounten erstellen

mkdir /my_data
mount /dev/mapper/my_mount /my_data

Fertig – alle Daten die nun in /my_data erzeugt werden, landen am Ende verschlüsselt im Container, wie in meinem Beispiel unter /storage/my_container

Mount aushängen und File-Container schließen

Damit die Daten während der Nichtnutzung auch wirklich sicher sind, empfehle ich, den Container wieder abzuschließen.

umount /my_data
cryptsetup luksClose my_mount

Protip

Ich habe auf diese Art der Verschlüsselung bei meiner Nextcloud zurückgegriffen, da mir die Bordmittel von Nextcloud nicht gefallen, oder zu langsam sind. Im nächsten Artikel werde ich auch erklären, wie man den Container entsprechend vergrößern kann. Alle mit my_ verwendeten Variablen, können natürlich auf die jeweiligen Bedürfnisse angepasst werden.

Haben wollen?

Wir bieten natürlich bei uns im Managed-Hosting individuelle Lösungen an. Falls unsere (potentiellen) Kunden ein solches Setup wünschen, so sind wir natürlich für jeden Spaß zu haben.

Disclaimer

LUKS verwaltet die Verschlüsselungsdaten im Header. Ohne den Header (oder im Falle einer Beschädigung), ist ein Zugriff auf die Daten nicht mehr möglich. Es gibt verschiedene Tools, wie beispielsweise zuluCrypt, mit denen die Schlüssel und Header verwaltet und gesichert werden können, doch dazu in einem späteren Artikel mehr. Die Anleitung wurde nach bestem Wissen und Gewissen erstellt, testet bitte jedoch selbst ausreichend, bevor diese Lösung in die Produktion geht, damit das ihr die Funktionsweise versteht und Datenverlust vermeidet.

TrueCrypt Disaster Recovery

Ich stand vor Kurzem privat vor der Aufgabe die Daten einer mit TrueCrypt verschlüsselten Festplatte, die versehentlich mittels fdisk partitioniert und anschließend formatiert wurde, wiederherzustellen. Unmöglich? Dachte ich auch zuerst…
Bevor ich irgendwelche Wiederherstellungsvesuche unternommen habe, wurde das komplette Abbild der Festplatte aber erstmal mittels dd gesichert. Unter Linux geht das ganz einfach, z.B. so:

# dd if=/QUELL/PLATTE of=/SPEICHER/ZIEL

Mein erster Ansatz war ein mir altbekanntes Tool: TestDisk. Allerdings stösst das bei per TrueCrypt verschlüsselten Platten schnell an seine Grenzen. Nach einer kurzen Recherche fand ich dann schließlich TestCrypt. TestCrypt ist speziell für die Wiederherstellung von TrueCrypt-Verschlüsselungen entwickelt worden, funkioniert aber erst ab TrueCrypt Version 5.1a. Voraussetzung ist natürlich das man noch im Besitz des TrueCrypt Passwortes oder des Keyfiles ist.
testcryptDie größte Schwierigkeit bei TestCrypt war bei mir das es nur unter Windows funktioniert, also musste ich kurzerhand eine alte Windows XP Installation aktivieren um die Software installieren zu können. Sobald die Software gestartet und das entsprechende Volume ausgewählt wurde, sucht TestCrypt nach dem Backup Volume Header. Sobald dieser gefunden wurde lässt sich das Volume als zusätzlicher Datenträger einhängen und erhält so Zugriff auf die schon verloren geglaubten Daten.
Nach Sicherung der Daten auf eine andere Platte, habe ich die Gelegenheit genutzt und den Datenträger gleich neu mit VeraCrypt verschlüsselt. VeraCrypt ist sozusagen der Nachfolger von TrueCrypt, da dieses seit Mitte 2014 nicht mehr weiterentwickelt und somit als potenziell unsicher eingestuft wird.
Um solchen „Horror“-Szenarien vorbeugen bzw. besser begegnen zu können empfiehlt es sich beispielweise im Vorfeld den entsprechenden Volume Header zu sichern oder aber gleich eine bewährte Backup- bzw. Recoverylösung wie Bareos zu verwenden. Nicht zuletzt möchte ich mich bei den Entwicklern von TestCrypt bedanken, mir haben sie in diesem Fall sehr viel Ärger erspart!

Markus Waldmüller
Markus Waldmüller
Head of Strategic Projects

Markus war bereits mehrere Jahre als Sysadmin in Neumarkt i.d.OPf. und Regensburg tätig. Nach Technikerschule und Selbständigkeit ist er nun Anfang 2013 bei NETWAYS als Senior Manager Services gelandet. Seit September 2023 kümmert er sich bei der NETWAYS Gruppe um strategische Projekte. Wenn er nicht gerade die Welt bereist, ist der sportbegeisterte Neumarkter mit an Sicherheit grenzender Wahrscheinlichkeit auf dem Mountainbike oder am Baggersee zu finden.