Unterschiede zwischen den Revisionen 12 und 13
Revision 12 vom 2015-11-02 17:33:23
Größe: 6918
Autor: anonym
Kommentar:
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 ||Pfad für Abbild der verschlüsselten Partition ||/data/plastikpackung ||
||$MB ||Grösse von $DATEI in Megabyte ||100 ||
||$CRYPTODATEI ||Name deiner Cryptodatei in /dev/mapper ||gouda ||
||$MOUNT ||Verzeichnis, wo Partition eingehängt wird ||/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 $CRYPTODATEI
}}}

 * 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 geschrieben, um die Crypto-Datei ''$CRYPTODATEI ''zu öffnen/schliessen:{{{
#!/bin/sh

set -eu


DATEI=$1
MOUNTPOINT="$2"
CRYPTODATEI=$(basename "$DATEI")

case "$1" in
  start)
        losetup /dev/loop0 "$DATEI"
        cryptsetup luksOpen /dev/loop0 "$CRYPTODATEI"
        mount -t ext3 -o defaults,user "/dev/mapper/$CRYPTODATEI" "$MOUNTPOINT"
        ;;
  stop)
        umount "$MOUNTPOINT"
        cryptsetup luksClose "$CRYPTODATEI"
        ;;
  restart)
        "$0" stop
        "$0" start
        ;;
  *)
        echo "Usage: $(basename "$0") {start|stop|restart} DATEI MOUNTPOINT"
        ;;

 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 [[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.