Inhaltsverzeichnis
Was ist das hier
Diese Anleitung beschreibt die Erstellung und Nutzung einer verschlüsselten Partition unter Linux. Dabei wird dm-crypt bzw. cryptsetup verwendet. Die Installation des cryptsetup Paketes wird am Beispiel von Debian GNU/Linux beschrieben.
Begriffe und Variablen
Variable |
Bedeutung |
Beispiel |
$CRYPTODEVICE |
Name deines Cryptodevices |
scheibenkaese |
$DEVICE |
Bezeichnung des Laufwerkes |
sda2 (also /dev/sda2) |
$MOUNT |
beliebiges Verzeichnis |
/mnt/tiefkuehlfach |
Start
Die Verschluesselung baut auf dem sogenannten Device Mapper auf, welcher ab Kernel 2.6.4 implementiert ist. Laut deren Entwickler ist es um einiges besser fuer Crypto-Zwecke geeignet als die Cryptoloop-Variante.
Kernel-Optionen
Device Drivers -> Multiple-device support (RAID and LVM): Device mapper support & Crypt target support auswaehlen
Cryptograpic options -> algorithmus auswaehlen (aes, twofish, ...)
Falls du Module verwendest, solltest du sie nun laden (bzw. füge sie in /etc/modules ein).
Variante I - pures cryptsetup (alt)
Pakete installieren
apt-get install cryptsetup hashalot
Cryptopartition einrichten
Als Erstes benötigst du eine freie Partition1 2.
Mit dem Aufruf von cryptsetup wird die neue Cryptopartition angelegt:
cryptsetup -y -c aes-cbc-essiv:sha256 create $CRYPTODEVICE /dev/$DEVICE
Das neue device formatieren:
mkfs.ext3 /dev/mapper/$CRYPTODEVICE
Und schliesslich noch mounten:
mount /dev/mapper/$CRYPTODEVICE $MOUNT
Täglicher Gebrauch
Trage deine Cryptopartition in /etc/crypttab ein, bspw:
# target_device source_device key_file options $CRYPTODEVICE /dev/$DEVICE none cipher=aes-cbc-essiv:sha256
Trage in /etc/fstab das Device (/dev/mapper/$CRYPTODEVICE $MOUNT) mit deinen Dateisystemoptionen ein.
/etc/init.d/cryptdisks kuemmert sich um die Initialisierung beim Booten. Bei Falscheingabe, kannst du nach dem login mit
/etc/init.d/cryptdisks start
die Partition manuell initialisieren.
Paranoia
Mit dmsetup info lassen sich benutzte devicemappings anzeigen. Taucht hier ein Teil als ACTIVE auf, so hat jedermensch darauf Zugriff (auch wenn es nicht gemountet ist, koennte - wer die noetigen Rechte hat - das Teil ohne passendes Cryptokennwort mounten) - es ist in diesem Zustand quasi entschluesselt!
Deswegen immer nach dem unmounten, das mapping entfernen (sonst gibt's (erfahrene Beamte vorausgesetzt) evtl. Stress bei der Hausdurchsuchung):
umount $MOUNT cryptsetup remove $CRYPTODEVICE
Du kannst alle mappings gleichzeitig entfernen mit:
dmsetup remove_all
! Denk dran: cryptsetup remove niemals nicht vergessen oder aber Stecker ziehen !
Variante II - cryptsetup-luks (neu )
Pakete installieren
apt-get -t testing install cryptsetup hashalot
(cryptsetup-luks ist derzeit (Juni 02006) nicht in Debian/stable verfügbar)
Cryptopartition einrichten
Als Erstes benötigst du eine freie Partition. Alle Daten auf der Partition gehen verloren!
Mit dem Aufruf von cryptsetup wird die neue Cryptopartition angelegt (die Cryptopartition darf dabei nicht gemountet sein):
cryptsetup luksFormat /dev/$DEVICE
Danach kannst du die neue Partition mappen:
cryptsetup luksOpen /dev/$DEVICE $CRYPTDEVICE
Das neue Device formatieren:
mkfs.ext3 /dev/mapper/$CRYPTODEVICE
Und schliesslich probeweise mounten (per Hand):
mount /dev/mapper/$CRYPTODEVICE $MOUNT
Täglicher Gebrauch
Trage deine Cryptopartition in /etc/crypttab ein, bspw:
# <target device> <source device> <key file> <options> $CRYPTODEVICE /dev/$DEVICE none luks,check=ext2,retry=5
Trage in /etc/fstab das Device (/dev/mapper/$CRYPTODEVICE $MOUNT) mit deinen Dateisystemoptionen ein:
/dev/mapper/$CRYPTDEVICE $MOUNT auto defaults 0 0
/etc/init.d/cryptdisks kümmert sich nun um die Initialisierung beim Booten. Bei Falscheingabe, wirst du mehrmals (siehe retry in der /etc/crypttab) erneut gefragt. Falls es weiterhin fehlschlägt, wird der Bootvorgang ohne mounten fortgesetzt.
Luks ermöglicht es dir, mit verschiedenen Schlüsseln auf die Partition zuzugreifen. Mit folgendem Befehl fügst du einen weiteren hinzu:
cryptsetup luksAddKey /dev/$DEVICE
Dazu musst du das Passwort eines schon vorhandenen Schlüssels eingeben. Analog dazu kannst du mit luksDelKey ein Schlüssel wieder entfernen.
Paranoia
Mit dmsetup info lassen sich benutzte devicemappings anzeigen. Taucht hier ein Teil als ACTIVE auf, so hat jedermensch darauf Zugriff (auch wenn es nicht gemountet ist, könnte - wer die nötigen Rechte hat - das Teil ohne passendes Cryptokennwort mounten) - es ist in diesem Zustand quasi entschlüsselt!
Deswegen immer nach dem unmounten, das mapping entfernen (sonst gibt's (erfahrene Beamte vorausgesetzt) evtl. Stress bei der Hausdurchsuchung):
umount $MOUNT cryptsetup luksClose $CRYPTODEVICE
Du kannst alle mappings gleichzeitig entfernen mit:
dmsetup remove_all
! Denk dran: cryptsetup luksClose niemals nicht vergessen oder aber Stecker ziehen (bzw. den Rechner herunterfahren) !
Hinweise
Wir haben ein Webfrontend für cryptsetup-luks entwickelt. Ist es einmal eingerichtet können damit auch unerfahrene AnwenderInnen Festplatten verschlüsseln, was sich besonders bei externen USB-Laufwerken gut macht. Es ist als Serverpaket und Live-CD erhältlich und nennt sich CryptoBox. Auf der Projektwebseite findest du eine englische Dokumentation. Als deutschsprachige Einsteigshilfe dient die CryptoBoxServerInstallation Seite und die darin verlinkten Unterseiten.
Da die CryptoBox/CryptoNAS nicht mehr weiterentwickelt wird (Stand: 2011) gibt es ein Miniprojekt mit ähnlicher Zielsetzung: CryptoBottle
weitere Informationen und Tipps: http://www.saout.de/tikiwiki/tiki-index.php
noch eine ausführliche Anleitung: http://deb.riseup.net/storage/encryption/dmcrypt/
FAQ
- Wie kann ich Dateien/Skripte auf der verschluesselten Partition ausfuehren?
In /etc/fstab wurde der Partition die Option user uebergeben. Fuege hinter user exec ein:
# <file system> <mount point> <type> <options> /dev/mapper/$CRYPTODEVICE $MOUNT ext3 defaults,user,exec
- Wie kann ich das Passwort aendern?
- beim Start von Gnome werde ich nach dem Passwort für die (bereits gemountete) Home-Partition gefragt
Das Problem liegt bei 'hal' - der Status gemounted wird bei luks-Partitionen derzeit (April 02006) nicht korrekt erkannt. Füge folgende Zeilen in die Datei /etc/hal/fdi/policy/preferences.fdi ein:
<device> <match key="block.device" string="$DEVICE"> <merge key="volume.is_mounted" type="bool">true</merge> </match> </device>
vielleicht hilft folgende Anleitung], die ein Auszug hiervon] ist
- Wie kann ich die Verschlüsselung so einrichten, dass eine verschlüsselte Datei bei Login des users automatisch gemounted wird, also das Systempassword des users dazu benutzt wird, um seine verschlüsselten daten einzubinden? Ich finde, die ganzen Szenarien mit einer verschlüsselten Partition sind überhaupt nicht praxistauglich auf rechnern, auf denen mehrere Leute arbeiten sollen (Internetcafe, Clubhaus, Schule etc.). DANKE!
Eine Möglichkeit wäre, einen verschlüsselten Dateiserver einzurichten, auf den alle im Netzwerk zugreifen können. Schau dir dazu mal die CryptoBox an.