LUKS – Verschlüsselte Datenfestplatte

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

LUKS – Verschlüsselte Datenfestplatte

LUKS (Linux Unified Key Setup) ist der Standard zur Festplattenverschlüsselung unter Linux. In diesem Artikel wird eine zweite Festplatte verschlüsselt eingebunden. Die Verschlüsselung erfolgt direkt auf der Partition – ohne LVM.

Szenario

  • Zweite Festplatte: /dev/sdb
  • Eine Partition: /dev/sdb1 (20 GB)
  • Mountpoint: /mnt/data
  • Einhängen beim Systemstart mit Passwortabfrage

Voraussetzungen

  • apt-get install cryptsetup cryptsetup-initramfs

Partition anlegen

Falls /dev/sdb noch keine Partition hat:

  • fdisk /dev/sdb

Im fdisk-Dialog:

n   → neue Partition
p   → primär
1   → Nummer 1
    → Enter (Standard-Start)
    → Enter (Standard-Ende, gesamte Disk)
w   → schreiben und beenden

Ergebnis prüfen:

  • fdisk -l /dev/sdb
Device     Boot Start      End  Sectors Size Id Type
/dev/sdb1        2048 41943039 41940992  20G 83 Linux

LUKS-Container erstellen

  • cryptsetup luksFormat /dev/sdb1
WARNING!
========
This will overwrite data on /dev/sdb1 irrevocably.

Are you sure? (Type uppercase yes): YES
Enter passphrase for /dev/sdb1:
Verify passphrase:

LUKS-Container öffnen

  • cryptsetup open /dev/sdb1 cryptdata
Enter passphrase for /dev/sdb1:

Der Container ist jetzt unter /dev/mapper/cryptdata verfügbar.

Dateisystem erstellen

  • mkfs.ext4 /dev/mapper/cryptdata

Mountpoint erstellen

  • mkdir /mnt/data

Manuell einhängen (Test)

  • mount /dev/mapper/cryptdata /mnt/data
  • df -h /mnt/data
Filesystem             Size  Used Avail Use% Mounted on
/dev/mapper/cryptdata   20G  2.1M   19G   1% /mnt/data

Zum Testen wieder aushängen:

  • umount /mnt/data
  • cryptsetup close cryptdata

Automatisch einhängen beim Systemstart

UUID ermitteln

  • blkid /dev/sdb1
/dev/sdb1: UUID="eab7be99-90d8-4986-88a7-bdfb9d7ff502" TYPE="crypto_LUKS" PARTUUID="89a985e7-01"

/etc/crypttab

  • Eintragen des LUKS-Container ein, damit er beim Booten geöffnet wird:
crypt-data UUID=eab7be99-90d8-4986-88a7-bdfb9d7ff502 none luks,initramfs
Feld Bedeutung
crypt-data Name des Mappers unter /dev/mapper/
UUID=... UUID der verschlüsselten Partition
none Passwort wird interaktiv beim Boot abgefragt
luks Format-Typ

/etc/fstab

Hängt das Dateisystem nach dem Öffnen ein:

/dev/mapper/cryptdata   /mnt/data   ext4   defaults   0 2

Systemstart

Beim nächsten Booten erscheint eine Passwortabfrage für /dev/sdb1. Nach korrekter Eingabe wird /mnt/data automatisch eingehängt.

Datei:Luks-boot.png

Ergebnis prüfen

  • df -h /mnt/data
Filesystem                Size  Used Avail Use% Mounted on
/dev/mapper/cryptdata    16G   28M   15G   1% /mnt/data
  • cryptsetup status crypt-data
/dev/mapper/cryptdata is active and is in use.
  type:    LUKS2
  cipher:  aes-xts-plain64
  keysize: 512 bits
  key location: keyring
  device:  /dev/sdb1

Nützliche Befehle

Befehl Bedeutung
cryptsetup luksDump /dev/sdb1 LUKS-Header anzeigen (Slots, Algorithmen)
cryptsetup luksAddKey /dev/sdb1 Weiteres Passwort hinzufügen (bis zu 8 Slots)
cryptsetup luksChangeKey /dev/sdb1 Passwort ändern
cryptsetup open /dev/sdb1 crypt-data Container manuell öffnen
cryptsetup close crypt-data Container manuell schließen

Links