Tutorials - Ein sicheres Linux System aufsetzen Teil 3.0 - Festplattenverschlüsselung

Sprachenübersicht/Betriebssysteme/Linux/Security

Ein sicheres Linux System aufsetzen Teil 3.0 - Festplattenverschlüsselung

Diese Seite wurde 10212 mal aufgerufen.

Dieser Artikel wurde in einem Wikiweb System geschrieben, das heißt, Sie können die Artikel jederzeit editieren, wenn Sie einen Fehler gefunden haben, oder etwas hinzufügen wollen.

Editieren Versionen Linkpartnerschaft Bottom Printversion

Keywords: festplatten verschlüsselung dm-crypt luks cbc essiv

Inhaltsverzeichnis



Vorwort Top


Weder online-tutorials.net noch der Autor übernehmen irgendwelche Haftung, falls es beim Anwenden des Tutorials zu Datenverlusten kommt. Aus Sicherheitsgründen sollte die ganze Prozedur zuerst auf einem Testrechner durchgeführt werden.

Mit DM-Crypt und Cryptsetup-LUKS ist es möglich, eine ganze Partition, bzw. eine Datei (welche über das Loop-Device wieder als Partition in das System eingebunden wird und in welche die Daten dann abgelegt werden) sicher zu verschlüsseln. Zur Entschlüsselung kann ein Passwort oder eine Datei (welche beispielsweise auf einem USB-Stick liegt) verwendet werden.


Tutorials in dieser Artikelserie Top








  • Teil 3.0 - Festplattenverschlüsselung



Software-Anforderungen Top


Kernel: 2.6.10 (mit DM-Crypt und einem Verschlüsselungsalgorithmus)
Libs: libpopt, libgcrypt (min. 1.1.42)
Tools: Cryptsetup-LUKS

Installation Top


Zuerst müssen einige Module im Kernel aktiviert oder einkompiliert werden. Wie dies genau geschieht, ist in einem anderen Tutorial nachzulesen.

Bei den Modulen handelt es sich um

  • DM-Crypt (Device Drivers -> Multi-device support -> Device mapper support und dann Crypt target support)


  • AES (Cryptographic options -> Cryptographic API)



Nach dem Neukompilieren können diese Module dann wie gewohnt über modprobe dm-crypt geladen werden, außer, sie werden direkt in den Kernel kompiliert.

Falls die beiden Bibliotheken auf dem System noch nicht bereits vorhanden sind, können sie meist als Pakete nachinstalliert werden. Unter Debian hilft folgender Aufruf weiter:

Code:


apt-get install libpopt-dev libgcrypt11-dev



Jetzt muss noch Cryptsetup-LUKS heruntergeladen und kompiliert werden. Dies geschieht wie gewohnt über ./configure && make && make install. Nun kann das Tool über 'cryptsetup' aufgerufen werden.

Erstellen einer verschlüsselten Partition Top


Zunächst erstellen wir eine 50 MB große Datei, welche wir als unser Testobjekt verwenden. Diese wird dann im Loop-Verfahren als Blockdevice eingebunden.

Code:


$ dd if=/dev/zero of=verysecret.loop bs=52428800 count=1
$ losetup /dev/loop0 verysecret.loop



Nun muss die Partition formatiert werden.

Code:


$ cryptsetup -c aes-cbc-essiv:sha256 -y -s 256 luksFormat /dev/loop0



aes-cbc-essiv:sha256 ist derzeit die sicherste Variante. Eine genaue Beschreibung jedes Glieds dieser Befehlskette würde den Rahmen dieses Tutorials sprengen.

Der Parameter -y veranlasst das zweimalige Abfragen des Passworts um einen Tippfehler zu verhindern.

Die Länge des Keys wird über -s bestimmt.

Das Passwort könnte sich auch in einer beliebigen Datei befinden, welche einfach am Schluss des Aufrufs angehängt wird.

Einbinden der Partition Top


Um das Blockdevice nutzen zu können, muss zuerst ein Mapping erstellt werden.

Code:


$ cryptsetup luksOpen /dev/loop0 verysecret
$ mkfs.xfs /dev/mapper/verysecret
$ mount /dev/mapper/verysecret /mnt



Bei diesem Dreizeiler wird zuerst das Blockdevice unter einem beliebigen Namen eingebunden. Über den zusätzlichen Parameter -d liese sich ein Keyfile definieren.

In der nächsten Zeile wird das Device mit XFS formatiert. Die Wahl des Dateisystems ist natürlich beliebig wählbar. Anschließend wird die fertige Partition eingebunden.

Von nun an geschieht die ganze Ver- und Entschlüsselung unsichtbar im Hintergrund. Das Device kann wie gewohnt verwendet werden.

Entfernen der Partition Top


Das verwischen der Spuren geschieht in drei einfachen Zeilen.

Code:


$ unmount /mnt
$ cryptsetup luksClose verysecret
$ losetup -d /dev/loop0



Verwalten von Passwörtern Top


LUKS bietet die Möglichkeit bis zu 8 Passwörter für eine verschlüsselte Partition zu verwalten. Dadurch können beispielsweise mehrere Personen (Admins) über eigene Passwörter auf eine sichere Partition zugreifen oder man erstellt ein zusätzliches Backup-Passwort. Dazu muss aber vorerst die Datei oder Partition eingebunden (nicht aber 'gemapped') werden.

Code:


$ losetup /dev/loop0 verysecret.loop
$ cryptsetup luksAddKey /dev/loop0
$ cryptsetup luksDelKey /dev/loop0 0
$ losetup -d /dev/loop0



In Zeile zwei wird ein zusätzlicher Schlüssel erstellt. Die darauf folgende Zeile löscht dann den Schlüssel aus 'Slot 0' (ein Passwort wird immer in einen 'Slot' gespeichert - 0 bis 7 möglich).

Die anderen beiden Zeilen dürften bereits bekannt sein. Ihre Aufgaben sind lediglich das Ein- und Entbinden der Datei als Blockdevice.

Schlusswort Top


Daten, welche sich von nun an in diesem verschlüsselten Bereich befinden, sind für immer vor fremden Augen sicher, es sei denn, jemand knackt ein (zu einfach gewähltes Passwort).

Als Backup-Passwort eignet sich hervorragend eine kurze Textstelle aus einem literarischen Werk. Für das Standardpasswort sollten keinesfalls Wörter verwendet werden, da die Daten sonst relativ einfach durch eine Wörterbuch-Attacke entschlüsselt werden können.

Werden diese Hinweise eingehalten, steht einer sicherer Nutzung nichts im Wege - aber Achtung: bei einem Fehler des Dateisystems kann es auch vorkommen, dass die Daten unwiederbringlich für alle Zeit verschlüsselt bleiben. Da hilft auch der beste Hacker aus einem Hollywood-Streifen nichts.

Gibt es noch irgendwelche Fragen, oder wollen Sie über den Artikel diskutieren?

Editieren Versionen Linkpartnerschaft Top Printversion

Haben Sie einen Fehler gefunden? Dann klicken Sie doch auf Editieren, und beheben den Fehler, keine Angst, Sie können nichts zerstören, das Tutorial kann wiederhergestellt werden

Sprachenübersicht/Betriebssysteme/Linux/Security/Ein sicheres Linux System aufsetzen Teil 3.0 - Festplattenverschlüsselung