Unterschiede zwischen den Revisionen 4 und 12 (über 8 Versionen hinweg)
Revision 4 vom 2006-07-21 21:47:43
Größe: 6906
Autor: anonym
Kommentar: hinweis
Revision 12 vom 2015-11-02 17:33:23
Größe: 6918
Autor: anonym
Kommentar:
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.
<<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.
Zeile 6: Zeile 7:
||''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||
||''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 ||
Zeile 14: Zeile 16:
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]. 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]].
Zeile 20: Zeile 22:
Zeile 24: Zeile 27:
Zeile 27: Zeile 29:
Zeile 31: Zeile 34:
Zeile 36: Zeile 38:
Zeile 38: Zeile 39:

* Als erstes erstellst du eine neue Datei. Du kannst {{{/dev/urandom}}} benutzen, um zufällige Werte in diese Datei zu schreiben:{{{
 * Als erstes erstellst du eine neue Datei. Du kannst {{{/dev/urandom}}} benutzen, um zufällige Werte in diese Datei zu schreiben:
 
{{{
Zeile 43: Zeile 44:
 * Anschliessend richtest du das loop-device ein:{{{
losetup /dev/loop0 $Datei
}}}

 * Jezt wird aus dem loop-device eine Cryptodatei: {{{
 * Anschliessend richtest du das loop-device ein:
 
{{{
losetup /dev/loop0 $DATEI
}}}

 * Jezt wird aus dem loop-device eine Cryptodatei:
{{{
Zeile 51: Zeile 54:
 * Danach kannst du die neue Partition mappen:{{{
cryptsetup luksOpen /dev/loop0 $CRYPTDATEI
}}}

 * Noch schnell die Datei mit einem Dateisystem formatieren:{{{
 * Danach kannst du die neue Partition mappen:
 
{{{
cryptsetup luksOpen /dev/loop0 $CRYPTODATEI
}}}

 * Noch schnell die Datei mit einem Dateisystem formatieren:
 
{{{
Zeile 59: Zeile 64:
 * Mounten und fertig:{{{  * Mounten und fertig:
 
{{{
Zeile 64: Zeile 70:
 * Ich habe ein Skript ''$CRYPTODATEI'' geschrieben, um die Crypto-Datei zu öffnen/schliessen:{{{  * Ich habe ein Skript geschrieben, um die Crypto-Datei ''$CRYPTODATEI ''zu öffnen/schliessen:{{{
Zeile 66: Zeile 72:

set -eu


DATEI=$1
MOUNTPOINT="$2"
CRYPTODATEI=$(basename "$DATEI")
Zeile 69: Zeile 82:
        losetup /dev/loop0 $CRYPTODATEI
        cryptsetup luksOpen /dev/loop0 $CRYPTODATEI
        mount -t ext3 -o defaults,user /dev/mapper/$CRYPTODATEI $MOUNT
  ;;
  
        losetup /dev/loop0 "$DATEI"
        cryptsetup luksOpen /dev/loop0 "$CRYPTODATEI"
        mount -t ext3 -o defaults,user "/dev/mapper/$CRYPTODATEI" "$MOUNTPOINT"
       ;;
Zeile 75: Zeile 87:
        umount $MOUNT
        cryptsetup luksClose $CRYPTODATEI
  ;;
        umount "$MOUNTPOINT"
        cryptsetup luksClose "$CRYPTODATEI"
       ;;
Zeile 80: Zeile 91:
        umount $MOUNT
        cryptsetup luksClose $CRYPTODATEI
        cryptsetup luksOpen /dev/loop0 $CRYPTODATEI
        mount -t ext3 -o defaults,user /dev/mapper/$CRYPTODATEI $MOUNT
  ;;
        "$0" stop
        "$0" start
        ;;
Zeile 87: Zeile 95:
    echo "Usage: $CRYPTODATEI {start|stop|restart}"
  ;;

esac
     echo "Usage: $(basename "$0") {start|stop|restart} DATEI MOUNTPOINT"
       ;;

 esac
Zeile 95: Zeile 103:
 * Luks ermöglicht es dir, mit verschiedenen Schlüsseln auf die Partition zuzugreifen. Mit folgendem Befehl fügst du einen weiteren hinzu: {{{  * Luks ermöglicht es dir, mit verschiedenen Schlüsseln auf die Partition zuzugreifen. Mit folgendem Befehl fügst du einen weiteren hinzu:
{{{
Zeile 97: Zeile 106:
}}} Dazu musst du das Passwort eines schon vorhandenen Schlüssels eingeben. Analog dazu kannst du mit ''luksDelKey'' ein Schlüssel wieder entfernen.
}}}
Dazu musst du das Passwort eines schon vorhandenen Schlüssels eingeben. Analog dazu kannst du mit ''luksDelKey'' ein Schlüssel wieder entfernen.
Zeile 101: Zeile 110:
Zeile 105: Zeile 113:
Zeile 110: Zeile 119:
Zeile 112: Zeile 120:
Zeile 115: Zeile 124:
Zeile 128: Zeile 136:
Zeile 130: Zeile 137:
 * Als erstes erstellst du eine neue Datei. Du kannst {{{/dev/urandom}}} benutzen, um zufällige Werte in diese Datei zu schreiben:{{{  * Als erstes erstellst du eine neue Datei. Du kannst {{{/dev/urandom}}} benutzen, um zufällige Werte in diese Datei zu schreiben:
 
{{{
Zeile 134: Zeile 142:
 * Anschliessend richtest du das loop-device ein:{{{  * Anschliessend richtest du das loop-device ein:
 
{{{
Zeile 138: Zeile 147:

* Jezt wird aus dem loop-device eine Cryptodatei: {{{
 * Jezt wird aus dem loop-device eine Cryptodatei:
{{{
Zeile 143: Zeile 152:
 * Noch schnell die Datei mit einem Dateisystem formatieren:{{{  * Noch schnell die Datei mit einem Dateisystem formatieren:
 
{{{
Zeile 147: Zeile 157:
 * Mounten und fertig:{{{  * Mounten und fertig:
 
{{{
Zeile 152: Zeile 163:
 * Nach einem {{{crypsetup remove $CRYPTODATEI}}} musst du folgendes ausfuehren um wieder Zugriff auf die Datei zu erhalten:{{{  * Nach einem {{{crypsetup remove $CRYPTODATEI}}} musst du folgendes ausfuehren um wieder Zugriff auf die Datei zu erhalten:
 
{{{
Zeile 157: Zeile 169:
 * Nach einem Neustart muss du folgendes ausführen um wieder Zugriff auf die Datei zu erhalten:{{{  * Nach einem Neustart muss du folgendes ausführen um wieder Zugriff auf die Datei zu erhalten:
 
{{{
Zeile 164: Zeile 177:
 * 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 ;).  * 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 ;).
Zeile 167: Zeile 180:
Zeile 171: Zeile 183:
Zeile 176: Zeile 189:
Zeile 178: Zeile 190:
Zeile 181: Zeile 194:
Zeile 187: Zeile 199:


Diese Anleitung beschreibt die Erstellung und Nutzung einer verschlüsselten Datei unter Debian/GNU Linux. Dabei kommt 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 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:

    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 diese angepasste Version von /etc/init.d/cryptdisks aus, die du im 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:


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