Gleich ob man sein System bereits vollständig verschlüsselt hat oder nicht. Manchmal benötigt man zusätzlich noch einen verschlüsselten Container. Was liegt unter Linux da näher als einen Container mit LUKS zu erstellen. Leider einfacher gesagt, als getan, denn keine grafische Oberfläche verfügt über eine entsprechende Möglichkeit. Bleibt also nur ein Ausweichen auf die Konsole.
Grundvoraussetzung ist, dass die verwendete Distribution cryptsetup installiert hat. Sofern es also nicht installiert ist muss es aus der Paketverwaltung nachinstalliert werden.
Container erstellen
Zuerst erstellt man eine leere Datei. Das vorliegende Beispiel ist 512 MB groß und kann beliebig angepasst werden. Gleiches gilt für Speicherort und Name.
$ dd if=/dev/urandom of=LUKS_Container bs=1M count=512
Code-Sprache: JavaScript (javascript)
Alternativ besteht auch die Möglichkeit eine so genannte Sparse-Datei zu erstellen. Diese hat eine maximale Größe zugewiesen, belegt aber auf dem Speichermedium nur die aktuell benötige Größe. Dadurch kann man verhindern, dass die Datei permanent zu klein ist.
$ dd of=LUKS_Sparsecointainer.img bs=1G count=0 seek=10<!--</code-->
Code-Sprache: HTML, XML (xml)
Was man hier wählt hängt ganz vom beabsichtigten Einsatzzweck ab. Im folgenden geht die Anleitung von einer statischen Datei aus. Diese existiert anschließend im Home-Verzeichnis des Benutzers in Form einer leeren Datei, die man nun einen LUKS-Container umwandelt.
# cryptsetup -c aes-xts-plain64 -s 512 -h sha512 -y luksFormat LUKS_Container
Code-Sprache: PHP (php)
Die genauen Einstellungen zur Verschlüsselung können je nach Hardwareprofil auch angepasst werden mit den obigen Einstellungen dürften aber die meisten Anwender gut beraten sein. Bei der Einrichtung erfolgt eine Kenntwortabfrage, bei der man ein sicheres Passwort verwenden sollte. Eine Verschlüsselung ist schließlich immer nur so gut, wie das Kennwort, das man verwendet.
Um den Container als Loop-Device einzuhängen ermittelt man nun erst mal ein freies Device.
# losetup -f
Code-Sprache: PHP (php)
Anschließend bindet man den Container als Loop-Device ein.
# losetup /dev/loop<strong>X</strong> LUKS_Container
Code-Sprache: HTML, XML (xml)
Nun muss natürlich noch der eigentliche Container entsperrt werden.
# cryptsetup luksOpen /dev/loopX LUKS_Container
Code-Sprache: PHP (php)
Bei der anschließenden Passwortabfrage gibt man das oben gewählte Kennwort ein.
Der Container braucht nun noch ein Dateisystem. Hier hat man die volle Auswahl, liegt mit ext4 aber sicher nicht falsch.
# mkfs.ext4 /dev/mapper/LUKS_Container
Code-Sprache: PHP (php)
Dieses Dateisystem bindet man anschließend ein.
# mount -t ext4 /dev/mapper/LUKS_Container /mnt
Code-Sprache: PHP (php)
Sofern man nur ein Benutzer auf den Container zugreifen soll, kann man diesen zum Eigentümer machen. Dann kann der Container normal im Dateimanager genutzt werden.
# chown -R /mnt
Code-Sprache: PHP (php)
Container verwenden
Um den Container zu nutzen muss man ihn nun immer zuerst als Loop-Laufwerk einhängen
# losetup -f
# losetup /dev/loopX LUKS_Container
Code-Sprache: PHP (php)
Anschließend kann man den Container ganz normal über den Dateimanager und die integrierte Passwortabfrage entsperren.
Fazit
Der Aufwand für LUKS lohnt sich nur bedingt, da kaum Komfortfunktionen oder gar grafische Programme zur Verwaltung verfügbar sind. Einfacher geht es mit einer VeraCrypt Installation, deren Container sogar betriebssystemübergreifend genutzt werden können.
Wenn der Einsatz von VeraCrypt nicht in Frage kommt bietet LUKS jedoch eine gangbare Alternative.