Es gibt mehrere Gründe, seine Festplatte zu verschlüsseln:
- man hat Daten auf dem Notebook, die man bei Diebstahl oder vergessen des Notebooks nicht veröffentlicht sehen möchte
- man muss eine Festplatte oder ein Notebook zur Reparatur senden, möchte aber, dass die Daten sicher sind
- man hat einfach Geheimnisse, unter Umständen auch vor anderen, die den gleichen Rechner nutzen
- uvm.
Meiner Erfahrung nach ist die Verschlüsselung wirklich leicht gemacht, man muss nur 3 Schritte in der richtigen Reihenfolge abarbeiten und das System ist deutlich sicherer. Der Geschwindigkeitsverlust ist übrigens marginal und meiner Meinung nach auf üblichen Systemen heute nicht mehr spürbar.
Verschlüsselung - verschlüsselte Partition unter Linux erstellen
Während es mehrere Lösungen zu diesem Thema gibt und auch fertige Produkte, wie Veracrypt, ist es bei Linux sehr einfach das alles mit den bereits vorhandenen Mitteln zu erledigen. Viele Linux-Distributionen wie z.B. Debian, können mittlerweile auch das System beim Installieren komplett verschlüsseln, inklusiver der /home Partition. Das klappt gut. Dieses How to hier dient allen, die nachträglich eine Platte verschlüsseln wollen.
Erstellen einer verschlüsselten Partition
Die Software dmcrypt, welche im in einer einfach zu bedienenden Form in luks enthalten ist, ist mein Mittel der Wahl:
1. Die Installation von luks geht am einfachsten über cryptsetup über den jeweiligen Paketmanager (yum, yast, apt etc.):
bei Debian z.B.: apt-get update && apt-get install cryptsetup
Nun muss man entscheiden, was verschlüsselt werden soll, eine USB-Platte, ein Stick oder eine Partition der Festplatte.
Bei mir soll es einfach eine neue Festplatte sein, die ich disk2 nenne. Ich möchte sie in das /home Verzeichis mounten.
2. Ich wähle eine freie Partition. in meinem Beispiel /dev/sdc1
Achtung, alle Daten auf der Platte werden gelöscht!
3. Formatieren und chiffrieren (crypten): luksformat -t ext4 /dev/sdc1
Es kommen ein paar Nachfragen, unter anderem muss man mit YES in Großbuchstabe bestätigen, dass die Partition gelöscht wird. Dann muss man dreimal (!) das Passwort eingeben! Die Platte ist nun leer und verschlüsselt.
Bei dieser Methode werden sichere Standardwerte verwendet. Wer sich einarbeitet kann natürlich noch andere Werte , zum Beispiel für einen anderen Verschlüsselungsalgorithmus verwenden.
Verwenden einer verschlüsselten Partition
Damit die Partition nun beschrieben, gelesen und verändert werden kann, muss man sie in das Dateisystem einbinden.
1. Öffnen der Partition und zuweisen eines Namens für den MAPPER (dieser ist wichtig, denn unter diesem Namen kann die Partition eindeutig vom System erkannt und zugeordnet werden. Dies geschieht über /dev/mapper. Ich wähle hier als Exempel mal den Namen "disk2" (für die Beispielpartition /dev/sdc1).
cryptsetup luksOpen /dev/sdc1 disk2
Es wird nach dem Passwort gefragt. Damit ist die Disk im devicemapper (dm) eingetragen (/dev/mapper)
Eine Kontrolle ist möglich mit: ls /dev/mapper
Möchte man die Platte während einer Sitzung aus dem Mapper entfernen: cryptsetup luksClose /dev/mapper/disk2
2. Das eigentliche Mounten: mount /dev/mapper/disk2 /home/disk2
Wenn man nn die Platte aber dauerhaft mounten möchte, dann kann man dies auch gleich beim Hochfahren erledigen:
Automatischens Mounten verschlüsselter Festplatten beim Hochfahren:
Zum automatischen Mounten müssen zwei Dateien editiert werden:
1. In die Datei /etc/crytab wird folgendes eingetragen (als Beispiel verwende ich wieder die Partition /dev/sdc1, das müsst ihr für Eure ändern!):
disk2 /dev/sdc1 none luks
Besser ist es, gleich eine UUID zu verwenden. diese kann man mit dem Befehl blkid auslesen. Die Crypttab sieht dann so aus:
disk2 UUID=c48a42e6-ba32-4aae-fa37-99a0fc24ad72 none luks
2. In die Datei fstab wird folgendes zugefügt:
/dev/mapper/disk2 /home/disk2 ext4 auto,defaults 0 0
Wichtig ist es, am Ende der fstab eine Freizeile zu lassen!
Nach einem Neustart dürfte alles reibungslos funktionieren! Die Passwortabfrage geschieht beim Hochfahren!
Tipps im Umgang mit luks:
Auch verschlüsselte Platten können mal Lesefehler haben oder es passieren andere ungeplante Dinge. Eine Rekonstruktion der Daten ist nur möglich, wenn der Header der Festplatte vorhanden und intakt ist:
Header sichern:
cryptsetup luksHeaderBackup --header-backup-file <filename> <device>
in unserem Beispiel wäre das:
cryptsetup luksHeaderBackup --header-backup-file header-disk2 /dev/sdc1
Den Header zurückspielen (vorsicht, es sollte der zur Platte passende sein!):
cryptsetup luksHeaderRestore --header-backup-file <filename> <device>
Weitere Tipps zu verschlüsselten (und auch unverschlüsselten Festplatten)
1. Möchtet ihr die tune2fs befehle für verschlüsselte Platten verwenden, so geschieht das normalerweise durch direkte adressieren des device (z.B. tune2fs ( Parameter) /dev/sdc1). Da die Platte aber verschlüsselt ist, muss sie nun über den Mapper angesprochen werden. Ich verwende meist die folgenden beiden Befehle (sie können auch nach dem Bespielen der Platte verwendet werden):
tune2fs -c50 /dev/mapper/disk2 (Plattencheck z.B. alle 50 Mounts)
tune2fs -r 10000 /dev/mapper/disk2 (reserviert genau 10000 Blöcke als Speicher - reicht für alle Platten, sonst sind immer 3-5% reserviert, was bei großen Platten echt viele GB sind)
2. Wenn man mit dem /dev/mapper umgehen kann, dann geht damit auch LVM, was ne prima Sache sein soll, habe ich aber nie getestet.
3. Wenn man mehrere luks-Festplatten im System hat, gibt es Ärger mit dem parallelen Starten der Dienste bei Linux (Stichwort systemd und v.a. udev). Eine Eingabe von Passwörtern ist normalerweise nicht vorgesehen, das heißt das System staret nicht, da es die Platten nicht öffnen kann.
Um das zu verhindern, muss das System auf die Eingabe des Passworts warten, was abgefragt wird, wenn die Platten in der fstab stehen. Ubuntu/Kubuntu kann das von zu Hause das automatisch, debian nicht. Das Tool Plymouth hilft dann.
Wenn Euch meine Artikel gefallen, bitte verlinkt mich und teilt meine Artikel bei euren bevorzugten sozialen Networks - Danke!
Links:
Sehr gute Anleitungen zum weitergehenden Einsatz vonLuks/ Cryptsetup, z.B. in Verbindung mit LVM: