Verschlüsselte Containerdatei mit DM-Crypt erstellen

Hinweis: Wir haben in diesem Artikel möglicherweise Provisions-Links verwendet und sie durch (*) gekennzeichnet. Erfolgt über diese Links eine Bestellung, erhält maffert.net eine Provision. Es entstehen für Sie keine Nachteile beim Kauf oder Preis.

Für die Einrichtung einer Containerdatei mit DM-Crypt (Luks) wird folgende Software benötigt:

Als root Einloggen/Befehle aus root ausführen (gilt für Cubian/Cubieez/Ubuntu usw.):
Mit „su“ ohne “ kann man sich als root einloggen, vorher evtl. mit „sudo passwd root“, das root Passwort setzen. Alternativ einfach vor jedem Befehl ein „sudo“ setzen!

apt-get install cryptsetup libpam-mount

Wenn die Fehlermeldung „Command failed: Failed to setup dm-crypt key mapping“ erscheint, muss das Kernel-Modul dm_crypt per Hand geladen werden:

modprobe dm_crypt

Jetzt zum eigentlichen erstellen des Containers

  1. Leere Imagedatei erstellen (im Beispiel 1 GB):
    dd if=/dev/zero of=container.luks bs=1M count=1024
  2. Das nächste freie Loop-Device ermitteln (im Beispiel kahm bei mir loop0):
    losetup -f
  3. Einhängen der Datei als Loop-Device (loop0 dementsprechend anpassen):
    losetup /dev/loop0 container.luks
  4. Die ersten 2 MByte mit Zufallswerten füllen (auch hier loop0 ggf. anpassen):
    dd if=/dev/urandom of=/dev/loop0 bs=1M count=2
  5. Anschließend erfolgt die LUKS-Formatierung (loop0 …):
    cryptsetup luksFormat -c aes-cbc-essiv:sha256 -s 256 -y /dev/loop0
  6. Das formatierte Device dem Device-Mapper unterstellen („name“ kann frei gewählt werden und ggf. wieder loop0 anpassen):
    cryptsetup luksOpen /dev/loop0 name
  7. Dateisystem (ext4) auf dem neuen Volumen anlegen („name“ ändern und an loop0 denken):
    mkfs.ext4 /dev/mapper/name
  8. Das vorbereitete Volume wieder schließen (name ..):
    cryptsetup luksClose name
  9. Das Loop-Device wieder aushängen (loop ..):
    losetup -d /dev/loop0

Container mounten/einhängen
(/mnt ist der Pfad wohin gemoutet wird)

losetup /dev/loop0 container.luks
 cryptsetup luksOpen /dev/loop0 name
 mount /dev/mapper/name /mnt

oder vereinfacht mit dem pam_mount Modul:

mount.crypt container.luks /mnt -o loop

Container unmounten/aushängen

umount /mnt
 cryptsetup luksClose name
 losetup -d /dev/loop0

oder vereinfacht mit dem pam_mount Modul:

umount.crypt /mnt

Ich hoffe ich konnte damit den ein oder anderen helfen 😉

Sonstiges:

  • Luks verschlüsselte Partition mit einem Keyfile (statt dem Passwort) öffnen (Keyfile liegt in dem Beispiel bei /root/):
    cryptsetup luksOpen -d /root/hdd1.keyfile /dev/sdb1 hdd1
  • Mapperdevicestatus anzeigen:
    cryptsetup status hdd1
  • Schlüsselstatus anzeigen:
    cryptsetup luksDump /dev/sdb1
  • LuksHeaderBackup erstellen (sollte umbedingt gemacht werden!!!):
    cryptsetup luksHeaderBackup /dev/sdb1 --header-backup-file /root/hdd1headerbackup.img
  • LuksHeaderBackup ggf. wieder einspielen:
    cryptsetup luksHeaderRestore  --header-backup-file=/root/hdd1headerbackup.img /dev/sdb1

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert