Metainformationen zur Seite
Crypto-Container mit cryptsetup Luks
Diese Anleitung beschreibt die Erstellung und Nutzung einer verschlüsselten Datei unter Debian. Dabei kommt cryptsetup-luks zum Einsatz.
Variable | Bedeutung | Beispiel |
---|---|---|
$DATEI | Pfad für Abbild der verschlüsselten Partition | /data/plastikpackung |
$MB | Grösse von $DATEI in Megabyte | 100 |
$CRYPTODATEI | Name deiner Cryptodatei in /dev/mapper | gouda |
$MOUNT | Verzeichnis, wo Partition eingehängt wird | /mnt/kuehlschrank |
Container erstellen
Die Verschlüsselung baut auf dem sogenannten Device Mapping auf, welches ab Kernel 2.6.4 implementiert ist. Laut deren Entwickler ist es um einiges besser fuer Crypto-Zwecke geeignet als die Cryptoloop-Variante. Für die folgende Schritte benötigst du root-Rechte:
- Stell sicher, dass die folgenden Module geladen sind:
modprobe loop modprobe dm_crypt
- Installiere nun die notwendige Pakete:
apt install cryptsetup hashalot
- Als erstes erstellst du eine neue Datei. Du kannst
/dev/urandom
benutzen, um zufällige Werte in diese Datei zu schreiben:dd if=/dev/urandom of=$DATEI bs=1M count=$MB
- Anschliessend richtest du das loop-device ein:
losetup /dev/loop0 $DATEI
- Jezt wird aus dem loop-device eine Cryptodatei:
cryptsetup luksFormat /dev/loop0
- Danach kannst du die neue Partition mappen:
cryptsetup luksOpen /dev/loop0 $CRYPTODATEI
- Noch schnell die Datei mit einem Dateisystem formatieren:
mkfs.ext4 /dev/mapper/$CRYPTODATEI
- Mounten und fertig:
mount /dev/mapper/$CRYPTODATEI $MOUNT
Täglicher Gebrauch
Das folgende Skript vereinfacht den Umgang mit dem Container:
#!/bin/sh set -eu DATEI=$1 MOUNTPOINT="$2" CRYPTODATEI=$(basename "$DATEI") case "$1" in start) losetup /dev/loop0 "$DATEI" cryptsetup luksOpen /dev/loop0 "$CRYPTODATEI" mount -t ext3 -o defaults,user "/dev/mapper/$CRYPTODATEI" "$MOUNTPOINT" ;; stop) umount "$MOUNTPOINT" cryptsetup luksClose "$CRYPTODATEI" ;; restart) "$0" stop "$0" start ;; *) echo "Usage: $(basename "$0") {start|stop|restart} DATEI MOUNTPOINT" ;; esac exit 0
Luks ermöglicht es dir, mit verschiedenen Schlüsseln auf die Partition zuzugreifen. Mit folgendem Befehl fügst du einen weiteren hinzu:
cryptsetup luksAddKey /dev/$DEVICE
Dazu musst du das Passwort eines schon vorhandenen Schlüssels eingeben. Analog dazu kannst du mit luksDelKey
ein Schlüssel wieder entfernen.
Paranoia
Mit dmsetup info
lassen sich benutzte devicemappings anzeigen. Taucht hier ein Teil als ACTIVE
auf, so hat jedermensch darauf Zugriff (auch wenn es nicht gemountet ist, könnte - wer die nötigen Rechte hat - das Teil ohne passendes Cryptokennwort mounten) - es ist in diesem Zustand quasi entschlüsselt!
Deswegen immer nach dem unmounten, das mapping entfernen (sonst gibt's (erfahrene Beamte vorausgesetzt) evtl. Stress bei der Hausdurchsuchung):
umount $MOUNT cryptsetup luksClose $CRYPTODEVICE
Du kannst alle mappings gleichzeitig entfernen mit:
dmsetup remove_all
Denk dran: cryptsetup luksClose
niemals nicht vergessen oder aber Stecker ziehen ;) !