Unterschiede zwischen den Revisionen 4 und 13 (über 9 Versionen hinweg)
Revision 4 vom 2006-07-21 21:47:43
Größe: 6906
Autor: anonym
Kommentar: hinweis
Revision 13 vom 2022-11-20 14:48:23
Größe: 0
Autor: phil
Kommentar: ins neue Wiki verschoben und aktualisiert
Gelöschter Text ist auf diese Art markiert. Hinzugefügter Text ist auf diese Art markiert.
Zeile 1: Zeile 1:
[[TableOfContents(2)]]
----
Diese Anleitung beschreibt die Erstellung und Nutzung einer verschlüsselten Datei unter Debian/GNU Linux. Dabei kommt [http://luks.endorphin.org/dm-crypt cryptsetup-luks] zum Einsatz, welches momentan nur in testing vorhanden ist. Falls du Debian sarge benutzt, findest du eine Anleitung am Ende dieser Seite.

= Begriffe und Variablen =
||''Variable''||''Bedeutung'' ||''Beispiel'' ||
||$DATEI ||beliebiger Dateiname ||plastikpackung ||
||$MB ||Grösse der Datei in Megabyte||100 ||
||$CRYPTODATEI||Name deiner Cryptodatei ||gauda ||
||$MOUNT ||beliebiges Verzeichnis ||/mnt/kuehlschrank||

----
= Die cryptsetup-luks Variante =
Die Verschlüsselung baut auf dem sogenannten ''Device Mapping'' auf, welches ab Kernel 2.6.4 implementiert ist. Laut deren Entwickler ist es um einiges besser fuer Crypto-Zwecke geeignet als die [http://www.tldp.org/HOWTO/Cryptoloop-HOWTO/ Cryptoloop-Variante].

Für die folgende Schritte benötigst du root-Rechte.

== Kernel-Optionen ==
Bei einem Debian Standard-Kernel sind die folgenden Einstellungen nicht notwendig. Benutzt du allerdings einen selbst kompilierten Kernel, solltest du folgende Optionen einschalten:
 * ''Device Drivers'' -> ''Multiple-device support (RAID and LVM)'': ''Device mapper support'' & ''Crypt target support'' auswaehlen
 * ''Device Drivers'' -> ''Block devices'': ''Loopback device support'' auswaehlen
 * ''Cryptograpic options'' -> algorithmus auswaehlen (aes, twofish, ...)


== Module laden ==
Falls du Module verwendest, solltest du sie nun laden:
{{{
modprobe loop
modprobe dm_crypt
}}}

== Packete installieren ==
{{{
apt-get install -t testing cryptsetup hashalot
}}}

== Cryptodatei einrichten ==

 * Als erstes erstellst du eine neue Datei. Du kannst {{{/dev/urandom}}} benutzen, um zufällige Werte in diese Datei zu schreiben:{{{
dd if=/dev/urandom of=$DATEI bs=1M count=$MB
}}}

 * Anschliessend richtest du das loop-device ein:{{{
losetup /dev/loop0 $Datei
}}}

 * Jezt wird aus dem loop-device eine Cryptodatei: {{{
cryptsetup luksFormat /dev/loop0
}}}

 * Danach kannst du die neue Partition mappen:{{{
cryptsetup luksOpen /dev/loop0 $CRYPTDATEI
}}}

 * Noch schnell die Datei mit einem Dateisystem formatieren:{{{
mkfs.ext3 /dev/mapper/$CRYPTODATEI
}}}

 * Mounten und fertig:{{{
mount /dev/mapper/$CRYPTODATEI $MOUNT
}}}

== Täglicher Gebrauch ==
 * Ich habe ein Skript ''$CRYPTODATEI'' geschrieben, um die Crypto-Datei zu öffnen/schliessen:{{{
#!/bin/sh

case "$1" in
  start)
        losetup /dev/loop0 $CRYPTODATEI
        cryptsetup luksOpen /dev/loop0 $CRYPTODATEI
        mount -t ext3 -o defaults,user /dev/mapper/$CRYPTODATEI $MOUNT
  ;;
  
  stop)
        umount $MOUNT
        cryptsetup luksClose $CRYPTODATEI
  ;;

  restart)
        umount $MOUNT
        cryptsetup luksClose $CRYPTODATEI
        cryptsetup luksOpen /dev/loop0 $CRYPTODATEI
        mount -t ext3 -o defaults,user /dev/mapper/$CRYPTODATEI $MOUNT
  ;;

  *)
    echo "Usage: $CRYPTODATEI {start|stop|restart}"
  ;;

esac

exit 0
}}}

 * 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 ;) !

----
= Die cryptsetup Variante =
Diese Abschnitt beschäftigt sich mit der Erstellung einer verschlüsselten Datei bei Benutzung von Debian sarge und cryptsetup ohne luks-Erweiterung. Falls du Debian testing benutzt, ist die oben beschriebene luks-Variante die empfohlene.

Die folgenden Schritte benötigen root-Rechte.

== Packete installieren ==
{{{
apt-get install cryptsetup
}}}

== Cryptodatei einrichten ==
 * Als erstes erstellst du eine neue Datei. Du kannst {{{/dev/urandom}}} benutzen, um zufällige Werte in diese Datei zu schreiben:{{{
dd if=/dev/urandom of=$DATEI bs=1M count=$MB
}}}

 * Anschliessend richtest du das loop-device ein:{{{
losetup /dev/loop0 $Datei
}}}


 * Jezt wird aus dem loop-device eine Cryptodatei: {{{
cryptsetup -c aes -y create $CRYPTODATEI /dev/loop0
}}}

 * Noch schnell die Datei mit einem Dateisystem formatieren:{{{
mkfs.ext3 /dev/mapper/$CRYPTODATEI
}}}

 * Mounten und fertig:{{{
mount /dev/mapper/$CRYPTODATEI $MOUNT
}}}

== Täglicher Gebrauch ==
 * Nach einem {{{crypsetup remove $CRYPTODATEI}}} musst du folgendes ausfuehren um wieder Zugriff auf die Datei zu erhalten:{{{
cryptsetup create $CRYPTODATEI /dev/loop0

mount /dev/mapper/$CRYPTODATEI $MOUNT
}}}
 * Nach einem Neustart muss du folgendes ausführen um wieder Zugriff auf die Datei zu erhalten:{{{
losetup /dev/loop0 $Datei

cryptsetup create $CRYPTODATEI /dev/loop0

mount /dev/mapper/$CRYPTODATEI $MOUNT
}}}
 * Den {{{cryptsetup}}}- und remount-Vorgang führt [wiki:SubVersion/admin-tools/spielspass/cryptdisks diese angepasste Version] von {{{/etc/init.d/cryptdisks}}} aus, die du im [https://systemausfall.org/websvn/admin-tools admin-tools svn] findest (hilfreich, wenn du dich öfter bei der Passworteingabe vertippst ;).

== 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 remove $CRYPTODEVICE
}}}

Du kannst alle mappings gleichzeitig entfernen mit:
{{{
dmsetup remove_all
}}}

! Denk dran: {{{cryptsetup remove}}} niemals nicht vergessen oder aber Stecker ziehen ;) !

----
= Hinweise =
Weitere informationen und Tipps:
 * http://www.saout.de/tikiwiki/tiki-index.php
 * CryptoPartitionHowTo

Creative Commons Lizenzvertrag
This page is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.