Gentoo Linux mit Festplattenverschlüsselung
Installation eines Grundsystems mit Festplattenverschlüsselung
Vorwort
Es ist sehr ärgerlich, wenn man einen Datenträger oder gar einen Laptop verliert oder dieser entwendet wurde. Fremde haben dann Daten von Ihnen, die sie unter Umständen gegen Sie einsetzen können. Zum Schutz der Daten gibt es viele Möglichkeiten, eine davon möchte ich gerne vorstellen.
Diese kleine Anleitung ist für etwas fortgeschrittene Linux-Einsteiger gedacht.
Kurz ein paar Worte zu Gentoo-Linux: Gentoo ist eine Meta-Distribution. Mit Gentoo kann man selbst entscheiden, was man an Programmen braucht, und diese speziell angepasst an seinen Prozessor aus dem QuellCode generieren. Der Nachteil ist, dass es nicht so schnell wie bei anderen Distributionen geht, die man per Installer in kurzer Zeit installieren kann. Die Geschwindigkeit ist etwas schlechter als auf unverschlüsselten Datenträgern. Somit ist »mal kurz ausprobieren« leider nicht möglich, man muss schon etwas Zeit mitbringen.
Der Ausgangszustand ist ein Laptop mit mindestenes 20 GB Festplatte, Ethernetkarte und einem USB-Stick (besser zwei zur Sicherheit). Auf dem USB-Stick befindet sich eine sogenannte Key-Datei. Diese enthält ein Passwort. Nur wenn der Stick beim Starten im Laptop steckt, kann das Gentoo-Linux starten. Eine Internetverbindung, möglichst über einen Router mit DHCP, ist notwendig.
In dieser Anleitung gehen wir davon aus, dass die Festplatte /dev/sda und der USB-Stick /dev/sdb1 entspricht.
Zuerst muss man sich informieren, was für einen Prozessor man hat. Wenn man schon ein Linux laufen hat, geht das am einfachsten mit cat /proc/cpuinfo. In der Zeile »model name« findet man den Prozessor-Hersteller und Typ.
In der weiteren Beschreibung gehe ich von einem Intel Core-2-Prozessor aus und verwende eine 64-Bit-Linuxversion. Das System wird auf /dev/sda installiert.
Herunterladen der Minimal-Live-CD
Die Veröffentlichungs-Seite von Gentoo verweist auf Download-Möglichkeiten. Ich verwende gerne die Versionen aus den Autobuild-Verzeichnissen, die sind am aktuellsten. Beispielsweise ein Mirror der Uni Erlangen. Diese ISO-Datei brennt man auf CD, beispielsweise mit
cdrecord -v -eject speed=4 install-amd64-minimal-20090326.iso
Die fertige CD in den PC einlegen und im BIOS einstellen, dass von CD gebootet wird. Am Bootprompt wählt man eine passende Tastatur, z.B. de für Deutsch. Danach verschaffen wir uns eine Übersicht, welche Festplatten wir haben.
Mit dem Kommando fdisk -l sehen wir Festplatten, den USB-Stick usw. und auch die Größe der Datenträger.
Anlegen der Partitonen auf der Festplatte
Wir wollen folgende Partitionen anlegen: /dev/sda1 (Bootpartition mit 100 MB Größe, /dev/sda2 (Swap, Größe = 1,5 * RAM), /dev/sda3 (erweiterte Partition) und /dev/sda5 (Root-Partition mit dem restlichen freien Platz). Wir rufen fdisk /dev/sda auf.
Command action
e extended
p primary partition (1-4)
Auswahl: p
Partition number (1-4): 1
First cylinder (1-1044, default 1): <ENTER>
Last cylinder, +cylinders or +size{K,M,G} (1-1044, default 1044): +100M
Command (m for help): n
Command action
e extended
p primary partition (1-4)
Auswahl: p
Partition number (1-4): 2
First cylinder (15-1044, default 15): <ENTER>
Last cylinder, +cylinders or +size{K,M,G} (15-xxxx, default xxxx): +1536M
Command (m for help): n
Command action
e extended
p primary partition (1-4)
Auswahl: e
Partition number (1-4): 3
First cylinder (x-xxxx, default x): <ENTER>
Last cylinder, +cylinders or +size{K,M,G} (x-xxxx, default xxxx): <ENTER>
Command (m for help): n
Command action
l logical (5 or over)
p primary partition (1-4)
Auswahl:l
First cylinder (x-xxxx, default x): <ENTER>
Last cylinder, +cylinders or +size{K,M,G} (x-xxxx, default xxxx): <ENTER>
Command (m for help): p
Device Boot Start End Blocks Id System
/dev/sda1 1 13 104391 83 Linux
/dev/sda2 14 138 1004062+ 82 Linux swap / Solaris
/dev/sda3 139 1044 7277445 5 Extended
/dev/sda5 139 1044 7277413+ 83 Linux
Speichern mit w nicht vergessen!
Wer lieber mit LVM arbeiten will, sollte sich die Infos zu LVM2 anschauen. Auch initramfs muss dann angepasst und erweitert werden.
Mounten des USB-Sticks und Erzeugen der Schlüsseldatei
mkdir /mnt/usb mount /dev/sdb1 /mnt/usb head -c 4096 /dev/urandom > /mnt/usb/image88.jpg
Der Name der Schlüsseldatei kann auch anders gewählt werden, auch die Dateiendung ist beliebig wählbar.
Verschlüsseln der Root-Partition
cryptsetup -c aes-lrw-benbi:sha512 -s 384 luksFormat /dev/sda5 /mnt/usb/image88.jpg
Dazu ist zu sagen, dass der Verschlüsselungs-Algorithmus auch anders gewählt werden kann.
Entschlüsseln der Root-Partition
cryptsetup -c aes-lrw-benbi:sha512 -s 384 luksOpen /dev/sda5 rootfs -d /mnt/usb/image88.jpg
Erzeugen der Dateisysteme auf den Partitionen
mkfs.ext3 /dev/sda1 mkfs.ext3 /dev/mapper/rootfs
Hier ist zu beachten, dass nicht direkt die Partition /dev/sda5 angesprochen wird, sondern mittels Device-Mapper das Gerät /dev/mapper/rootfs erzeugt wurde.
Mounten der Dateisysteme
mount /dev/mapper/rootfs /mnt/gentoo mkdir /mnt/gentoo/boot mount /dev/sda1 /mnt/gentoo/boot
Download der Dateien
cd /mnt/gentoo links www.gentoo.org/main/en/mirrors.xml
oder, wenn Sie einen Proxy haben
links -http-proxy <ip-adresse>:<Port> www.gentoo.org/main/en/mirrors.xml
Dort wählen Sie dann einen Mirror in Ihrer Nähe und laden zwei Dateien herunter: stage3-xxxx.bz2 und portage-latest.tar.bz2. Diese finden Sie z.B. unter
releases/amd64/autobuilds/20090326/stage3-amd64-20090326.tar.bz2 snapshots -> portage-latest.tar.bz2
Entpacken der Dateien:

