Benutzer:ChrisGT/Festplatte verschlüsseln: Unterschied zwischen den Versionen

Aus wiki.archlinux.de
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(7 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 97: Zeile 97:
Die Option key-size kann auch auf 256 gesetzt werden. Hier muss sich jeder selber entscheiden, zwischen Sicherheit und Geschwindigkeit. Im Wiki [http://wiki.ubuntuusers.de/LUKS www.ubuntuusers.de] ist folgendes zu lesen:
Die Option key-size kann auch auf 256 gesetzt werden. Hier muss sich jeder selber entscheiden, zwischen Sicherheit und Geschwindigkeit. Im Wiki [http://wiki.ubuntuusers.de/LUKS www.ubuntuusers.de] ist folgendes zu lesen:


'''XTS unterstützt Verwaltungsschlüssel von 128 oder 256 Bit. 512 heißt in dem Fall, dass sowohl AES als auch XTS die maximale Schlüssellänge von 256 Bit verwenden.
'''XTS unterstützt Verwaltungsschlüssel von 128 oder 256 Bit. 512 heißt in dem Fall, dass sowohl AES als auch XTS die maximale Schlüssellänge von 256 Bit verwenden. Um eine höhere Lese-/Schreibgeschwindigkeit zu erzielen, kann auch stattdessen 256 eingesetzt werden - das entspricht einer 128 Bit Verschlüsselung. Dies ist z.B. für Systempartitionen und langsamere Systeme empfehlenswert.'''
 
Um eine höhere Lese-/Schreibgeschwindigkeit zu erzielen, kann auch stattdessen 256 eingesetzt werden - das entspricht einer 128 Bit Verschlüsselung. Dies ist z.B. für Systempartitionen und langsamere Systeme empfehlenswert.'''


Eine Verschlüssellung mit effektiven 128 bit ist mit den aktuellen Algorithmen AES, Twofish und Serpent immer noch sicher, so dass man hier mit gutem Gewissen auch 256 eintragen kann. Der schwächste Punkt einer verschlüsselten Festplatte ist das PW, von daher ist ein sicheres PW viel wichtiger als zusätzliche 128 bit.
Eine Verschlüssellung mit effektiven 128 bit ist mit den aktuellen Algorithmen AES, Twofish und Serpent immer noch sicher, so dass man hier mit gutem Gewissen auch 256 eintragen kann. Der schwächste Punkt einer verschlüsselten Festplatte ist das PW, von daher ist ein sicheres PW viel wichtiger als zusätzliche 128 bit.


Das Passwort sollte sich gut gemerkt sein, sonst gibt es Probleme und man kann dieses Wiki von vorn abarbeiten, ein Widerherstellen ist nicht möglich, aber das ist ja auch Sinn der Sache. Prüft am Besten auch noch einmal Euer Passwort als Klartext und gebt es in die Kommandozeile ein. So kann sichergestellt werden, dass auch das richtige Tastaturlayout gewählt wurde und Sonderzeichen auch das sind was man haben wollte. Abgesehen davon, ist man so auf der sicheren Seite, sollte man beim Installieren von Arch das falsche Tastaturlayout auswählen, den Rechner neustarten und der die PW-Abfrage ist nicht auf Deutsch. Mir hat es einmal geholfen(Tastatur war Englisch), einfach in Grub(da ist sie eh auf Englisch) auf E für Edit zu drücken und dort in der Eingabemöglichkeit einfach mal zu Testen, wo in diesem Layout die Tasten liegen(Trick 17). Aber wie gesagt: Im Normalfall passiert das nicht.
Das Passwort sollte sich gut gemerkt sein, sonst gibt es Probleme und man kann dieses Wiki von vorn abarbeiten, ein Widerherstellen ist nicht möglich, aber das ist ja auch Sinn der Sache. Prüft am Besten auch noch einmal Euer Passwort als Klartext und gebt es in die Kommandozeile ein. So kann sichergestellt werden, dass auch das richtige Tastaturlayout gewählt wurde und Sonderzeichen auch das sind was man haben wollte. Abgesehen davon, ist man so auf der sicheren Seite, sollte man beim Installieren von Arch das falsche Tastaturlayout auswählen, den Rechner neustarten und die PW-Abfrage ist nicht auf Deutsch. Mir hat es einmal geholfen(Tastatur war Englisch), einfach in Grub(da ist sie eh auf Englisch) auf E für Edit zu drücken und dort in der Eingabemöglichkeit einfach mal zu Testen, wo in diesem Layout die Tasten liegen(Trick 17). Aber wie gesagt: Im Normalfall passiert das nicht.


Nun sollte das Crypto-Device geöffnet und gemountet werden. Dazu muss ersteinmal ein Ordner in /mnt erstellt werden, wo wir die Partition einhängen können
Nun sollte das Crypto-Device geöffnet und gemountet werden. Dazu muss ersteinmal ein Ordner in /mnt erstellt werden, wo wir die Partition einhängen können
Zeile 117: Zeile 115:
   mke2fs -j /dev/mapper/root
   mke2fs -j /dev/mapper/root


Wie man hier sieht, wird die Partition ganz normal gemounted, nur halt das das Mapper-Device statt des normalen Device angegeben wird. So ist es möglich, alle vom Kernel unterstützten Filesysteme zu installieren. Um zB ext4 zu nutzen wird das Mapper-Device einfach mit "mkfs.ext4 /dev/mapper/root" formatiert.
Wie man hier sieht, wird die Partition ganz normal gemounted, nur halt das das Mapper-Device statt des normalen Device angegeben wird. So ist es möglich, alle vom Kernel unterstützten Filesysteme zu installieren. Um zB ext4 zu nutzen wird das Mapper-Device einfach mit "mkfs.ext4 /dev/mapper/root" formatiert(ext4 wird allerdings erst ab dem Install-Image 04.2009(Kernel 2.6.29) unterstützt, welches zum jetzigen Zeitpunkt noch in der Testphase ist).
Beachtet bitte, dass Ihr dann in der /etc/fstab auch den richtigen Filesystemtyp eintragt. In diesem Beispiel nehme ich für ext3 und ext2(für boot), was ihr dann durch das von Euch verwendete Filesystem ersetzen müsst.
Beachtet bitte, dass Ihr dann in der /etc/fstab auch den richtigen Filesystemtyp eintragt. In diesem Beispiel nehme ich für ext3 und ext2(für boot), was ihr dann durch das von Euch verwendete Filesystem ersetzen müsst.


Nach dem formatieren nun noch mounten.
Nach dem Formatieren nun noch mounten.


   mount /dev/mapper/root /mnt/root
   mount /dev/mapper/root /mnt/root
Zeile 137: Zeile 135:
Jetzt kann das Crypto-Device angelegt werden. Für AES
Jetzt kann das Crypto-Device angelegt werden. Für AES


   cryptsetup luksFormat /dev/sda4 /mnt/root/crypto/home.key --cipher aes-xts-plain:sha256 --key-size 256
   cryptsetup luksFormat /dev/sda4 /mnt/root/crypto/home.key --cipher aes-xts-plain --key-size 512


für Twofish
für Twofish


   cryptsetup luksFormat /dev/sda4 /mnt/root/crypto/home.key --cipher twofish-xts-plain:sha256 --key-size 256
   cryptsetup luksFormat /dev/sda4 /mnt/root/crypto/home.key --cipher twofish-xts-plain --key-size 512


und Serpent
und Serpent


   cryptsetup luksFormat /dev/sda4 /mnt/root/crypto/home.key --cipher serpent-xts-plain:sha256 --key-size 256
   cryptsetup luksFormat /dev/sda4 /mnt/root/crypto/home.key --cipher serpent-xts-plain --key-size 512




Zeile 171: Zeile 169:


Also auch hier: formatieren, Zielordner anlegen und mounten
Also auch hier: formatieren, Zielordner anlegen und mounten
   mke2fs /dev/sda1
   mke2fs /dev/sda1
   mkdir /mnt/root/boot
   mkdir /mnt/root/boot
Zeile 206: Zeile 205:
wobei ein paar Dinge zu beachten sind:
wobei ein paar Dinge zu beachten sind:


1. Der Punkt Network kann weg gelassen werden, denn der wurde mit dem dhcpcd schon erledigt
1. Der Punkt "Network" kann weg gelassen werden, denn der wurde mit dem dhcpcd schon erledigt


2. Der Punkt "Prepare Hard Drive" kann weggelassen werden, da dies ebenfalls schon erledigt wurde.
2. Der Punkt "Prepare Hard Drive" kann weggelassen werden, da dies ebenfalls schon erledigt wurde.
Zeile 213: Zeile 212:
Die Punkte "Select Packages" und "install Packages" können ganz normal abgearbeitet werden.
Die Punkte "Select Packages" und "install Packages" können ganz normal abgearbeitet werden.


Wichtig ist jetzt wieder der nächste Punkt "Configure System", bei dem unbedingt die Frage "Do you need support for booting from encrypted volumes?" mit YES beantwortet. Sollte dort NO geantwortet werden, wird das Kernelimage nicht mit den nötigen Module konfiguriert und der Systemstart wird nich nicht möglich.
Wichtig ist jetzt wieder der nächste Punkt "Configure System", bei dem unbedingt die Frage "Do you need support for booting from encrypted volumes?" mit YES beantwortet. Sollte dort NO geantwortet werden, wird das Kernelimage nicht mit den nötigen Module konfiguriert und der Systemstart wird nicht möglich.


Nach diesen Fragen hat man die Möglichkeit die Konfigurationsdateien zu bearbeiten.  
Nach diesen Fragen hat man die Möglichkeit die Konfigurationsdateien zu bearbeiten.  
Zeile 239: Zeile 238:


Für Twofish oder Serpent ist natürlich die Option hinter Swap wieder anzupassen. Einfach aes durch twofish oder serpent ersetzen.
Für Twofish oder Serpent ist natürlich die Option hinter Swap wieder anzupassen. Einfach aes durch twofish oder serpent ersetzen.
Da hier ein zufallsgenerierter Key zum Tragen kommt, kann man bei Swap durchaus eine 512 setzen.


Das war es schon fast.
Das war es schon fast.
Zeile 256: Zeile 254:


==== Mounten ====
==== Mounten ====
Es gibt ab und an mal das Problem, dass der Kernel nicht richtig geupdatet wurde oder sonst irgendwas passiert ist, warum man sein verschlüsseltes System nicht starten kann. Hier beschreibe ich kurz wie man mit der Arch-Install-CD auf sein System zugreift und mittels Pacman einen Kernel einspielt.
Es gibt ab und an mal das Problem, dass der Kernel nicht richtig geupdatet wurde oder sonst irgendwas passiert ist, warum man sein verschlüsseltes System nicht starten kann. Hier beschreibe ich kurz wie man mit der Arch-Install-CD auf sein System zugreift und mittels Pacman einen Kernel einspielt.
Ich gehe davon aus man hat sich einen Kernel installiert, der nicht läuft und man möchte den alten Kern wiederherstellen.
Ich gehe davon aus man hat sich einen Kernel installiert, der nicht läuft und man möchte den alten Kern wiederherstellen.
Zeile 271: Zeile 271:
geöffnet
geöffnet


cryptsetup luksOpen /dev/sda3 root
  cryptsetup luksOpen /dev/sda3 root


und dann gemountet werden
und dann gemountet werden


mount /dev/mapper/root /mnt
  mount /dev/mapper/root /mnt


Mit
Mit
   ls /mnt
   ls /mnt


Zeile 292: Zeile 293:
geprüft werden ob alles da ist.
geprüft werden ob alles da ist.


Zum Schluss noch einige Systemordner gemountet
Zum Schluss noch einige Systemordner mounten


   mount -o bind /dev /mnt/dev
   mount -o bind /dev /mnt/dev
Zeile 304: Zeile 305:
und drin ist man.
und drin ist man.


Jetzt kann man nach dem die Internetverbindung mit
Jetzt kann man, nach dem die Internetverbindung mit


   dhcpcd eth0
   dhcpcd eth0
Zeile 341: Zeile 342:


neustarten.
neustarten.
=== Passwort ändern / hinzufügen ===
Es ist möglich nach einer Verschlüsselung sein Passwort zu ändern, oder auch mehrere zu benutzen(zB wenn man auf einem System mehrere Benutzer hat). Mit der Option "luksAddKey" sind so bis zu 8 PW möglich. Ganz hilfreich ist das Ganze, wenn man nach dieser Anleitung vorgegangen ist und /home per Keyfile verschlüsselt hat. Sollte einmal etwas schief gehen und der Keyfile in /crypto(auf sda3 also root) beschädigt werden, kann man /home immer noch mit einem PW mounten(wenn man denn zusätzlich ein PW vergeben hat). Andersherum kann natürlich auch ein Slot mal fehlerhaft sein und es kann dadurch einfach ein anderer zum entschlüsseln genutzt werden.
Die PW/Passwortfiles sind in sogenannten "Slots" untergebracht und mit
  cryptsetup luksAddKey /dev/sda3
wird ein neuer Slot auf /dev/sda3 erstellt. Nach eingabe des Befehls, fragt cryptsetup das aktuelle PW ab und danach kann man sein neues PW eingeben. Sollte ein Keyfile verwendet werden, wie hier im Wiki auf /dev/sda4, würde das so aussehen
  cryptsetup luksAddKey /dev/sda4 --key-file=/crypto/home.key
Wie man sieht muss man lediglich mit --key-file mitteilen wo der Key liegt. 
Um zu Prüfen welcher und wieviele Slots belegt sind, ist luksDump sehr hilfreich
  cryptsetup luksDump /dev/sda3
Die Slots können mit
  cryptsetup luksDelKey /dev/sda3 1
gelöscht werden. Die letzte Zahl ist unser Passwortslot. Man sollte unbedingt darauf achten, mindestens einen Slot besetzt zu lassen. Kein PW ==> keine Entschlüsselung der Platte möglich.
Sollte man ein neues PW erstellen wollen, sollte man einfach ein PW in Slot 1 erstellen und anschließend Slot 0 entfernen.
=== Links mit weiteren Informationen ===
[http://www.linux-magazin.de/Heft-Abo/Ausgaben/2005/08/Geheime-Niederschrift Linux Magazin]

Aktuelle Version vom 20. Mai 2009, 21:14 Uhr

„ChrisGT/Festplatte verschlüsseln“ wurde von ChrisGT als in Bearbeitung markiert. Um Bearbeitungskonflikte zu vermeiden, kontaktiere ChrisGT bitte, bevor du den Artikel bearbeitest.


In vielen Bereichen ist es wichtig sicherzustellen, dass sensible oder private Daten nicht in falsche Hände geraten. Gerade Laptops wechseln schnell unfreiwillig den Besitzer und oft ist der Verlust der Daten deutlich schlimmer als der Materialverlust. Das Verschlüsseln von Festplatten bietet einen guten Schutz, falls der Rechner im ausgeschalteten Zustand gestohlen worden ist(im laufenden Zustand kann natürlich ganz normal darauf zugegriffen werden und es sind andere Sicherungsmaßnahmen notwendig). Ein weiterer Vorteil ist die Entsorgung von Festplatten. Bei vollverschlüsselten Festplatten, können diese bedenkenlos entsorgt bzw. verkauft werden, ohne sich stundenlang mit dem sicheren Löschen der Daten beschäftigen zu müssen. Zielgruppen sind also nicht nur Staatsfeinde und Terrorverdächtige, sondern auch ganz normale Privatpersonen, denen die eigene Privatsphäre am Herzen liegt oder verschiedene Berufsgruppen, bei denen die Vertraulichkeit der Daten wichtig ist(zB Anwälte)

Welche Möglichkeiten bietet Arch

Unter Linux bietet uns dm-crypt die Möglichkeit im Zusammenhang mit verschiedenen Algorithmen die Festplatten zu verschlüsseln, was leider (im Gegensatz zu Windows mit Truecrypt ab V5 oder PGP Pro) vor der Installation geschehen sollte, da dies nachträglich um einiges schwieriger zu handhaben ist.

Nach dem Start der Installations CD, sollte man ersteinmal das Tastaturlayout auf Deutsch stellen(wichtig wegen der Passwortabfrage, da hier das richtige Installscript genutzt wird und somit beim Systemstart das Layout schon auf Deutsch ist, im Gegensatz zum alten Wiki).


Mit

 km 

ist das relativ schnell gemacht, die quertz Tastatur in Deutsch findet ihr weiter unten(i386/quertz/de-latin1-nodeadkeys.map.gz) und der Konsolefont sollte der Default-Eintrag(default8x16.psfu.gz) sein.

Nun kann man sich anschauen, welche Möglichkeiten Arch bietet, sein System zu verschlüsseln:

 cd /lib/modules/$(uname -r)/kernel/crypto
 ls

Wichtig ist hier vorallem das Modul xts und das jeweilige Modul des Algorithmus den man nutzen möchten. Empfehlenswert sind hier AES(wird meist verwendet), Twofish und Serpent.

Ich werde im folgenden versuchen auf alle 3 einzugehen.

Weiter Informationen zu den verschiedenen Algorithmen liefert Wikipedia:

AES

Twofish

Serpent

Einen Geschwindigkeitsvergleich zwischen Ext3(ohneVerschlüsselung), AES und Twofish findet Ihr unter:

wiki.chaostreff.ch

oder

saout.de

Laden und partitionieren

Laden der Module

Als erstes müssen die Kernelmodule aktiviert werden:

 modprobe dm-crypt
 modprobe xts
 modprobe aes-i586 oder aes-x86-64 für ein 64bit-Arch-System

Solltet Ihr Twofisch oder Serpent statt aes nehmen, dann einfach

 modprobe twofish 
 oder 
 modprobe serpent


Partitionieren

Spätestens an dieser Stelle sollte man sich Überlegen wie das Partitionslayout aussehen sollte und welchen Verschlüsselungsalgorithmus man wählt, da nach der Installation das Verändern/Verschieben der Partitionen nur sehr umständlich möglich ist und man so einiges an Erfahrung braucht. Je nach Vorliebe, also

 fdisk /dev/sda (Ich gehe davon aus, dass auf die erste Festplatte installiert wird, wenn nicht muss hier angepasst werden)

oder

 cfdisk /dev/sda (die doch etwas komfortablere Möglichkeit)

Meine Partitionslayout sieht folgendermaßen aus:

 /dev/sda1 ==> /boot ca. 100 MB Der einzige Teil der auf der Platte unverschlüsselt bleibt
 /dev/sda2 ==> swap je nach Größe von Eurem Arbeitsspeicher, ich nehme da immer 1 GB, auch wenn ich es gar nicht brauche
 /dev/sda3 ==> / 15 bis 25 GB je nach Eurem Plattenspeicher
 /dev/sda4 ==> /home den ganzen Rest

Crypto-Devices anlegen, formatieren und mounten

Jetzt geht es ans Eingemachte. Da ich wenig Lust habe, für jede Partition, ein eigenes Passwort einzugeben, habe ich bei mir / mit einem PW gesichert, /home wird mit einem Keyfile verschlüsselt und swap wird mit einem Zufallskey bei jedem Systemstart neu angelegt.

/

Als erstes kommt / dran. Für die Verschlüsselung mit AES:

 cryptsetup luksFormat /dev/sda3 --cipher aes-xts-plain --verify-passphrase --key-size 512

für Twofish

 cryptsetup luksFormat /dev/sda3 --cipher twofish-xts-plain --verify-passphrase --key-size 512

für Serpent

 cryptsetup luksFormat /dev/sda3 --cipher serpent-xts-plain --verify-passphrase --key-size 512

Die Option key-size kann auch auf 256 gesetzt werden. Hier muss sich jeder selber entscheiden, zwischen Sicherheit und Geschwindigkeit. Im Wiki www.ubuntuusers.de ist folgendes zu lesen:

XTS unterstützt Verwaltungsschlüssel von 128 oder 256 Bit. 512 heißt in dem Fall, dass sowohl AES als auch XTS die maximale Schlüssellänge von 256 Bit verwenden. Um eine höhere Lese-/Schreibgeschwindigkeit zu erzielen, kann auch stattdessen 256 eingesetzt werden - das entspricht einer 128 Bit Verschlüsselung. Dies ist z.B. für Systempartitionen und langsamere Systeme empfehlenswert.

Eine Verschlüssellung mit effektiven 128 bit ist mit den aktuellen Algorithmen AES, Twofish und Serpent immer noch sicher, so dass man hier mit gutem Gewissen auch 256 eintragen kann. Der schwächste Punkt einer verschlüsselten Festplatte ist das PW, von daher ist ein sicheres PW viel wichtiger als zusätzliche 128 bit.

Das Passwort sollte sich gut gemerkt sein, sonst gibt es Probleme und man kann dieses Wiki von vorn abarbeiten, ein Widerherstellen ist nicht möglich, aber das ist ja auch Sinn der Sache. Prüft am Besten auch noch einmal Euer Passwort als Klartext und gebt es in die Kommandozeile ein. So kann sichergestellt werden, dass auch das richtige Tastaturlayout gewählt wurde und Sonderzeichen auch das sind was man haben wollte. Abgesehen davon, ist man so auf der sicheren Seite, sollte man beim Installieren von Arch das falsche Tastaturlayout auswählen, den Rechner neustarten und die PW-Abfrage ist nicht auf Deutsch. Mir hat es einmal geholfen(Tastatur war Englisch), einfach in Grub(da ist sie eh auf Englisch) auf E für Edit zu drücken und dort in der Eingabemöglichkeit einfach mal zu Testen, wo in diesem Layout die Tasten liegen(Trick 17). Aber wie gesagt: Im Normalfall passiert das nicht.

Nun sollte das Crypto-Device geöffnet und gemountet werden. Dazu muss ersteinmal ein Ordner in /mnt erstellt werden, wo wir die Partition einhängen können

 mkdir /mnt/root

und das Crypto-Device geöffnet werden

cryptsetup luksOpen /dev/sda3 root

Nach der Passworteingabe wird das erfolgreiche Öffnen mit "key slot 0 unlocked" bestätigt und es kann das Crypto-Device formatiert werden

 mke2fs -j /dev/mapper/root

Wie man hier sieht, wird die Partition ganz normal gemounted, nur halt das das Mapper-Device statt des normalen Device angegeben wird. So ist es möglich, alle vom Kernel unterstützten Filesysteme zu installieren. Um zB ext4 zu nutzen wird das Mapper-Device einfach mit "mkfs.ext4 /dev/mapper/root" formatiert(ext4 wird allerdings erst ab dem Install-Image 04.2009(Kernel 2.6.29) unterstützt, welches zum jetzigen Zeitpunkt noch in der Testphase ist). Beachtet bitte, dass Ihr dann in der /etc/fstab auch den richtigen Filesystemtyp eintragt. In diesem Beispiel nehme ich für ext3 und ext2(für boot), was ihr dann durch das von Euch verwendete Filesystem ersetzen müsst.

Nach dem Formatieren nun noch mounten.

 mount /dev/mapper/root /mnt/root


/home

/home wird mit einem zufallsgenerierten Keyfile verschlüsselt. Dazu muss ersteinmal ein Zielordner für das Keyfile angelegt werden

 mkdir /mnt/root/crypto

und dort ein zufallsgenerierter File angelegt

 dd if=/dev/random of=/mnt/root/crypto/home.key bs=1k count=2

Jetzt kann das Crypto-Device angelegt werden. Für AES

 cryptsetup luksFormat /dev/sda4 /mnt/root/crypto/home.key --cipher aes-xts-plain --key-size 512

für Twofish

 cryptsetup luksFormat /dev/sda4 /mnt/root/crypto/home.key --cipher twofish-xts-plain --key-size 512

und Serpent

 cryptsetup luksFormat /dev/sda4 /mnt/root/crypto/home.key --cipher serpent-xts-plain --key-size 512


Nun wieder das gleiche Spiel wie bei der letzten Partition.

Öffnen:

 cryptsetup luksOpen /dev/sda4 home --key-file /mnt/root/crypto/home.key

Formatieren:

 mke2fs -j /dev/mapper/home

Zielordner erstellen:

 mkdir /mnt/root/home

Und mounten:

 mount /dev/mapper/home /mnt/root/home

/boot

Die kleinere Bootpartition ist die einzige Partition in unserem System die nicht verschlüsselt wird, da darin der Bootloader liegt und dieser nicht verschlüsselt werden kann.

Also auch hier: formatieren, Zielordner anlegen und mounten

 mke2fs /dev/sda1
 mkdir /mnt/root/boot
 mount /dev/sda1 /mnt/root/boot

Arch installieren

Ab hier kann fast der normale Installationsweg, bis auf ein paar Kleinigkeiten abgearbeitet werden.

Als erstes sorgt man für eine Netzverbindung:

 dhcpcd eth0

und wechselt in das Verzeichniss /arch

 cd /arch

Im Verzeichniss Arch ist das setup-Script zu finden, was ein wenig angepasst werden muss. Keine Panik, das ist nicht schwer, es muss lediglich das Zielverzeichniss angepasst werden, da ja alle partitionen nach /mnt/root gemounted wurden. Mit nano oder vi öffnet man dieses Script

 nano setup bzw vi setup

und öndert die Zeile

 DESTDIR="/mnt"

in

 DESTDIR="/mnt/root"

Das wars schon und man kann das setup-Script abarbeiten,

 ./setup

wobei ein paar Dinge zu beachten sind:

1. Der Punkt "Network" kann weg gelassen werden, denn der wurde mit dem dhcpcd schon erledigt

2. Der Punkt "Prepare Hard Drive" kann weggelassen werden, da dies ebenfalls schon erledigt wurde.


Die Punkte "Select Packages" und "install Packages" können ganz normal abgearbeitet werden.

Wichtig ist jetzt wieder der nächste Punkt "Configure System", bei dem unbedingt die Frage "Do you need support for booting from encrypted volumes?" mit YES beantwortet. Sollte dort NO geantwortet werden, wird das Kernelimage nicht mit den nötigen Module konfiguriert und der Systemstart wird nicht möglich.

Nach diesen Fragen hat man die Möglichkeit die Konfigurationsdateien zu bearbeiten.

Als erstes die /etc/rc.conf, welche Ihr nach Euren Bedürfnissen anpasst. Üblicherweise wird gleich der Punkt LOCALE auf de_DE.utf8, die TIMEZONE zu "Europe/Berlin" und die Option KEYMAP auf de gestellt

Nun ist die /etc/fstab dran, welche um die Crypto-Devices erweitert werden muss und im Falle der hier angewendeten Partitionierung wie folgt aussehen muss:

 /dev/sda1              /boot       ext2    defaults                0      0
 /dev/mapper/root       /           ext3    defaults                0      0
 /dev/mapper/home       /home       ext3    defaults                0      0
 /dev/mapper/swap       swap        swap    defaults                0      0

Die anderen Punkte werden wie gewöhnlich bearbeitet und es ist darauf zu achten, auch /etc/locale.gen auf deutsch zu stellen und bitte grub nicht vergessen zu installieren.

Nach Abschluss des Setup-Syripts muss noch dem System mitgeteilt werden, was mit zB /dev/mapper/root in /etc/fstab gemeint ist. Dies kann in der Datei crypttab erledigt werden

 nano /mnt/root/etc/crypttab

In diese muss folgendes eingetragen werden:

 swap            /dev/sda2               SWAP                   "-c aes-xts-plain -h whirlpool -s 512"
 home            /dev/sda5               /crypto/home.key

Für Twofish oder Serpent ist natürlich die Option hinter Swap wieder anzupassen. Einfach aes durch twofish oder serpent ersetzen.

Das war es schon fast.

Die Mapper-Devices existieren noch nicht, sodass man die einfach vom Installationsmedium zur neuen Festplatte kopiert

 cp -r /dev/mapper /mnt/root/dev/mapper

Der letzte Schritt sollte eigentlich gar nicht notwendig sein, da ich aber einige Male Probleme hatte mit nicht existierenden Dateien in /dev/mapper kann dieser auch nicht schaden und so gehe ich sicher das ich nach dem Neustart auch alles da habe, wo es sein muss(3 von 5 Tests gingen bei mir ohne diese Zeile).

Nun kann neu gestartet werden und das System ist zum einrichten bereit.

Sonstige Tips

Mit chroot den Kernel reparieren

Mounten

Es gibt ab und an mal das Problem, dass der Kernel nicht richtig geupdatet wurde oder sonst irgendwas passiert ist, warum man sein verschlüsseltes System nicht starten kann. Hier beschreibe ich kurz wie man mit der Arch-Install-CD auf sein System zugreift und mittels Pacman einen Kernel einspielt. Ich gehe davon aus man hat sich einen Kernel installiert, der nicht läuft und man möchte den alten Kern wiederherstellen. Einfacher macht man es sich, wenn erst wieder das Tastaturlayout angepasst wird

 km 

Nachdem von der CD gestartet wurde, müssen natürlich wieder die nötigen Module geladen werden:

 modprobe dm-crypt
 modprobe xts
 modprobe aes-i586 (oder Serpent oder Twofish)

Das auf der Platte befindliche Crypto-Device root muss geöffnet

 cryptsetup luksOpen /dev/sda3 root

und dann gemountet werden

 mount /dev/mapper/root /mnt

Mit

 ls /mnt

kann geprüft werden, ob auch alles da ist, wo es hin soll(leicht erkennbar an dem crypto-Ordner mit dem Key für home).

Zusätzlich wird noch die /boot Partition benötigt

 mount /dev/sda1 /mnt/boot

Auch hier sollte kurz mit

 ls /mnt/boot

geprüft werden ob alles da ist.

Zum Schluss noch einige Systemordner mounten

 mount -o bind /dev /mnt/dev
 mount -o bind /proc /mnt/proc
 mount -o bind /sys /mnt/sys

Betreten und Kernel installieren

 chroot /mnt /bin/bash

und drin ist man.

Jetzt kann man, nach dem die Internetverbindung mit

 dhcpcd eth0

hergestellt wurde, versuchen den Kernel mit

 pacman -Sy kernel26

erneut zu installieren. Oder man nimmt den Vorgänger, der hoffentlich noch im Cache ist.

Im Normalfall findet man den alten Kern unter /var/cache/pacman/pkg und kann sich die unterschiedlichen Versionen mit

 ls /var/cache/pacman/pkg/kernel26*

anzeigen lassen und mit

 pacman -U /var/cache/pacman/pkg/kernel26-VERSION-i686.pkg.tar.gz

installieren.

Verlassen und Neustarten

Verlassen von Chroot

 exit

Alles mit umount freigeben

 umount /mnt/boot
 umount -l /mnt
 cryptsetup luksClose root

und dann mit

 init 6

neustarten.

Passwort ändern / hinzufügen

Es ist möglich nach einer Verschlüsselung sein Passwort zu ändern, oder auch mehrere zu benutzen(zB wenn man auf einem System mehrere Benutzer hat). Mit der Option "luksAddKey" sind so bis zu 8 PW möglich. Ganz hilfreich ist das Ganze, wenn man nach dieser Anleitung vorgegangen ist und /home per Keyfile verschlüsselt hat. Sollte einmal etwas schief gehen und der Keyfile in /crypto(auf sda3 also root) beschädigt werden, kann man /home immer noch mit einem PW mounten(wenn man denn zusätzlich ein PW vergeben hat). Andersherum kann natürlich auch ein Slot mal fehlerhaft sein und es kann dadurch einfach ein anderer zum entschlüsseln genutzt werden.


Die PW/Passwortfiles sind in sogenannten "Slots" untergebracht und mit

 cryptsetup luksAddKey /dev/sda3

wird ein neuer Slot auf /dev/sda3 erstellt. Nach eingabe des Befehls, fragt cryptsetup das aktuelle PW ab und danach kann man sein neues PW eingeben. Sollte ein Keyfile verwendet werden, wie hier im Wiki auf /dev/sda4, würde das so aussehen

 cryptsetup luksAddKey /dev/sda4 --key-file=/crypto/home.key

Wie man sieht muss man lediglich mit --key-file mitteilen wo der Key liegt.

Um zu Prüfen welcher und wieviele Slots belegt sind, ist luksDump sehr hilfreich

 cryptsetup luksDump /dev/sda3


Die Slots können mit

 cryptsetup luksDelKey /dev/sda3 1

gelöscht werden. Die letzte Zahl ist unser Passwortslot. Man sollte unbedingt darauf achten, mindestens einen Slot besetzt zu lassen. Kein PW ==> keine Entschlüsselung der Platte möglich.

Sollte man ein neues PW erstellen wollen, sollte man einfach ein PW in Slot 1 erstellen und anschließend Slot 0 entfernen.

Links mit weiteren Informationen

Linux Magazin