GNU/Linux >> LINUX-Kenntnisse >  >> Linux

10 Linux-Cryptsetup-Beispiele für die LUKS-Schlüsselverwaltung (Hinzufügen, Entfernen, Ändern, Zurücksetzen des LUKS-Verschlüsselungsschlüssels)

LUKS ist die Festplattenverschlüsselung für Linux.

Wenn Sie zum ersten Mal eine Partition mit LUKS verschlüsseln (oder wenn Sie während der Installation des Betriebssystems die Option „Datenträger verschlüsseln“ auswählen), müssen Sie ein Kennwort angeben, das beim Öffnen der LUKS-Partition verwendet wird.

Aber danach können Sie die Partition beliebig oft mounten und unmounten, ohne das Passwort eingeben zu müssen, bis Sie das System neu starten.

Stellen Sie sich die folgenden zwei Szenarien vor:

  1. Sie haben das LUKS-Passwort vergessen. Oder Sie haben ein System von jemandem geerbt, der eine gemountete Partition mit LUKS-Verschlüsselung hat. Sie haben dafür kein LUKS-Passwort. Wenn Sie das System neu starten, werden Sie in Schwierigkeiten geraten, da Sie den LUKS-Schlüssel nicht haben.
  2. Aus Sicherheitsgründen müssen Sie das LUKS-Verschlüsselungskennwort häufig ändern. In diesem Fall müssen Sie den LUKS-Schlüssel rotieren, ohne die gemountete Partition zu stören.

In diesem Tutorial besprechen wir alles, was Sie über die LUKS-Schlüsselverwaltung wissen müssen.

1. Acht LUKS-Schlüsselfächer

In LUKS können Sie für eine einzelne verschlüsselte Partition acht verschiedene Schlüssel haben.

Jeder der acht verschiedenen Schlüssel kann verwendet werden, um die verschlüsselte Partition zu öffnen.

Sie können wählen, ob Sie nur einen Schlüssel auf einer Partition haben möchten, oder Sie können allen acht verschiedene Schlüssel zuweisen.

Diese Schlüssel werden in LUKS-Schlüsselsteckplätzen für die Partition gespeichert. Es gibt also 8 Schlüsselplätze für eine Partition.

Um alle Schlüsselplätze anzuzeigen, verwenden Sie cryptsetup luksDump wie unten gezeigt. In diesem Beispiel werden nur zwei Steckplätze verwendet.

# cryptsetup luksDump /dev/sdb1 | grep Slot
Key Slot 0: ENABLED
Key Slot 1: ENABLED
Key Slot 2: DISABLED
Key Slot 3: DISABLED
Key Slot 4: DISABLED
Key Slot 5: DISABLED
Key Slot 6: DISABLED
Key Slot 7: DISABLED

Oben:

  • /dev/sdb1 ist die LUKS-verschlüsselte Partition.
  • Schlüsselsteckplatznummer beginnt bei 0. Da wir 8 Steckplätze haben, beginnt die Schlüsselsteckplatznummer bei 0 bis 7.
  • ENABLED gibt an, dass diesem bestimmten Slot ein Schlüssel zugewiesen wurde.
  • Hier haben wir zwei Slots mit LUKS-Schlüssel. Der /dev/sdb1 LUKS-verschlüsselten Partition sind also zwei Schlüssel zugewiesen.

2. Neuen LUKS-Schlüssel hinzufügen

Um eine neue LUKS-Passphrase (LUKS-Schlüssel) zur LUKS-verschlüsselten Partition /dev/sdb1 hinzuzufügen, verwenden Sie den Befehl cryptsetup luksAddKey wie unten gezeigt.

# cryptsetup luksAddKey /dev/sdb1
Enter any passphrase: 
Enter new passphrase for key slot: 
Verify passphrase: 

Oben:

  • Wenn dort „Enter any passphrase:“ steht, sollten Sie eines der vorhandenen Passwörter für /dev/sdb1 eingeben. Wie wir oben gesehen haben, hatte dieser bereits zwei Passwörter von Slot 0 und Slot 1. Sie sollten eines dieser Passwörter zuerst eingeben.
  • Sobald Sie ein vorhandenes Passwort eingegeben haben, können Sie einen neuen LUKS-Schlüssel zuweisen.

Jedes Mal, wenn Sie einen neuen LUKS-Schlüssel hinzufügen, wird er dem nächsten verfügbaren Steckplatz hinzugefügt. Da wir bereits zwei vorhandene Schlüssel hatten, wurde der neue Schlüssel zu Steckplatz Nr. 2 hinzugefügt, der der nächste verfügbare Steckplatz war.

Slot#0 bis 2 sagen also „ENABLED“. Wir haben drei LUKS-Schlüssel auf /dev/sdba1.

# cryptsetup luksDump /dev/sdb1 | grep Slot
Key Slot 0: ENABLED
Key Slot 1: ENABLED
Key Slot 2: ENABLED
Key Slot 3: DISABLED
Key Slot 4: DISABLED
Key Slot 5: DISABLED
Key Slot 6: DISABLED
Key Slot 7: DISABLED

3. Neuen LUKS-Schlüssel zu einem bestimmten Slot hinzufügen

Anstatt dass LUKS den neuen Schlüssel dem nächsten verfügbaren Steckplatz hinzufügt, können Sie auch einen neuen Schlüssel zu einem bestimmten Steckplatz hinzufügen.

Verwenden Sie dazu die Option -S im cryptsetup luksAddKey wie unten gezeigt.

In diesem Beispiel fügen wir Steckplatz Nr. 5 einen neuen LUKS-Schlüssel hinzu. Ich habe die neue Passphrase wie folgt zugewiesen:PasswordforSlot5

# cryptsetup luksAddKey /dev/sdb1 -S 5

Wie wir unten sehen, sagt Slot#5 jetzt „ENABLED“, während Slot#3 und #4 immer noch im DISABLED-Zustand sind.

# cryptsetup luksDump /dev/sdb1 | grep Slot
Key Slot 0: ENABLED
Key Slot 1: ENABLED
Key Slot 2: ENABLED
Key Slot 3: DISABLED
Key Slot 4: DISABLED
Key Slot 5: ENABLED
Key Slot 6: DISABLED
Key Slot 7: DISABLED

In diesem Stadium haben wir 4 LUKS-Schlüssel, die der /dev/sdb1 verschlüsselten Partition zugewiesen sind.

4. Einen vorhandenen LUKS-Schlüssel löschen

Um einen vorhandenen Schlüssel von der LUKS-Partition zu entfernen, verwenden Sie cryptsetup luksRemoveKey wie unten gezeigt.

In diesem Beispiel müssen Sie nur das Passwort (Schlüssel) eingeben, das Sie löschen möchten.

Entfernen/Löschen/Löschen eines LUKS-Schlüssels aus einem Steckplatz. Sie müssen die Steckplatznummer nicht angeben. Geben Sie stattdessen den zu löschenden Schlüssel an!.

In diesem Beispiel habe ich bei der Aufforderung „Zu löschende LUKS-Passphrase eingeben:“ den Schlüssel eingegeben, der im vorherigen Beispiel erstellt wurde:PasswordforSlot5

# cryptsetup luksRemoveKey /dev/sdb1
Enter LUKS passphrase to be deleted: 

Wie Sie der folgenden luksDump-Ausgabe entnehmen können, ist der Schlüssel in Slot#5 jetzt gelöscht.

# cryptsetup luksDump /dev/sdb1 | grep Slot
Key Slot 0: ENABLED
Key Slot 1: ENABLED
Key Slot 2: ENABLED
Key Slot 3: DISABLED
Key Slot 4: DISABLED
Key Slot 5: DISABLED
Key Slot 6: DISABLED
Key Slot 7: DISABLED

5. Löschen Sie einen LUKS-Schlüssel mit luksKillSlot

Wenn Sie den Schlüssel für einen bestimmten Slot nicht haben, ihn aber einfach löschen möchten, können Sie dies mit dem Befehl cryptsetup luksKillSlot tun, wie unten gezeigt.

In diesem Beispiel löschen wir den Schlüssel aus LUKS-Steckplatz Nr. 2.

Dazu müssen Sie den LUKS-Schlüssel für einen der Slots eingeben. Dies dient nur als Validierung, bevor der Schlüssel aus Slot#2 gelöscht wird.

# cryptsetup luksKillSlot /dev/sdb1 2
Enter any remaining LUKS passphrase: 

Wie Sie der folgenden luksDump-Ausgabe entnehmen können, ist der Schlüssel in Slot#2 jetzt gelöscht.

# cryptsetup luksDump /dev/sdb1 | grep Slot
Key Slot 0: ENABLED
Key Slot 1: ENABLED
Key Slot 2: DISABLED
Key Slot 3: DISABLED
Key Slot 4: DISABLED
Key Slot 5: DISABLED
Key Slot 6: DISABLED
Key Slot 7: DISABLED

6. Neuen LUKS-Schlüssel aus einer Datei hinzufügen

Sie können auch einen neuen LUKS-Schlüssel basierend auf einer Schlüsseldatei hinzufügen, die Sie bereits haben, wie unten gezeigt.

# cryptsetup luksAddKey  /dev/sdb1 masterkeyfile
Enter any passphrase: 

Oben:

  • masterkeyfile enthält den neuen LUKS-Schlüssel, den Sie hinzufügen möchten. Dies sollte eine Binärdatei sein.
  • Wenn Sie „Geben Sie eine beliebige Passphrase ein:“ auffordern, geben Sie einen der vorhandenen LUKS-Schlüssel für die /dev/sdb1-Partition ein.
  • Wie Sie oben sehen, hat es nicht nach einem neuen LUKS-Schlüssel gefragt, da es aus der Masterkey-Datei genommen wurde.

Wie Sie der folgenden luksDump-Ausgabe entnehmen können, wird dieser neue Schlüssel aus der Masterkey-Datei zu Slot#2

hinzugefügt
# cryptsetup luksDump /dev/sdb1 | grep Slot
Key Slot 0: ENABLED
Key Slot 1: ENABLED
Key Slot 2: ENABLED
Key Slot 3: DISABLED
Key Slot 4: DISABLED
Key Slot 5: DISABLED
Key Slot 6: DISABLED
Key Slot 7: DISABLED

7. Vergessenen LUKS-Schlüssel zurücksetzen – Vorhandenen Schlüssel abrufen

Wenn Sie den Server neu gestartet haben und Ihre verschlüsselte LUKS-Partition nicht mounten können, weil Sie Ihr LUKS-Passwort vergessen haben, dann haben Sie Pech, Sie können es zurücksetzen.

Wenn jedoch bereits eine verschlüsselte LUKS-Partition geöffnet ist und Sie das System nicht neu gestartet haben und das LUKS-Passwort für die bereits gemountete Partition vergessen haben (mindestens LUKS wurde seit dem letzten Neustart einmal geöffnet), können Sie dies tun Weisen Sie einen neuen LUKS-Schlüssel zu.

In diesem Szenario „Mein LUKS-Passwort vergessen“ können Sie die folgenden zwei Schritte ausführen:

  1. Extrahieren Sie den aktuellen verschlüsselten Schlüssel aus der LUKS-Partition
  2. Erstellen Sie einen neuen LUKS-Schlüssel mit dem oben extrahierten verschlüsselten Schlüssel

In diesem Beispiel habe ich die /home1-Partition gemountet, die eine LUKS-verschlüsselte Partition ist, aber ich habe kein Passwort dafür.

# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1             127G   44G   76G  37% /
/dev/mapper/home1      93G  188M   88G   1% /home1

Der Volume-Name ist das, was nach „/dev/mapper/“ in der ersten Spalte der obigen df-Befehlsausgabe steht. In unserem Beispiel lautet der Volume-Name also „home1“

Die folgende dmsetup-Tabelle –showkeys zeigt die verschlüsselten Schlüssel aller Partitionen, die auf Ihrem System gemountet sind.

# dmsetup table --showkeys 
home1: 0 197259264 crypt aes-cbc-essiv:sha256 607f482870c795a9b1e307ffbfc6643eaa219e9ef8c6773de02cd298c8fcda3c 0 8:17 4096

Das Feld nach „aes-cbc-essiv:sha256“ ist das verschlüsselte Passwort. Holen Sie sich den verschlüsselten LUKS-Schlüssel und speichern Sie ihn in einer Datei.

# vi existinglukskey.txt
607f482870c795a9b1e307ffbfc6643eaa219e9ef8c6773de02cd298c8fcda3c

8. Vergessenen LUKS-Schlüssel zurücksetzen – Binärschlüsseldatei erstellen

Nun müssen wir diesen vorhandenen Schlüssel von einer Textdatei in eine Binärdatei konvertieren. Verwenden Sie den xxd-Befehl wie unten gezeigt.

# xxd -r -p existinglukskey.txt existinglukskey.bin

Oben:

  • -r Option ist für umgekehrt. Dadurch wird der Hexdump in binär umgewandelt.
  • Die Option
  • -p ist für Postscript. Dies zeigt den kontinuierlichen Postscript-Hexdump-Stil an.
  • existinglukskey.txt-Eingabedatei
  • existinglukskey.bin Ausgabedatei. Diese enthält nun das vorhandene verschlüsselte LUKS-Passwort in einer Binärdatei.

9. Vergessenen LUKS-Schlüssel zurücksetzen – Neuen Schlüssel hinzufügen

Fügen Sie schließlich einen neuen LUKS-Schlüssel hinzu, indem Sie den vorhandenen LUKS-Schlüssel verwenden, den wir in die Binärdatei extrahiert haben.

# cryptsetup luksAddKey /dev/sdb1 --master-key-file <(cat existinglukskey.bin)
Enter new passphrase for key slot: 
Verify passphrase: 

Oben:

  • –master-key-file Geben Sie hier die Binärdatei an. Verwenden Sie nicht dieexistinglukskey.txt. Verwenden Sie stattdessen die existentelukskey.bin, die wir oben erstellt haben.
  • Wie Sie oben sehen, hat der luksAddKey nicht nach dem vorhandenen LUKS-Passwort gefragt, da er es aus der Binärdatei genommen hat.
  • Wenn Sie aufgefordert werden „Neue Passphrase für Schlüsselsteckplatz eingeben:“, geben Sie das neue LUKS-Passwort ein. Aber vergiss das diesmal nicht.

Denken Sie noch einmal daran:Wenn Sie das LUKS-Passwort vergessen, nachdem Sie das System neu gestartet haben, haben Sie kein Luks mehr (kein Glück), da Sie es nicht zurücksetzen können.

10. Dump LUKS MasterKey

Sie können den MasterKey auch entsorgen und irgendwo sicher aufbewahren. Verwenden Sie die Option –dump-master-key zusammen mit luksDump wie unten gezeigt.

# cryptsetup luksDump --dump-master-key /dev/sdb1
Are you sure? (Type uppercase yes): YES
Enter LUKS passphrase: 
LUKS header information for /dev/sdb1
Cipher name:    aes
Cipher mode:    cbc-essiv:sha256
Payload offset: 4096
UUID:           146d639a-757c-4bcb-aee6-8fe815345104
MK bits:        256
MK dump:        60 7f 48 28 70 c7 95 a9 b1 e3 07 ff bf c6 64 3e 
                aa 21 9e 9e f8 c6 77 3d e0 2c d2 98 c8 fc da 3c 

Denken Sie daran, dass Sie den LUKS-Header-Dump an einem sicheren Ort aufbewahren müssen. Mit dem Master-Key-Dump kann jemand an die LUKS-verschlüsselte Partition gelangen.


Linux
  1. So fügen Sie einen Benutzer zu einer Gruppe in Linux hinzu oder entfernen ihn

  2. So ändern, entfernen oder deaktivieren Sie das Benutzerkennwort in Linux

  3. Benutzer zu Gruppe in Linux hinzufügen, Anleitung (mit Beispielen)

  4. So ändern Sie die Shell unter Linux

  5. So richten Sie SSH-Schlüssel für die „kennwortlose“ SSH-Anmeldung unter Linux ein

So fügen Sie Cacti einen Remote-Linux-Host zur Überwachung hinzu

So fügen Sie einen Linux-Host in Zabbix Server zur Überwachung hinzu

So fügen Sie ein Passwort hinzu, um eine Vim-Datei in Linux zu schützen

So ändern Sie den Benutzer unter Linux

So ändern Sie die IP-Adresse unter Linux

7 Beispiele für Linux-Route-Befehle (So fügen Sie eine Route unter Linux hinzu)