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