Befinden sich auf Ihrem PC sensible Daten, sollten Sie diese auch entsprechend schützen. Mit starker Verschlüsselung und einem sicheren Passwort kommen selbst Geheimdienste nicht an Ihre Daten heran.
Sensible Daten befinden sich auf jedem Computer – egal ob Passwörter, Browser History oder E-Mails. Suse und Mandriva Linux bieten bereits während der Installation die Möglichkeit, einzelne Partitionen zu verschlüsseln. Gerade für das Verzeichnis /home sollten Sie davon Gebrauch machen. Es ist jedoch auch nachträglich möglich, verschlüsselte Partitionen oder Dateien anzulegen, unabhängig davon, welche Linux-Distribution Sie benutzen.
Zwei Lösungen
Mit losetup und cryptsetup-luks stehen auf der Kommandozeile einfache Werkzeuge bereit, mit denen Sie verschlüsselte Partitionen oder Dateien erstellen. Das Programm Losetup ist bei allen großen Distributionen mit dabei, Cryptsetup-Luks-Pakete für Debian, Fedora, Gentoo, Mandrake und Suse finden Sie auf der Projekt-Homepage [1]. Bei Ubuntu Breezy genügt der Befehl sudo apt-get install cryptsetup, um das Programm zu installieren.
Suse und Mandriva bringen zwar auch grafische Tools mit, um diese Aufgabe zu lösen (siehe Kasten “Verschlüsselung per Mausklick”), losetup und das modernere cryptsetup-luks funktionieren hingegen auf jeder Distribution.
Für beide Methoden benötigen Sie zunächst eine Container-Datei. Um eine 50 MByte große Datei zu erstellen, die Sie wie eine gewöhnliche Partition einhängen können, geben Sie in der Konsole den Befehl
dd if=/dev/urandom of=film.avi bs=? 1024k count=50
ein. Für eine 500 MByte große Datei ersetzen Sie count=50 durch count=500 und so weiter. Dieser Vorgang dauert einige Minuten. Das weitere Vorgehen hängt davon ab, welche Methode Sie wählen. Anstelle einer Container-Datei können Sie auch eine echte Partition verwenden, zum Beispiel /dev/sda1 für einen USB-Stick. Ersetzen Sie dazu in der Beschreibung einfach den Container film.avi durch die entsprechende Gerätedatei.
Verschlüsselung per Mausklick
Grafische Tools zum Erstellen von verschlüsselten Laufwerken bringen zurzeit nur Suse und Mandriva Linux mit. Bei Suse Linux findet sich die Funktion im YaST-Modul zum Partitionieren. Mandriva liefert ein eigenständiges Programm: Drakloop. Es gehört zum mountloop-Paket, das Sie über System | Einstellungen | Paketierung | Software installieren nachträglich einrichten müssen.
Nach dem Start des Programms über [Alt]+[F2] und den Befehl drakloop klicken Sie auf das große Plus-Symbol in der Werkzeugleiste und geben einen neuen Verzeichnisnamen an. Dann legen Sie die Größe der Containerdatei und den Algorithmus fest (mit aes256 sind Sie auf der sehr sicheren Seite). Schließlich tippen Sie zweimal dasselbe Passwort ein.
Mandriva legt im angegebenen Verzeichnis eine Datei encfile an und hängt diese dann per Cryptoloop über das Verzeichnis ein. Ist also das Verzeichnis gemountet, sehen Sie Ihre Dateien, ist es nicht eingehängt, die Datei encfile. Von Hand hängen Sie diese Datei nach dem Laden der Kernel-Module aes und cryptoloop mit folgendem Befehl im Verzeichnis /mnt ein:
mount -o loop,encryption=aes256 encfile /mnt/
Benutzen Sie Suse Linux, starten Sie YaST und wählen das Modul System | Partitionieren. Nachdem Sie die Warnmeldung gelesen und weggeklickt haben, wählen Sie Kryptodatei | Verschlüsselte Datei erzeugen. Im folgenden Dialog (Abbildung 1) geben Sie oben einen Namen für den Container an. Die Option Loop-Datei anlegen muss in der Regel aktiv sein. Eine Ausnahme bilden bestehende Loop-Dateien (zum Beispiel von einer früheren Installation), die Sie über YaST nachträglich einbinden möchten. Als Dateisystem wählen Sie Ext3 und unter Mountpoint legen Sie einen beliebigen Einhängepunkt fest.
Nach einem Klick auf OK geben Sie zweimal dasselbe Passwort ein. Suse Linux benutzt für die verschlüsselten Partitionen ebenfalls das Cryptoloop-Verfahren, allerdings mit dem Twofish256-Algorithmus. Das Passwort muss deshalb mindestens 20 Zeichen lang sein. Die in YaST angelegten Dateien können Sie als root über den Befehl
mount -o loop,encryption=twofish256 geheime.datei /Mountpunkt
jederzeit auch ohne YaST ins System einbinden.
Losetup
Losetup war lange Zeit die Standardlösung für verschlüsselte Laufwerke. Suse und Mandriva verwenden sie bis heute. In YaST oder Drakloop erstellte Dateien lassen sich also mit der hier beschriebenen Methode manuell einhängen. In einem ersten Schritt verschlüsseln Sie die Container-Datei mit einem Algorithmus und ordnen die Datei einem Loop-Gerät (in der Regel /dev/loop0) zu:
losetup -T -e twofish256 /dev/loop0 film.avi
Mit der Option -T fragt losetup zwei Mal nach der Passphrase. So lassen sich lästige Tippfehler ausschließen. Meldet der Befehl die Fehlermeldung requested cipher or key lenght not supported by kernel müssen Sie als root zunächst mit den Befehlen modprobe twofish und modprobe cryptoloop die Verschlüsselungsmodule laden. Twofish256 ist eine sehr sichere Methode.
Im nächsten Schritt erstellen Sie auf dem Loop-Gerät /dev/loop0 ein Dateisystem. Es empfiehlt sich, dazu Ext2 oder Ext3 zu verwenden, da bei ReiserFS schon das Journal 33 MByte belegt. Bei größeren Geräten können Sie natürlich auch ReiserFS benutzen:
mkfs.ext3 /dev/loop0
Erstellen Sie nun als Benutzer mit dem Befehl mkdir /home/Benutzername/geheim in Ihrem Home-Verzeichnis einen Mount-Punkt für die neue Partition (Benutzername müssen Sie dazu durch Ihren Benutzernamen ersetzen). Dann hängen Sie diese als root mit dem Befehl mount /dev/loop0 /home/Benutzername/geheim ein. Damit Sie auch als normaler Benutzer auf die verschlüsselte Partition zugreifen können, erweitern Sie die Partitionstabelle um folgenden Eintrag:
/dev/loop0 /home/<I>Benutzername<I>/geheim ext3 defaults,user,noauto,loop,encryption=twofish256 0 0
Danach können Sie als normaler Benutzer mit dem Befehl mount geheim/ die verschlüsselte Partition einhängen. Das funktioniert jedoch nur bis zum nächsten Neustart. Danach müssen Sie als root die Module neu laden:
modprobe twofish256 modprobe cryptoloop
und mit dem Befehl losetup /dev/loop0 film.avi erneut die Container-Datei dem Loop-Gerät zuordnen.
Tipp
Suse unterstützt als letzte Distribution über einen Kompatibilitätsmodus auch noch das alte Cryptoloop-Verfahren mit kurzen Passwörtern.
Cryptsetup-luks
Leider ist Losetup nicht frei von Fehlern. So traten bei einigen Kernel-Versionen schwere Probleme mit den Dateisystemen ReiserFS und Ext3 auf. Ein Bug ermöglichte es zudem, an verschlüsselte Dateien trotzdem ranzukommen. Auf neueren Systemen sollten Sie deshalb Cryptsetup-luks verwenden. Einen ausführlichen Artikel zu Cryptsetup-luks finden Sie unter [2].
Auch hier legen Sie zunächst mit dem Befehl dd wie oben beschrieben eine Container-Datei an. Danach verknüpfen Sie diese mit einem Loop-Gerät, allerdings ohne Verschlüsselung:
losetup /dev/loop0 film.avi
Jetzt erfolgt die eigentliche Verschlüsselung über den Befehl
cryptsetup-luks -c aes-cbc-essiv:sha256 -y -s256 luksFormat /dev/loop0
Unter Ubuntu Breezy können Sie anstelle von cryptsetup-luks einfach cryptsetup schreiben, da Ubuntu bereits das neue Cryptsetup verwendet. Das Programm weist Sie darauf hin, dass auf der angegebenen Datei sämtliche Daten gelöscht werden. Um fortzufahren müssen Sie YES eintippen. Gibt der Befehl eine Fehlermeldung aus, müssen Sie eventuell noch mit modprobe aes das entsprechende Kernel-Modul laden.
Eine angelegte Containerdatei entschlüsseln Sie mit dem Befehl cryptsetup-luks luksOpen /dev/loop0 geheim. Mit diesem Befehl legt der Device-Mapper gleichzeitig die Gerätedatei /dev/mapper/geheim an. Anstelle von geheim können Sie einen beliebigen Namen verwenden. Die neue Gerätedatei formatieren Sie nun wie eine gewöhnliche Partition und mounten diese:
mkfs.ext3 /dev/mapper/geheim mount /dev/mapper/geheim /mnt/
Nach einem Neustart müssen Sie nur noch jeweils das Loop-Gerät neu zuordnen
losetup /dev/loop0 film.avi
und das Crypto-Gerät öffnen:
cryptsetup-luks luksOpen /dev/loop/0 ? geheim
Mit Cryptsetup-luks verschlüsselte Partitionen lassen sich mit diesen zwei Schritten auch auf anderen Rechnern und Distributionen öffnen.
Glossar
-
Loop-Gerät
-
Virtuelles Laufwerk, um eine Datei als Laufwerk einzubinden.
-
Device-Mapper
-
Mit Kernel 2.6 eingeführtes Feature, das reale Geräte auf beliebige Gerätedateien umlenkt. Die neuen Gerätedateien befinden sich unter
/dev/mapper/.
Infos
[1] Cryptsetup-luks: http://luks.endorphin.org/dm-crypt
[2] Clemens Fruhwirth und Markus Schuster, “Geheime Niederschrift – Festplattenverschlüsselung mit DM-Crypt und Cryptsetup-LUKS”, Linux-Magazin 08/2005, S. 28.





