Ubuntu 12.04 „Precise Pangolin“
Ubuntu 11.10 „Oneiric Ocelot“
Ubuntu 10.04 „Lucid Lynx“
Ubuntu 8.04 „Hardy Heron“
Dieser Artikel erfordert mehr Erfahrung im Umgang mit Linux und ist daher nur für fortgeschrittene Benutzer gedacht.
In diesem Artikel wird beschrieben, wie man LUKS mit einer Container-Datei verwendet.
Die Vorbereitung ist identisch mit der des LUKS-Artikels. Dieser sollte zuerst einmal durchgearbeitet und verstanden werden.
Der Container ist eine einfache Datei, die man mit Zufallsdaten füllt. Mit dem folgenden Befehl wird ein 250MB großer Container mit dem Namen container_file angelegt. [1]
dd if=/dev/urandom of=container_file bs=1M count=250
Diese Container hängt man jetzt über ein Loop-Device ein. Dieser Befehl gibt zunächst ein freies Loop-Device zurück: [2]
losetup -f
Jetzt hängt man den Container ein. Durch das Loop-Device kann man die Datei, wie eine normale Partition/Festplatte ansprechen.
losetup /dev/loop0 container_file
/dev/loop0 muss gegebenenfalls durch ein anderes freies Device ersetzt werden.
Als nächstes muss man den Container mit cryptsetup initialisieren und den Algorithmus (siehe Manpage von cryptsetup) festlegen. Hier wird auch das Passwort abgefragt. [3] Beispiel:
cryptsetup -c aes-xts-plain -y -s 512 luksFormat /dev/loop0
Jetzt kann man den Container mit cryptsetup öffnen. Das Argument container
steht für den Namen, unter dem das Gerät unter /dev/mapper/ erstellt werden soll. Wenn man mehrere verschlüsselte Container verwendet, muss man darauf achten, dass kein Name doppelt verwendet wird .
cryptsetup luksOpen /dev/loop0 container
Als nächstes muss ein Dateisystem angelegt werden (siehe Formatieren). Beispiel:
mkfs.ext4 /dev/mapper/container
Mit
mount -t ext4 /dev/mapper/container /mnt
kann man den Container einhängen.
Nachdem man sich seinen Container erstellt hat, kann er über folgenden Ablauf eingehangen und wieder ausgehangen werden.
Ein freies Loop-Device finden. [1][2]
losetup -f
Die Datei container_file an das Loop-Device binden.
losetup /dev/loop0 container_file
Den Container mit cryptsetup öffnen:
cryptsetup luksOpen /dev/loop0 container
Und zuletzt das Dateisystem mounten.
mount -t ext4 /dev/mapper/container /mnt
Die letzten beiden Befehle können auch grafisch über den Dateimanager Nautilus erfolgen.
umount /mnt
Container mit cryptsetup schließen.
cryptsetup luksClose container
Wer den Container zuvor mit Nautilus eingehängt hat, der sollte ihn auch darüber wieder aushängen, wodurch auch hier die beiden oberen Befehle nicht angewandt werden.
Loop-Device schließen.
losetup -d /dev/loop0
Es sind Datenverluste möglich! Vorher sollte ein Backup erstellt werden Sicherheit.
Zunächst muss der Container ausgehangen werden.
Danach vergrößert man die Container-Datei beliebig. In diesem Beispiel um 100MB. [1]
dd if=/dev/urandom bs=1M count=100 >> container_file
Danach hängt man den Container ein, aber ohne das Dateisystem zu mounten.
Mit [2]
cryptsetup resize container
verwendet cryptsetup den gesamten verfügbaren Platz in der Container-Datei.
Um das Dateisystem an die neue größe anzupassen kann man folgenden Befehl verwenden. Man sollte vor und nach dem Befehl eine Dateisystemprüfung durchführen.
resize2fs /dev/mapper/container
Mit den folgenden Skripten kann man beliebige Container automatisch ein- und aushängen. Die Skripte müssen mit Root-Rechten ausgeführt werden. [2]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | #!/bin/sh SAFE=/Pfad/zum/Container_File CRYPTNAME=container MNT=/Pfad/zum/Mointpoint FS=ext4 LOOPDEV=`losetup -f` if [ "`losetup -a | grep -c "$SAFE"`" != "0" ]; then echo "bereits eingehängt" exit fi /sbin/losetup $LOOPDEV $SAFE /sbin/cryptsetup luksOpen $LOOPDEV $CRYPTNAME /bin/mount -t $FS /dev/mapper/$CRYPTNAME $MNT |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | #!/bin/sh SAFE=/Pfad/zum/Container_File CRYPTNAME=container MNT=/Pfad/zum/Mointpoint LOOPDEV=`losetup -a | grep "$SAFE" | sed "s/: .*//"` if [ "`losetup -a | grep -c "$SAFE"`" != "1" ]; then echo "nicht eingehängt" exit fi /bin/umount $MNT /sbin/cryptsetup luksClose $CRYPTNAME /sbin/losetup -d $LOOPDEV |
cryptsetup - Wikipedia
http://www.tomshardware.com/de/Security-Container-Daten-Verschlusselung-TrueCrypt,testberichte-239849-7.html - Crypt-Container unter Linux
http://www.saout.de/tikiwiki/tiki-index.php?page=ResizeLUKSPartitions - Resize LUKS Partitions