Das folgende Tutorial beschreibt die Einrichtung einer verschlüsselten Partition unter Debian mit dm-crypt und LUKS.
Schritt 1: System auf den neuesten Stand bringen
apt-get update && apt-get upgrade --show-upgraded
Schritt 2: Installation von cryptsetup und pv
Zunächst muss cryptsetup installiert werden. Um den Verschlüsselungsprozess überwachen zu können wird zusätzlich pv (pipe-viewer), benötigt.
apt-get install cryptsetup pv
Schritt 3: Eine LUKS Partition konfigurieren
ACHTUNG: Der folgende Befehl entfernt alle Daten von der gewählten Partition.
Vorrausgesetzt es existiert bereits eine Partition auf dem System die verschlüsselt werden soll, reicht folgender Befehl um die Partition als verschlüsselte Partition anzulegen bzw. zu initialisieren.
cryptsetup -y -v luksFormat /dev/sdaX
cryptsetup sollte Folgendes ausgeben:
WARNING! ======== This will overwrite data on /dev/sdaX irrevocably. Are you sure? (Type uppercase yes): YES Enter LUKS passphrase: Verify passphrase: Command successful.
Alle Daten der Partition werden nun verschlüsselt.
Schritt 4: Partition entschlüsseln und prüfen
Ist die verschlüsselte Partition angelegt kann sie mit folgendem Befehl geöffnet werden. Der Name „verschluesselte_partition“ ist dabei frei wählbar.
cryptsetup luksOpen /dev/sdaX verschluesselte_partition
cryptsetup fragt daraufhin nach dem Passwort:
Enter passphrase for /dev/sdaX:
Wurde das Passwort akzeptiert, wird im Ordner /dev/mapper/ ein Link mit dem Namen „verschluesselte_partition“ angelegt. Das kann folgendermaßen überprüft werden:
ls -l /dev/mapper/verschluesselte_partition
Der Befehl sollte folgende Ausgabe liefern:
lrwxrwxrwx 1 root root 7 Feb 2 12:35 /dev/mapper/verschluesselte_partition -> ../dm-0
Um den Status der verschlüsselten Partition abzufragen wird folgender Befehl verwendet:
cryptsetup -v status verschluesselte_partition
Der Befehl sollte eine ähnliche Ausgabe wie folgende liefern:
/dev/mapper/cryptdata is active and is in use. type: LUKS1 cipher: aes-cbc-essiv:sha256 keysize: 256 bits device: /dev/sdaX offset: 4096 sectors size: 2895194112 sectors mode: read/write Command successful.
Schritt 5: Verschlüsselte Partition überschreiben
Um sicher zu gehen, dass die Daten der verschlüsselten Partition nicht lokalisiert werden können wird empfohlen die Partition vor der Nutzung mit Zufallszahlen beschrieben wird. Das lässt sich mit folgendem Befehl erledigen:
pv -tpreb /dev/urandom | dd of=/dev/mapper/verschluesselte_partition bs=128M
dd kann je nach Größe der Partition eine ganze Weile brauchen, bis der Schreibvorgang abgeschlossen ist. An dieser Stelle ist Zeit für einen Kaffee…
Schritt 6: Dateisystem erstellen
Im Anschluss benötigt die Partition noch ein Dateisystem. Im Beispiel wird ext4 verwendet, es kann aber natürlich jedes beliebige Dateisystem verwendet werden.
mkfs.ext4 /dev/mapper/verschluesselte_partition
Schritt 7: Partition mounten
Ist das Dateisystem angelegt, kann ein Ordner für die Partition angelegt, und die Partition gemountet werden.
mkdir /mnt/verschluesselte_partition mount /dev/mapper/verschluesselte_partition /mnt/verschluesselte_partition
Fertig. Nun können Daten auf die verschlüsselte Partition geschrieben werden.
Verschlüsselung im täglichen Gebrauch
Partition öffnen und mounten
cryptsetup luksOpen /dev/sdaX verschluesselte_partition mount /dev/mapper/verschluesselte_partition /mnt/verschluesselte_partition
Alternativ kann zum öffnen und mounten einer verschlüsselten Partition folgendes Script verwendet werden:
#!/bin/bash set -e cryptsetup luksOpen /dev/sda11 cryptdata && mount /dev/mapper/cryptdata /data if [[ $? -ne 0 ]]; then echo "Drive could not be mounted." exit 1 # exit unsuccessful fi if [[ $? -ne 1 ]]; then echo "Drive successfully mounted." exit 0 # exit successful fi
Partition unmounten und schließen
umount /mnt/verschluesselte_partition cryptsetup luksClose verschluesselte_partition
Alternativ kann zum unmounten und schließen einer verschlüsselten Partition folgendes Script verwendet werden:
#!/bin/bash set -e umount /data && cryptsetup luksClose cryptdata if [[ $? -ne 0 ]]; then echo "Drive could not be unmounted." exit 1 # exit unsuccessful fi if [[ $? -ne 1 ]]; then echo "Drive successfully unmounted." exit 0 # exit successful fi
Passwort einer verschlüsselten Partition ändern
Eine verschlüsselte Partition kann mehrere Passwörter haben. Diese werden in Key Slots gespeichert. Um die Key Slots und deren Belegung anzuzeigen, wird folgender Befehl verwendet:
cryptsetup luksDump /dev/sdaX
Um das Passwort einer verschlüsselten Partition zu ändern, muss zuerst ein neues Passwort angelegt werden.
cryptsetup luksAddKey /dev/sdaX
Es wird nun eines der bereits vergebenen Passwörter abgefragt. Danach kann das neue Passwort eingegeben werden.
Enter any passphrase: Enter new passphrase for key slot:
Im Anschluss wird das alte Passwort mit folgendem Befehl entfernt:
cryptsetup luksRemoveKey /dev/sdaX
Es wird das Passwort abgefragt, welches gelöscht werden soll. Hier muss nochmals das alte Passwort angegeben werden:
Enter LUKS passphrase to be deleted:
Vielen Dank für diese sehr gute und einfach zu verstehende Anleitung!
Danke für das positive Feedback. Freut mich geholfen zu haben!