linuxforen.de -- User helfen Usern  

Zurück   linuxforen.de -- User helfen Usern > FAQ Tips > Hier Suchen und Finden, Links, Tutorials
Registrieren Hilfe Benutzerliste Kalender Alle Foren als gelesen markieren

Hier Suchen und Finden, Links, Tutorials Hier findet Ihr viele gut vorbereitete Lösungen

Antwort
 
Themen-Optionen Bewertung: Bewertung: 8 Stimmen, 5,00 durchschnittlich. Ansicht
Alt 24.02.06, 00:09   #1
DaGrrr
Moderator
 
Benutzerbild von DaGrrr
 
Registriert seit: Jul 2002
Ort: Berlin
Beiträge: 1.863
Verschlüsseltes Dateisystem mit dm-crypt

Howto Version: v0.1.1

Zitat:
Achtung: Ich übernehme keine Haftung für evtl. entstandene Schäden (zb Datenverlust), bei Benutzung dieses Howto's!
Verschlüsseltes Dateisystem mit dm-crypt

In meinem vorigen Howto über Loop-AES habe ich gezeigt, wie man eine Partition oder Container verschlüsseln kann. Loop-AES eignet sich sowohl für die Kernelzweige 2.4 und 2.6. dm-crypt ist ab der Version 2.6.4 im Kernel enthalten. Jeder User soll aber selbst entscheiden können, welche Art von Verschlüsselung man nutzen möchte.
Falls die Entscheidung auf dm-crypt fällt soll auch jeder in der Lage sein, jenes anwenden zu können, daher möchte ich hier zeigen, wie dm-crypt installiert, konfiguriert und angewendet werden kann.
dm-crypt ist der Nachfolger von Cryptoloop, welches Anwendung im Kernel 2.4 fand. Cryptoloop hatte einige schwächen und sollte nicht mehr eingesetzt werden. Siehe dazu folgenden Link. (Thx an Dellerium)
dm-crypt verschlüsselt Partitionen auf Blockdevice Ebene und gibt den Klartextinhalt über ein virtuelles Blockdevice frei. Dieses Device kann wie ein herkömmliches Blockdevice verwendet werden, um darin ein Dateisystem zu erstellen und zu mounten. cryptsetup ist das Tool, womit dm-crypt arbeitet. Es gibt als Erweiterung das so genannte Management Tool LUKS (Linux Unified Key Setup). LUKS ist in der Lage, aus einem User Passwort einen krypto Key abzuleiten und diesen an den Kernel zu übergeben.
Die Kombination zwischen cryptsetup und LUKS ermöglicht unter anderem, die Schlüssel zu der verschlüsselten Partition in einem Header der Partition selbst unter zu bringen. Es können auch verschiedene Passwörter für eine Verschlüsselung verwendet werden. Es ist auch möglich das Passwort zu ändern, ohne eine neu verschlüsselung des verschlüsselten Objekts!
Es gibt bei der Angabe des Verschlüsselungsalgorithmus die Option -essiv (Encrypted Salt-Sector IV), um einen
Watermark Angriff aus dem Weg zu gehen.

Sehr gute Erklärungen zur Funktionsweise von cryptsetup, LUKS, essiv bietet das Linux-Magazin in der Ausgabe 08/05.

Update: Den Artikel "dm_crypt: Geheime Niederschrift" im Linux-Magazin 08/05 gibt es nun auch online zum lesen: Zum Artikel

1) Einleitung
2) Installation von dm-crypt
3) Erstellung einer verschlüsselten Partition
4) Verschlüsselte Swap Partition
5) Anlegen eines verschlüsselten Containers
6) Scripte für verschlüsselte Container

28.08.2007 Link zum Linux-Magazin hinzugefügt
23.02.2007 kleine Korrektur für die /etc/crypttab. Danke für den Hinweis.
13.03.2006 Scripte für verschlüsselte Container, Howto Version 0.1.1
13.03.2006 Anlegen eines verschlüsselten Containers, Howto Version 0.1.0
12.03.2006 kleinere Anpassungen, v0.0.3
25.02.2006 Fehlerkorrekturen, Ergänzungen, v0.0.2
24.02.2006 Erstellung des Howto's v0.0.1

Todo:
  • Erklärungen und Anwendungen zu dmsetup
  • Erklärungen und Anwendungen zu hashalot
  • Erstellung eines verschlüsselten Containers
  • Einbinden von GnuPG
  • Weitere Möglichkeiten mit dm-crypt

Fragen zum Thema bitte nur im Forum stellen, ich gebe keinen Support außerhalb des Forums!

Zitat:
Sollte sich irgendwo der Fehlerteufel eingeschlichen haben, dann schickt mir eine PN (Private Nachricht) oder eine E-Mail an holgi [at] linux-technik [dot] de und wer mir lieber mit gnupg schreiben möchte: Mein PGP-Key: Download

Fingerprint:
4DFA 402D 96E1 0F46 5232 68E3 9A3D FDE5 0527 CA77
__________________
PC: Kubuntu 10.04
Router: Soekris net4801 mit OpenBSD 4.7
Server: OpenBSD 4.7
Private Linux Page

Geändert von DaGrrr (02.02.08 um 09:52 Uhr)
DaGrrr ist offline   Mit Zitat antworten
Alt 24.02.06, 00:12   #2
DaGrrr
Moderator
 
Benutzerbild von DaGrrr
 
Registriert seit: Jul 2002
Ort: Berlin
Beiträge: 1.863
Arrow

Installation von dm-crypt:

Die Installation von dm-crypt erfordert einige Einstellungen im Kernel 2.6.4 oder höher:

Code maturity level options --->
[*] Prompt for development and/or incomplete code/drivers
Device Drivers --> RAID and LVM Support -->
[*] Multiple devices driver support (RAID and LVM)
<*> Device mapper support
<*> Crypt target support
Cryptographic Options -->
<*> AES cipher algorithims (i586)
<*> SHA256 digest algorithm
und falls dm-crypt mit loopback genutzt wird, zb für Container:
Device Drivers --> Block Devices -->
<*> Loopback device support

Anmerkung:
  • cryptoloop nicht aktivieren!
  • falls andere Algorithmen verwendet werden sollen,
    kannst du diese in „Cryptographic Options“ aktivieren.
  • Um -essiv nutzen zu können, bei der Erstellung der Verschlüsselung ist zwingend
    Kernel 2.6.10 oder höher notwendig!

Falls ein Distributions eigener Kernel verwendet wird, brauchen nur die entsprechenden Module geladen werden.

Zur Administration wird cryptsetup genutzt. Optional ist noch dmsetup und hashalot.
Da eine wichtige Implementation bei cryptsetup fehlt, empfehle ich
die Installation von cryptsetup mit LUKS-Unterstützung.

Original Zitat vom cryptsetup Entwickler (http://www.saout.de/misc/dm-crypt):

Zitat:
Clemens Fruhwirth is maintaining an enhanced version of cryptsetup with the LUKS extension that allows you to have an on-disk block of metadata which is superior to the current mechanism and was my long term plan anyway but I didn't find the time to implement that yet...
Aus diesem Grund werden wir auch cryptsetup mit LUKS-Unterstützung installieren.

Da ich Debian Sid User bin reicht folgender Befehl:

Code:
apt-get install cryptsetup dmsetup hashalot
Anmerkung:
  • Debian Sid hat die LUKS-Unterstützung in cryptsetup bereits integriert!
  • Debian Sarge und älter haben keine LUKS Unterstützung in ihrem cryptsetup Paket!
  • Evtl. gibt es auch fertige Pakete für andere Distributionen, einfach mal nachschauen.

Nicht Debian Sid User erhalten die Tools hier:

cryptsetup:
http://luks.endorphin.org/dm-crypt

Hier kann man zwischen dem Sourcecode und einer statisch gelinkten und vor kompilierten Version wählen.
Ich empfehle die schon fertige Version, die entpackt, umbenannt (cryptsetup) und nach /sbin verschoben wird.

dmsetup gibt es hier:
http://sources.redhat.com/dm/

Eine Installations Anleitung ist im Paket enthalten.

hashalot gibt es hier:
http://www.paranoiacs.org/~sluskyb/hacks/hashalot/
__________________
PC: Kubuntu 10.04
Router: Soekris net4801 mit OpenBSD 4.7
Server: OpenBSD 4.7
Private Linux Page

Geändert von DaGrrr (25.02.06 um 12:45 Uhr)
DaGrrr ist offline   Mit Zitat antworten
Alt 24.02.06, 00:14   #3
DaGrrr
Moderator
 
Benutzerbild von DaGrrr
 
Registriert seit: Jul 2002
Ort: Berlin
Beiträge: 1.863
Zitat:
A C H T U N G: Spätestens hier sollte ein Backup erstellt worden sein, bevor wir die
folgenden Befehle ausführen, denn alle Daten gehen bei der Durchführung auf der entsprechenden Partition verloren!
Erstellung einer verschlüsselten Partition:

Wir nehmen an, das /dev/hda3 unsere zu verschlüsselnde Partition sein wird.

Code:
cryptsetup -c aes-cbc-essiv:sha256  -y luksFormat /dev/hda3
  • -c nimmt den von mir ausgewähltem verschlüsselungs Algorithmus, in diesem Fall
    aes-cbc-essiv, um einer Watermark Attacke aus dem Weg zu gehen und mit dem
    Hash Algorithmus sha256
  • -y damit wird das Passwort ein zweites mal abgefragt
  • luksFormat initialisiert eine LUKS Partition und setzt den initial Schlüssel.
  • /dev/hda3 ist die von mir gewählte Partition
  • Es wird nach Eingabe des Befehls ein Passwort für die neu erstellte Partition verlangt


Code:
cryptsetup luksOpen /dev/hda3 geheim
  • luksOpen öffnet die LUKS Partition und setzt einen mapping Namen
  • /dev/hda3 unsere Partition
  • geheim ist unser „mapping“ Name


Code:
mkfs.ext2 /dev/mapper/geheim
  • formatiert unsere erstellte Partition mit dem Dateisystem ext2


Code:
mount /dev/mapper/geheim /mnt/crypt
  • mountet unsere mit cryptsetup erstellte Partition


unmounten können wir mit:

Code:
umount /mnt/crypt

Code:
cryptsetup luksClose geheim
  • luksClose schliesst das gemappte Device „geheim“


Für den täglichen Gebrauch tragen wir nun unsere Cryptopartition in die Datei /etc/crypttab ein:
Code:
# target name  source device         key file      options
     geheim	/dev/hda3            none	 luks,cipher=aes-cbc-essiv:sha256

Nun tragen wir in die Datei /etc/fstab folgendes ein:
Code:
/dev/mapper/geheim	/mnt/crypt	ext2	defaults,user	0	0
__________________
PC: Kubuntu 10.04
Router: Soekris net4801 mit OpenBSD 4.7
Server: OpenBSD 4.7
Private Linux Page

Geändert von DaGrrr (23.02.07 um 15:50 Uhr)
DaGrrr ist offline   Mit Zitat antworten
Alt 24.02.06, 00:18   #4
DaGrrr
Moderator
 
Benutzerbild von DaGrrr
 
Registriert seit: Jul 2002
Ort: Berlin
Beiträge: 1.863
Verschlüsselte Swap Partition:

Für ganz Paranoide gibt es die Möglichkeit, die Swap Partition zu verschlüsseln.
Ich habe mir ein Script erstellt und nach /etc/init.d kopiert, ausführbar gemacht und die entsprechenden Links in die von mir gewünschten Runlevel angelegt, damit das Script bei jedem Bootvorgang ausgeführt wird.

Das Script sieht so aus:

Code:
#!/bin/bash
echo "Crypting Swap Partition with Twofish and 128Bit..."
/sbin/cryptsetup -c twofish -s 128 -d /dev/urandom create swap0 /dev/sda2
mkswap /dev/mapper/swap0
swapon /dev/mapper/swap0
echo "Crypting Swap Partition... finished!"
Anmerkung: Algorithmus und Bitlänge kann mit dem zur Verfügung stehenden Algorithmen ausgetauscht werden.

Nach erfolgreicher Initialisierung ist beim Bootvorgang folgendes zu sehen:

Zitat:
Crypting Swap Partition with Twofish and 128Bit...
Setting up swapspace version 1, size = 296103kb
no label, UUID=......-....-....-....-..........
Adding 289160k swap on /dev/mapper/swap0. Priority:-1 extents:1 across:289160k
Crypting Swap Partition... finished!
P E R F E K T ;-)
__________________
PC: Kubuntu 10.04
Router: Soekris net4801 mit OpenBSD 4.7
Server: OpenBSD 4.7
Private Linux Page
DaGrrr ist offline   Mit Zitat antworten
Alt 13.03.06, 01:10   #5
DaGrrr
Moderator
 
Benutzerbild von DaGrrr
 
Registriert seit: Jul 2002
Ort: Berlin
Beiträge: 1.863
Anlegen eines verschlüsselten Containers

Falls keine freie Partition vorhanden ist, dann kann ein Containerfile eine Lösung darstellen. Damit der Container auch gemountet werden kann, benötigen wir wie bei der Kernelkonfiguration beschrieben „Loopback device support“. Ebenfalls werden wir hier LUKS verwenden.

Als erstes erstellen wir uns mit Hilfe von „dd“ ein Container:

Code:
dd if=/dev/urandom of=geheim bs=1M count=50
  • dd ist das Programm
  • if=/dev/urandom füllt das erstellte File mit Zufallszahlen, Buchstaben und Sonderzeichen
  • of=geheim ist der Name des Files und wird im aktuellen Verzeichnis erstellt
  • bs=1M ist die Blockgröße für die Ein- und Ausgabedatei, bei uns 1 Megabyte
  • count=50 kopiert die angegebene Anzahl an Blocks


Code:
losetup /dev/loop0 geheim
  • losetup erstellt und setzt das loop-device
  • /dev/loop0 ist unser erstelltes loop-device
  • geheim ist unser Container


Code:
cryptsetup -c aes-cbc-essiv:sha256 -y luksFormat /dev/loop0
  • cryptsetup ist das Programm welches wir nutzen
  • -c nimmt den von mir ausgewähltem verschlüsselungs Algorithmus, in diesem Fall aes- cbc-essiv und mit dem Hash Algorithmus sha256
  • -y damit wird das Passwort ein zweites mal abgefragt
  • luksFormat initialisiert eine LUKS Partition und setzt den initial Schlüssel
  • /dev/loop0 ist nun das loop-device
  • Es wird nach Eingabe des Befehls ein Passwort für die neu erstellte Partition verlangt, muß ein weiteres mal bestätigt werden

Code:
cryptsetup luksOpen /dev/loop0 geheim
  • cryptseetup ist unser Programm
  • luksOpen öffnet den LUKS Container und setzt einen mapping Namen
  • /dev/loop0 unser loop-device
  • geheim ist hier der mapping Name

Nun erstellen wir eine Partition in unserem Container und formatieren es mit dem Dateisystem ext2:

Code:
mkfs.ext2 /dev/mapper/geheim
Wir mounten nun unseren Container:

Code:
mount -t ext2 /dev/mapper/geheim /mnt/cryptcontainer
unmounten können wir das ganze mit:

Code:
umount /mnt/cryptcontainer

cryptsetup luksClose geheim

losetup -d /dev/loop0
Wollen wir nun erneut unseren Container öffnen sind folgende Befehle notwendig:

Code:
losetup /dev/loop0 geheim

cryptsetup luksOpen /dev/loop0 geheim

mount -t ext2 /dev/mapper/geheim /mnt/cryptcontainer
__________________
PC: Kubuntu 10.04
Router: Soekris net4801 mit OpenBSD 4.7
Server: OpenBSD 4.7
Private Linux Page

Geändert von DaGrrr (13.03.06 um 01:16 Uhr)
DaGrrr ist offline   Mit Zitat antworten
Alt 13.03.06, 01:27   #6
DaGrrr
Moderator
 
Benutzerbild von DaGrrr
 
Registriert seit: Jul 2002
Ort: Berlin
Beiträge: 1.863
mount / umount Scripte für verschlüsselte Container

Ich habe mir zwei Scripte geschrieben, damit ich nicht ständig die Befehle
per Hand eingeben muß. Die Scripte führe ich als root aus, da die Befehle root-Rechte brauchen.
Eine Alternative ist es SUDO einzusetzen. Damit ist es möglich die Befehle mit den Rechten von root auszuführen, obwohl man normaler User ist.
Über sudo gibt es viele Berichte und ist daher nicht Bestandteil meines Howto's.

dmcryptmount:
Code:
#!/bin/bash
losetup /dev/loop0 /Pfad/zum/container
sleep 1
cryptsetup luksOpen /dev/loop0 geheim
sleep 1
mount -t ext2 /dev/mapper/geheim /mnt/cryptcontainer
dmcryptumount:
Code:
#!/bin/bash
umount /mnt/cryptcontainer
cryptsetup luksClose geheim
losetup -d /dev/loop0
Die Scripte habe ich nach /usr/local/bin kopiert und ausführbar gemacht.
__________________
PC: Kubuntu 10.04
Router: Soekris net4801 mit OpenBSD 4.7
Server: OpenBSD 4.7
Private Linux Page

Geändert von DaGrrr (21.03.06 um 10:35 Uhr)
DaGrrr ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist aus.
HTML-Code ist an.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
verschlüsseltes dateisystem wiederherstellen mafiahamster System installieren und konfigurieren 4 27.12.04 09:42
Kernel 2.6 und verschlüsseltes Dateisystem topfpflanze System installieren und konfigurieren 1 30.05.04 12:36
verschlüsseltes dateisystem, passwort weg [Win]Dragan Linux Allgemein 22 22.12.03 08:18
Verschlüsseltes Dateisystem?? Simcemilia Sicherheit 2 06.09.02 11:08
Verschlüsseltes Dateisystem mit ReiserFS victor Linux Allgemein 1 20.05.00 10:49


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:10 Uhr.


Powered by vBulletin® Version 3.8.4 (Deutsch)
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
linuxforen.de -- sponsored by Kemm IT
Sie haben dieses Thema bewertet: