3466
Kommentar: erste version
|
6919
|
Gelöschter Text ist auf diese Art markiert. | Hinzugefügter Text ist auf diese Art markiert. |
Zeile 1: | Zeile 1: |
[[TableOfContents]] ---- = Was ist das hier = Diese Anleitung beschreibt die Erstellung und Nutzung einer verschluesselten Datei unter Debian/GNU Linux. |
<<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 7: | Zeile 7: |
||''Variable''||''Bedeutung''||''Beispiel''|| ||$DATEI||beliebiger Dateiname||plastikpackung|| ||$MB||Groesse der Datei in Megabyte||100|| ||$CRYPTODATEI||Name deiner Cryptodatei||gauda|| ||$MOUNT||beliebiges Verzeichnis||/mnt/kuehlschrank|| ---- Die Verschluesselung 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]. |
||''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. |
Zeile 17: | Zeile 21: |
Bei einem Debian Standard-Kernel sind die folgenden Einstellungen nicht notwendig. Benutzt du allerdings einen selbst kompilierten Kernel, solltest du folgende Optionen einschalten: |
|
Zeile 21: | Zeile 27: |
Falls du Module verwendest, solltest du sie nun laden (als root): | == Module laden == Falls du Module verwendest, solltest du sie nun laden: |
Zeile 26: | Zeile 34: |
Zeile 29: | Zeile 36: |
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 == {{{ |
|
Zeile 31: | Zeile 136: |
Zeile 33: | Zeile 137: |
Als erstes erstellst du eine neue Datei. Du kannst {{{/dev/urandom}}} benutzen, um zufaellige 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 39: | Zeile 142: |
Anschliessend richtest du das loop-device ein (wahrscheinlich benoetigst du root-Rechte): {{{ |
* Anschliessend richtest du das loop-device ein: {{{ |
Zeile 44: | Zeile 147: |
Jezt wird aus dem loop-device eine Cryptodatei: {{{ |
* Jezt wird aus dem loop-device eine Cryptodatei: {{{ |
Zeile 49: | Zeile 152: |
Noch schnell die Datei mit einem Dateisystem formatieren: {{{ |
* Noch schnell die Datei mit einem Dateisystem formatieren: {{{ |
Zeile 54: | Zeile 157: |
Mounten und fertig: {{{ mount /dev/mapper/$CRYPTODATEI $MOUNT }}} == Taeglicher Gebrauch == * Nach einem {{{crypsetup remove $CRYPTODATEI}}} musst du folgendes ausfuehren um wieder Zugriff auf die Datei zu erhalten:{{{ |
* 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: {{{ |
Zeile 65: | Zeile 169: |
* Nach einem Neustart muss du folgendes ausfuehren 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 68: | Zeile 173: |
cryptsetup -c aes -y 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 oefter bei der Passworteingabe vertippst ;). |
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 ;). |
Zeile 75: | Zeile 180: |
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): |
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): |
Zeile 85: | Zeile 189: |
Zeile 87: | Zeile 190: |
Zeile 90: | Zeile 194: |
Zeile 93: | Zeile 196: |
== Hinweise == * weitere informationen und Tipps: http://www.saout.de/tikiwiki/tiki-index.php |
---- = Hinweise = Weitere informationen und Tipps: * http://www.saout.de/tikiwiki/tiki-index.php * CryptoPartitionHowTo |
Inhaltsverzeichnis
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: {{{#!/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" ;;
- umount "$MOUNTPOINT" cryptsetup luksClose "$CRYPTODATEI" ;;
- "$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: