myGully.com Boerse.SH - BOERSE.AM - BOERSE.IO - BOERSE.IM Boerse.BZ .TO Nachfolger
Zurück   myGully.com > Computer & Technik > Linux & BSD
Seite neu laden

Kleines Verschlüsselungs-HowTo für Linux

Willkommen

myGully

Links

Forum

 
Antwort
Themen-Optionen Ansicht
Ungelesen 18.05.12, 14:09   #1
spartan-b292
Echter Freak
 
Benutzerbild von spartan-b292
 
Registriert seit: Mar 2010
Ort: /home/spartan-b292
Beiträge: 2.857
Bedankt: 1.700
spartan-b292 leckt gerne myGully Deckel in der Kanalisation! | 230828 Respekt Punktespartan-b292 leckt gerne myGully Deckel in der Kanalisation! | 230828 Respekt Punktespartan-b292 leckt gerne myGully Deckel in der Kanalisation! | 230828 Respekt Punktespartan-b292 leckt gerne myGully Deckel in der Kanalisation! | 230828 Respekt Punktespartan-b292 leckt gerne myGully Deckel in der Kanalisation! | 230828 Respekt Punktespartan-b292 leckt gerne myGully Deckel in der Kanalisation! | 230828 Respekt Punktespartan-b292 leckt gerne myGully Deckel in der Kanalisation! | 230828 Respekt Punktespartan-b292 leckt gerne myGully Deckel in der Kanalisation! | 230828 Respekt Punktespartan-b292 leckt gerne myGully Deckel in der Kanalisation! | 230828 Respekt Punktespartan-b292 leckt gerne myGully Deckel in der Kanalisation! | 230828 Respekt Punktespartan-b292 leckt gerne myGully Deckel in der Kanalisation! | 230828 Respekt Punkte
Standard Kleines Verschlüsselungs-HowTo für Linux

Dieses HowTo zeigt die Verschlüsselung eines GNU/Linux unter Verwendung von dm-crypt (implementiert im Paket cryptsetup), LUKS und LVM.

Ich habe hier auf lange Erklärungen der Grundlagen verzichtet, wer mehr erfahren möchte dem seien die Dokumentationen zu cryptsetup/dm-crypt, dem Devicemapper des Linuxkernels, LUKS und LVM empfohlen.

Anmerkung: Die installer der meisten großen Distributionen wie CentOS,RHEL,Fedora,Debian,*buntu bieten Verschlüsselung schon während der Installation an.

Namen müssen ggf. an Euere Partitionslayout angepasst werden.

Auch wenn ich den Inhalt gründlich geprüft habe, müsst ihr selber mitdenken und für Backups sorgen, an Datenverlusten bin ich nicht schuld!


Szenarian
Verschlüsselter „Container“
Einzelne verschlüsselte Partition
Nachträgliches Verschlüsseln des Betriebssystems


Verschlüsselter Container
Dazu muss der Container zunächst erstellt werden und loopback gemountet werden

Erzeugen des Containers
Code:
dd if=/dev/urandom of=container bs=1M count=10
Durch ändern von bs und count lässt sich die größe des „Containers“ festlegen. Mit diesen Einstellungen werden 10 mal 1Megabyte geschrieben also 10 Mb.

Loopback mounten (Mit Loopback können, vereinfacht, Dateien als Laufwerk gemountet werden)
Code:
losetup /dev/loop0 container
Verschlüsseltes LUKS Medium erzeugen und unter dem Namen „test“ öffnen
Code:
cryptsetup luksFormat /dev/loop0
cryptsetup luksOpen /dev/loop0 test
Ext3-Dateisystem im Container erzeugen
Code:
mkfs.ext3 /dev/mapper/test
Container mounten:
Code:
mount /dev/mapper/test /mnt/test/
Einen bestehenden Container mounten:
Code:
losetup /dev/loop/0 test
cryptsetup luksOpen /dev/loop/0 test
mount /dev/mapper/test /mnt/test/
Anmerkung: Die Rechte für den Mountpoint müssen ggf noch angepasst werden, damit auch nicht-rootuser darauf zugrifen können.


Einzelne Verschlüsselte Partition:
!Achtung! Hier geht es um das Verschlüsseln einer Partition die nicht zum Booten des Betriebssystems gebraucht wird, beispielsweise einer externen Festplatte o.ä. Da beim Verschlüsseln alle Daten auf der Partition verloren gehen muss vorher ein Backup angelegt werden.

Überschreiben der Partition mit zufälligen Daten:
Code:
shred -n1 -v /dev/sdb1
dd if=/dev/urandom of=/dev/sdb1
Verschlüsseltes LUKS Medium erzeugen und unter dem Namen test öffnen:
Code:
cryptsetup luksFormat  /dev/sdb1
cryptsetup luksOpen /dev/sdb1 test
Ext3-Dateisystem erzeugen:
Code:
mkfs.ext3 /dev/mapper/test
Partition mounten:
Code:
mount /dev/mapper/test /mn/test
Nachträgliches verschlüsseln des Betriebssystems:

Vorraussetzungen: Auf eurem System müssen die Pakete lvm2 und cryptsetup installiert sein. Außerdem benötigt ihr eine LiveCD.

Das Vorgehen um ein System nachträglich zu verschlüsseln ist zusammengefasst folgendes:
  • Backup des existierenden Systems
  • Erstellen der neuen verschlüsselten Partition(en)
  • Wiederherstellen des Backups auf die verschlüsselte(n) Partition(en)
  • Modifizieren des Betriebssystems


Backup
Zunächst legt ihr euch ein Backup eures Systems an. Überprüft euer Backup,denn ab jetzt werden alle Daten gelöscht. Verwendet dazu am besten die LiveCD und Rsync.

Bootet von der Livecd, öffnet einen Terminal:

Partition mit Zufallsdaten füllen
Code:
shred -n1 -v /dev/sdb
dd if =/dev/urandom of=/dev/sdb
Festplatte neu partitionieren (kann je nach existierendem Layout entfallen):
Code:
fdisk /dev/sdb
/dev/sdb1 *
/dev/sdb2
(sdb1 ist die Bootfähige Partition, gekennzeichnet in fdisk durch den *)

Verschlüsseltes LUKS Medium erzeugen und unter dem Namen „sdb2crypto“ öffnen:
Code:
cryptsetup luksFormat /dev/sdb2
cryptsetup luksOpen /dev/sdb2 sdb2crypto
Ab hier gibt es zwei Möglichkeiten die Partitionen einzurichten. Die erste ist ein LVM Setup auf der verschlüsselten Partition zu erzeugen und darin eine / und swap Partition. Dies entspricht der

Konfiguration wie man sie meistens nach der Verschlüsselung während der Installation vorfindet.

Die zweite Möglichkeit wäre die Einrichtung der Partitionen ohne LVM.

Möglichkeit 1:

LVM Setup auf der verschlüsselten Partition erzeugen:
Code:
pvcreate /dev/mapper/sdb2crypto
vgcreate crypto /dev/mapper/sdb2crypto
lvcreate -L2000 -nswap_1 crypto
vgdisplay crypto | grep „Free PE“
lvcreate -l****** -nroot crypto
vgchange -a -y crypto
Die ****** ersetzt ihr durch den Wert den ihr nach dem Ausführen von
vgdisplay crypto | grep „Free PE“
erhaltet.

Dateisysteme erzeugen:
Code:
mkswap /dev/mapper/crypto-swap
mke2fs -j /dev/mapper/crypto-root
Wiederherstellen
Mountpoint erstellen:
Code:
mkdir /mnt/restore
Mounten:
Code:
mount /dev/mapper/cryptop-root /mnt/restore
/boot erstellen und mounten
Code:
mkdir /mnt/restore/boot
mount /dev/sdb1 /mnt/restore/boot
Wiederherstellen:
Code:
rsync -az <Ort_eures_Backups> /mnt/restore
Jetzt sind noch einige Modifikationen vorzunehmen da Euer System in diesem Zustand noch nicht booten würde.

Code:
mount -t proc none /mnt/restore/proc
mount -t sysfs none /mnt/restore/sys
mount --bind /dev /mnt/restore/dev
chroot /mnt/restore
Öffnen von /etc/cryptab:
Code:
nano /etc/crypttab
Folgendes eintragen:
Code:
/dev/mapper/crypto-root /                 		ext3    errors=remount-ro 0       1
/dev/sdb1       /boot           		 	ext2    defaults        0       2
/dev/mapper/crypto-swap 			none         swap    sw              0       0
/etc/initramfs-tools/conf.d/resume öfnnen:
Code:
nano /etc/initramfs-tools/conf.d/resume
Die Zeile RESUME=““ so ändern:
Code:
RESUME=/dev/mapper/crypto-swap
/boot/grub/menu.lst öfnnen:
Code:
nano /boot/grub/menu.lst
Alle einträge von /dev/sdb1 zu /dev/mapper/crypto-root ändern

Als nächstes muss Grub zum MBR hinzugefügt werden und initrds wiedererstellt werden.

/etc/mtab neu erstellen:
Code:
cat /proc/mounts > /etc/mtab
/etc/mtab/ öfnnen
Code:
nano /etc/mtab
Und etwa so editieren
Code:
/dev/mapper/crypto-root / ext3 rw,errors=continue,data=ordered 0 0
/dev/sdb1 /boot ext3 rw,errors=continue,data=ordered 0 0
none /proc proc rw 0 0
none /sys sysfs rw 0 0
tmpfs /dev tmpfs rw,size=10240k,mode=755 0 0
Grub zum MBR hinzufügen:
Code:
grub-install /dev/sdb
initrds neu erstellen:
Code:
update-initramfs -k all -u
chroot verlassen und Dateisysteme aushängen:
Code:
exit
umount /mnt/restore/proc
umount /mnt/restore/sys
umount /mnt/restore/dev
umount /mnt/restore/boot
umount /mnt/restore
Fertig!
Nach einem Reboot sollte euch LUKS nach einem Passwort für die verschlüsselte Partition fragen.

Anmerkung: Sol l damit ein Server auf dem kein physischer Zugriff besteht muss noch ssh so konfiguriert werden, dass der Key über SSH übertragen werden kann.


Möglichkeit 2:
Die zweite Möglichkeit wäre die Konfiguration der Partitionen ohne LVM

Vorraussetzungen sind die Pakete cryptsetup und initramfs-tools.

In /etc/crypttab das mapping zwischen der Partition und dem „Verschlüsselungsinterface“ eintragen
Code:
echo "root /dev/sdb2 none luks" >>/etc/crypttab
sed -i 's#/dev/sdb2#/dev/mapper/root#' /etc/fstab
Root-device für grub ändern:
Code:
sed -i 's#/dev/sdb2#/dev/mapper/root#' /boot/grub/menu.lst
initrd image neu erstellen:
Code:
update-initramfs -k all -u
Ab hier wieder sicher sein dass ein sauberes Backup vorhanden ist da wieder alle Daten gelöscht werden.

Daten Löschen und mit Zufallsdaten füllen:
Code:
shred -n1 -v /dev/sdb2
dd if =/dev/urandom of=/dev/sdb2
Die verschlüsselte Partition erstellen:
Code:
cryptsetup luksFormat /dev/sdb2
cryptsetup luksOpen /dev/sdb2 root
Dateisystem erstellen, neue Partition mounten und Backup zurückspielen
Code:
mkfs.ext3 /dev/mapper/root
mount /dev/mapper/root /mnt/root
rsync -az <Ort_eures_Backups> /mnt/root/
Fertig!


Und jetzt viel Spaß beim Verschlüsseln
__________________
"They who can give up essential liberty to obtain a little temporary safety, deserve neither liberty nor safety"
spartan-b292 ist offline   Mit Zitat antworten
Ungelesen 02.07.12, 00:05   #2
peacok
Anfänger
 
Benutzerbild von peacok
 
Registriert seit: Apr 2010
Beiträge: 24
Bedankt: 4
peacok ist noch neu hier! | 0 Respekt Punkte
Standard ext3 ?

Sorry ext3 ist recht nerfig wenn Du oder man grosse Platten betreibt.

ext4 ist heute normal, xfs, oder reiserfs wird immer unterschätzt.


Es geht um den schnellsten selbsttest beim boot.


Das hätte ich bei ext3 schon lange erwartet, da es reiserfs es schon einige jahre vorher konnte.
(richtiges fs-journaling)

Bei ext3 verliere ich mehr daten als bei ext4.


Da trett ich wohl den schlimmsten fs-war an now )

Aber danke für das Doku, ist sonst geill.
peacok ist offline   Mit Zitat antworten
Antwort


Forumregeln
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren

BB code is An
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:52 Uhr.


Sitemap

().