Filesystem verschlüsseln: Difference between revisions
No edit summary |
No edit summary |
||
Line 93: | Line 93: | ||
Hierfür muss natürlich das Passwort bekannt sein. Geht dieses auch noch verloren, sind die Daten futsch ! |
Hierfür muss natürlich das Passwort bekannt sein. Geht dieses auch noch verloren, sind die Daten futsch ! |
||
= Partition vergrößern = |
|||
Kann z.B. interessant werden, wenn es sich nicht um einen USB-Stick, sondern die Partition einer Festplatte handelt. In diesem Fall ist die richtige Reihenfolge: |
|||
- Partition vergrößern<br> |
|||
- luks Filesystem vergrößern<br> |
|||
- ext4 vergrößern<br> |
|||
* Partition unmounten |
|||
# umount /crypt |
|||
* Partition vergrößern (Achtung, vorher Backup der Daten machen!): |
|||
# fdisk /dev/sda |
|||
d |
|||
(partitionsnummer angeben) |
|||
n |
|||
(partitionsnummer angeben) |
|||
(gewünschte Größe angeben) |
|||
* luks Filesystem vergrößern |
|||
# cryptsetup resize cephdata |
|||
* ext4 vergrößern |
|||
# e2fsck -y -f /dev/mapper/crypt |
|||
# resize2fs -p /dev/mapper/crypt |
|||
* Partition wieder mounten |
|||
# mount /crypt |
|||
= Quellen = |
= Quellen = |
Revision as of 20:10, 4 April 2017
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:
usbdata /dev/sdd1 /usr/local/share/keyfile luks,noauto
Ohne noauto muss der USB-Stick beim Booten eingesteckt sein, sonst geht es hier nicht weiter.
Optional noch in der /etc/fstab eintragen
/dev/mapper/usbdata /usb auto rw,user,noauto,errors=continue 0 0
Vereinfachung
Jetzt stellt sich natürlich die Frage, ob man sich es sparen kann, nach jedem Booten das lange Command cryptsetup luksOpen ... einzugeben. Das Paket cryptsetup bringt hier ein praktisches Tool mit namens cryptdisks_start. Hier muss man lediglich den Name des Devicemappings kennen.
# cryptdisks_start usbdata
bzw. nach dem Unmounten analog dazu
# cryptdisks_stop usbdata
Verlust des Keyfiles
Sollte in der Praxis nie vorkommen (mind your Backup !), falls doch, kann man notfalls folgendes tun.
- Eintrag in der crypttab auskommentieren
- mit cryptsetup öffnen ( cryptsetup luksOpen /dev/<devicename> <mapped_name> )
Hierfür muss natürlich das Passwort bekannt sein. Geht dieses auch noch verloren, sind die Daten futsch !
Partition vergrößern
Kann z.B. interessant werden, wenn es sich nicht um einen USB-Stick, sondern die Partition einer Festplatte handelt. In diesem Fall ist die richtige Reihenfolge:
- Partition vergrößern
- luks Filesystem vergrößern
- ext4 vergrößern
- Partition unmounten
# umount /crypt
- Partition vergrößern (Achtung, vorher Backup der Daten machen!):
# fdisk /dev/sda d (partitionsnummer angeben) n (partitionsnummer angeben) (gewünschte Größe angeben)
- luks Filesystem vergrößern
# cryptsetup resize cephdata
- ext4 vergrößern
# e2fsck -y -f /dev/mapper/crypt # resize2fs -p /dev/mapper/crypt
- Partition wieder mounten
# mount /crypt
Quellen
https://www.cyberciti.biz/hardware/howto-linux-hard-disk-encryption-with-luks-cryptsetup-command/
https://www.howtoforge.com/automatically-unlock-luks-encrypted-drives-with-a-keyfile
http://serverfault.com/questions/714605/can-cryptsetup-read-mappings-from-etc-crypttab