Luks Encryption

Änderungsstand: 2021-09-21

Eine ext. Festplatte verschlüsseln? Mit dem Addon Luksencryption ist das kein Problem, wenn man weiß, wie man es anwendet.

Eines als keine Info vornweg. Eine Platte mit bestehenden Daten zu verwenden, wenn diese noch nicht verschlüsselt ist und eine nachträgliche Verschlüsselung erhalten soll, funktioniert nicht. Wenn ich mit der Konfiguration fertig bin, werden alle Daten, die vorher auf dieser Platte waren, weg sein. Ich bereite nun Luksencryption auf OMV5 vor.

Zuerst unter „Erweiterungen“ das Plugin „openmediavault-luksencryption“ installieren.

Dann eine externe Festplatte anschließen. Nun:

  • „Datenspeicher“
    • „Laufwerke“
      • Die eben angeschlossene Platte LÖSCHEN (bei mir ist es das Gerät sda)

Dann:

  • „Datenspeicher“
    • „Verschlüsselung“
      • „+ Erstellen“
        • Gerät: /dev/sda
        • Cipher: aes-cbc-essiv:sha256
        • Datenträgerbezeichnung: Extern
        • Passphrase: Sicheres Passwort verwenden
        • Confirm passphrase: Sicheres Passwort wiederholen
        • „Erstellen“
        • Device Verschlüsseln? – Ja

Die Platte wurde verschlüsselt. Zum Entschlüsseln das Gerät selektieren, „Unlock“ wählen und das eben verwendete Passwort eingeben. Die Platte ist nun verwendbar. Jetzt kann ich die Platte im OMV einbinden:

  • „Datenspeicher“
    • „Dateisysteme“
      • „+ Erstellen“
        • Gerät: Luks encrypted container on /dev/sda
        • Datenträgerbezeichnung: Extern
        • Dateisystem: EXT4 (BTRFS funktioniert auch und geht sehr viel schneller, ist aber auf OMV5, jedenfalls offiziell, noch nicht empfohlen)
        • OK – Das Dateisystem wird erstellt.
        • Datenträger „Extern“ (/dev/dm-0) selektieren und „Einbinden“

Das verschlüsselte Laufwerk wurde eingebunden. Zum Test starte ich das System nun Neu. Nach dem Neustart gehe ich zu:

  • „Datenspeicher“
    • „Dateisysteme“

Hier sehe ich, dass die externe Platte den Status „fehlend“ aufweist. Nun zu „Encryption“, Laufwerk selektieren, Unlock und Passwort eingeben. Jetzt wieder zu „Dateisysteme“ und die Platte hat den Status „Online“. Das hat also funktioniert 🙂

Nun ein weiterer Test. Ich erstelle auf diesem Laufwerk eine Freigabe (appdata) und gebe diese anschließend als SMB-Freigabe frei und erstelle auf einem anderen PC eine Samba-Freigabe zu meinem OMV-Server. Der Ordner appdata wird angezeigt. Dort erstelle ich nun einen Ordner und kopiere eine Datei hinein. Nun Starte ich das OMV-System neu. Nach dem Neustart versuche ich meine Samba-Freigabe aufzurufen – – keine Chance. Erst, nachdem ich unter „Encryption“ das Laufwerk auf „Unlock“ setzte, war die Freigabe verfügbar.

Und noch ein Test. Ich entferne die Platte, nachdem ich meinen OMV-Server ausschaltete und schloss diese an einem anderen Linux-System an, um meine Daten auszulesen. Doch was ist das? Nichts vorhanden 🙂 . Auch das funktionierte dementsprechend bestens…

Luksencryption wurde eingerichtet und funktioniert. Hier möchte ich erwähnen, dass am Ende des Guides noch die Möglichkeit einer automatischen Entschlüsselung, mittels USB-Stick, vorgestellt wird.

Luks Header sichern:

  • „Verschlüsselung“
    • Platte selektieren
      • „Recovery“
        • Backup header

Der Header wird gesichert. Diesen, vorsichtshalber, an einem sicheren Ort aufbewahren. Vielleicht benötigt man den später einmal :-). Der Header beinhaltet den Hauptschlüssel und die zum Entsperren verwendeten Schlüssel. Man kann den Header z.B. verwenden, um eine automatisierte Entschlüsselung der Platte zu gewährleisten.

OMV5 muss neu installiert werden. Funktioniert die verschlüsselte Platte noch?

Natürlich. Folgende Reihenfolge abarbeiten:

  • Addon Luksencryption installieren
  • ext. Platte anklemmen
  • „Encryption“ wählen
  • Platte selektieren und Unlock klicken
  • Schlüssel-Passwort eingeben – Platte wird entschlüsselt
  • Danach:
    • „Dateisysteme“
      • Die Platte (/dev/dm-0) einbinden
  • „Freigegebene Ordner“
    • Die Ordner anlegen, wie das vorher der Fall war (bei mir war das nur appdata)
  • Optional: appdata per Samba freigeben

Und siehe da – – Die angelegten Daten und Verzeichnisse, die ich unter appdata anlegte, sind wieder vorhanden.

Sollte bei diesem Verfahren etwas schief gehen, könnte man vielleicht auch den gesicherten Header im „Encryption“-Menu wiederherstellen. Ich benötigte das allerdings nicht.

.

Jetzt eine automatische Entschlüsselung der Luks-Platte, mittels USB-Stick. Ich werde diesen Stick nicht in Openmediavault einbinden, weil es nicht nötig ist. Hat man den Stick nicht zur Hand, kann man immer noch mit dem üblichen Befehl entsperren. In diesem Szenario wird man keinerlei Hinweise eines Schlüssels auf dem Stick finden. Und selbst wenn, ist es sehr unwahrscheinlich, dass irgendwelche Rückschlüsse auf das Passwort zu finden sind.

Mein Luks-Laufwerk ist sda. Ich stecke nun einen USB-Stick an.

lsblk

Mein USB-Stick hat die Laufwerksbezeichnung sdb. Nun formatiere ich den Stick:

Label neu schreiben:

sudo parted /dev/sdb "mklabel gpt"
yes

Partitionierung vornehmen:

sudo cfdisk /dev/sdb
  • New – Enter
  • Enter
  • Type – Enter
    • Linux Filesystem – Enter
  • Write – Enter
  • yes – Enter
  • Quit – Enter

Formatierung:

sudo mkfs.ext4 /dev/sdb
y

Der Stick wurde vorbereitet. Nun richte ich den Stick als Schlüsselstick ein. In diesem Szenario wird man am Ende keine Daten, die auf einem Schlüssel zurückzuführen sind, finden.

sudo dd if=/dev/urandom of=/dev/sdb bs=512 seek=1 count=2046 

Der Schlüssel wurde erstellt. Doch meine Luks-Platte weiß noch nichts davon. Ich muss den Schlüssel meiner Luks-Platte nun hinzufügen:

sudo dd if=/dev/sdb bs=512 skip=1 count=16 > tempKeyFile.bin
sudo cryptsetup luksAddKey /dev/sda tempKeyFile.bin

Jetzt eine vorhandene Passphrase, welche in Luks schon verwendet wird, eingeben. Anschließend das Temp-File wieder löschen:

sudo rm -f tempKeyFile.bin 

Die Vorbereitungen sind nun beendet. Der Schlüssel passt in das Schloss und es muss nur noch die Automatisierung vorbereitet werden.

sudo ls -l /dev/disk/by-id

lrwxrwxrwx 1 root root 9 Sep 21 01:18 usb-USB_Flash_Disk_CCYYMMDDHHW9XS1QP4JS-0:0 -> ../../sdb

Die rote Markierung benötige ich später. Nun noch:

blkid

Folgende Zeile, speziell die rote Markierung, benötige nun:

/dev/sda: UUID=“6c8bbc0c-d137-44ae-9e5a-f55dca9ed663“ LABEL=“data“ TYPE=“crypto_LUKS“

Jetzt erstelle ich einen Eintrag, am Ende der crypttab:

sudo nano /etc/crypttab
sda-crypt UUID=6c8bbc0c-d137-44ae-9e5a-f55dca9ed663 /dev/disk/by-id/usb-USB_Flash_Disk_CCYYMMDDHHW9XS1QP4JS-0:0 luks,tries=3,keyfile-size=8192,keyfile-offset=512

Strg-x, y, Enter

Erklärung:

  • sda-crypt: mapper
  • UUID: Die UUID der verschlüsselten Platte, gefolgt von der Kennung des USB-Sticks und am Ende die Informationen, wo der Schlüssel zu finden ist.

Mehr benötigt man unter Openmediavault nicht. Der Eintrag in der fstab ist nicht notwendig, da Openmediavault die Luks-Platte automatisch einbindet, vorausgesetzt, der Stick steckt am System. Wichtig ist nur, dass man den richtigen „mapper“ (sda-crypt) verwendet.

Natürlich ist hier sehr viel Disziplin erforderlich. Lässt man den Stick permanent am Gerät stecken, ist das ganze Szenario natürlich Sinnfrei 🙂 .

Hat man den Stick nicht zur Hand, kann man die Luks-Platte immer noch mit dem Web-UI von OMV5 oder folgendem Terminalbefehl entsperren:

sudo cryptsetup luksOpen /dev/sda sda-crypt

Quelle:

https://decatec.de/linux/verschluesselte-festplatte-luks-mit-usb-stick-bei-systemstart-entschluesseln/

Erstelle deine Website mit WordPress.com
Jetzt starten