Filesystem verschlüsseln

From Linuxwiki
Jump to navigation Jump to search

Ziel

Wir wollen ein komplettes Filesystem verschlüsseln, so dass es in ungemountetem Zustand nicht lesbar ist.

Anwendung

Wir erstellen beispielhaft einen verschlüsselten USB-Stick, der nach Eingabe eines Passworts ganz normal als ext4-Filesystem gemountet werden kann.

verwendete Software

cryptsetup mit LUKS

Wie geht's

Als erstes ermitteln, um welches Device es sich handelt. Hier im Beispiel wird /dev/sdd1 verwendet (wie ein Device partitioniert wird, kann man hier nachlesen).

  • Zunächst wird das Filesystem verschlüsselt. Achtung: Dabei gehen alle Daten verloren !
# cryptsetup luksFormat -v /dev/sdd1 

WARNING!
========
This will overwrite data on /dev/sdd1 irrevocably.

Are you sure? (Type uppercase yes): YES
Enter passphrase: 
Verify passphrase: 
Command successful.

Achtung, wird das Passwort vergessen, sind alle Daten unwiderbringlich verloren !

  • Dann wird das verschlüsselte Device angelegt (der Name ist frei wählbar)
# cryptsetup luksOpen /dev/sdd1 usbdata
Enter passphrase for /dev/sdd1:
  • Das neue Device mit ext4 formatieren:
# mkfs.ext4 /dev/mapper/usbdata
  • Das Device mounten
# mount /dev/mapper/usbdata /usb/
  • Nun kann das Device wie gehabt beschrieben werden.
  • Unmounten des Device:
# umount /usb
  • Verschlüsseln des Device
# cryptsetup luksClose usbdata
  • Will man das Device erneut mounten, muss es wieder entschlüsselt werden:
# cryptsetup luksOpen /dev/sdd1 usbdata

Mounten ohne Passworteingabe:

Prinzipiell ist es möglich, das Device auch ohne Eingabe eines Passworts zu mounten. Hierfür legt man zunächst ein Keyfile an:

# dd if=/dev/urandom of=/usr/local/share/keyfile bs=1024 count=4
# chmod 0400 /usr/local/share/keyfile
# cryptsetup luksAddKey /dev/sdd1 /usr/local/share/keyfile

Damit das Keyfile auch gefunden wird, muss es folgenden Eintrag in der /etc/crypttab geben:

Quellen

[1] [2]