![]() |
|
|||||||
| Hier Suchen und Finden, Links, Tutorials Hier findet Ihr viele gut vorbereitete Lösungen |
![]() |
|
|
Themen-Optionen |
Bewertung:
|
Ansicht |
|
|
#1 | ||
|
Moderator
Registriert seit: Jul 2002
Ort: Berlin
Beiträge: 1.863
|
Verschlüsseltes Dateisystem mit dm-crypt
Howto Version: v0.1.1
Zitat:
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:
Fragen zum Thema bitte nur im Forum stellen, ich gebe keinen Support außerhalb des Forums! Zitat:
__________________
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) |
||
|
|
|
|
|
#2 | |
|
Moderator
Registriert seit: Jul 2002
Ort: Berlin
Beiträge: 1.863
|
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:
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:
Da ich Debian Sid User bin reicht folgender Befehl: Code:
apt-get install cryptsetup dmsetup hashalot
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) |
|
|
|
|
|
|
#3 | |
|
Moderator
Registriert seit: Jul 2002
Ort: Berlin
Beiträge: 1.863
|
Zitat:
Wir nehmen an, das /dev/hda3 unsere zu verschlüsselnde Partition sein wird. Code:
cryptsetup -c aes-cbc-essiv:sha256 -y luksFormat /dev/hda3
Code:
cryptsetup luksOpen /dev/hda3 geheim
Code:
mkfs.ext2 /dev/mapper/geheim
Code:
mount /dev/mapper/geheim /mnt/crypt
unmounten können wir mit: Code:
umount /mnt/crypt Code:
cryptsetup luksClose 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) |
|
|
|
|
|
|
#4 | |
|
Moderator
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!" Nach erfolgreicher Initialisierung ist beim Bootvorgang folgendes zu sehen: Zitat:
__________________
PC: Kubuntu 10.04 Router: Soekris net4801 mit OpenBSD 4.7 Server: OpenBSD 4.7 Private Linux Page |
|
|
|
|
|
|
#5 |
|
Moderator
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
Code:
losetup /dev/loop0 geheim
Code:
cryptsetup -c aes-cbc-essiv:sha256 -y luksFormat /dev/loop0
Code:
cryptsetup luksOpen /dev/loop0 geheim
Nun erstellen wir eine Partition in unserem Container und formatieren es mit dem Dateisystem ext2: Code:
mkfs.ext2 /dev/mapper/geheim Code:
mount -t ext2 /dev/mapper/geheim /mnt/cryptcontainer Code:
umount /mnt/cryptcontainer cryptsetup luksClose geheim losetup -d /dev/loop0 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) |
|
|
|
|
|
#6 |
|
Moderator
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 Code:
#!/bin/bash umount /mnt/cryptcontainer cryptsetup luksClose geheim losetup -d /dev/loop0
__________________
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) |
|
|
|
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | Thema bewerten |
|
|
Ä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 |