:Installation eines vollverschlüsselten Debian v4.0 „Etch“:

Oops! Diese Anleitung ist inzwischen sehr veraltet. Tja, so kann es gehen. :-) Ich werde sie beizeiten für neuere Debian-Versionen neu schreiben. Es macht daher keinen Sinn, die hier befindlichen Informationen anzupassen. Einige der hier genannten Links funktionieren inzwischen nicht mehr. Viel des hier gesagten sollte aber dennoch für neuere Debian-Versionen gelten!

Version 0.16 (2009.01.18)

Vorspeise

Ich beziehe mich bei dieser Installationsanleitung auf die Version Debian v4.0r2 „Etch“ – meine Hinweise sollten aber für spätere Versionen von Debian v4.0.x „Etch“[1] gelten. Zu Debian 5.0 „Lenny“[2] (testing) werde ich mich beizeiten äußern, da es meiner Erfahrung nach noch nicht für den Produktiveinsatz geeignet ist. Die Community hat den Installer aber so weit modifiziert und aktualisiert, daß separate Hinweise nötig sind.

Zunächst besorgt[3] ihr euch möglichst folgende Zutaten, da sie das Leben als zukünftiger Linux-System-Administrator beträchtlich erleichtern – je mehr ihr davon besitzet, desto mehr läßt sich an eurem System später ausrichten:

Ich favorisiere die klassische Methode „Ein Betriebssystem pro Festplatte“, da es sonst zu recht skurrilen „Schmutzeffekten“ kommen kann, wie beispielsweise nicht mehr bootfähige oder „verschwundene“ Zweitsysteme. Parallel-Installationen sind zwar möglich, allerdings kann ich diesbezüglich keinerlei verbindliche Hinweise geben. Ich vermute aber, dass aktuelle Installer zumindest die Standard-Szenarien korrekt erkennen und handhaben.
Auch bin ich kein Freund des Einsatzes des Logical Volume Managers (LVM)[31, 32, 33], da ich der Meinung bin, man sollte sich bereits im Vorfeld eine praxisgerechte Partitionierung überlegen. Vielleicht übertreibe ich mit der Befürchtung, die „Zwischenschicht“ LVM könnte zu weiteren Problemen führen. Unabhängig davon gelingt der Umzug auf eine größere Festplatte aber auch mit ein wenig Handarbeit ohne LVM. Doch dazu später mehr ...
Auch weiche ich von der immer wieder publizierten Unsitte ab, das /home-Verzeichnis des Hauptbenutzers auf eine eigenständige Partition zu legen. Da ich dringend empfehle, vom laufenden frisch installierten System eine Komplettsicherung in Form eines sog. Images zu erstellen, wäre eine Trennung von System und den vielen sich im /home-Verzeichnis befindenden Konfigurations-Dateien ungünstig, da sie somit nicht in der Sicherung mit enthalten wären und z.B. nach einem Systemupdate nicht mehr zum gesicherten System passen würden. Ich empfehle somit, System und Konfiguration auf die gleiche Partition zu legen und die Nutzerdaten auf einer separaten Partition mitsamt einem eigenen Einhängepunkt (z.B. /DATA) strikt vom System zu trennen.
Somit weicht meine Installationsanleitung also in einigen Punkten von den üblicherweise zu findenden Hinweisen ab.

Partitionierungs-Hinweise

Eure Festplatte sollte natürlich groß genug sein. Hier sind einige „unscharfe“ Ratschläge zu den Partitionsgrößen(e):

Das ergibt somit etwa folgende Partitionierung:

Debian Grundinstallation

Legt nun die erste DVD ins Laufwerk und bootet den Rechner neu. Evtl. müsst ihr zunächst ins BIOS[41] gehen (Meistens müsst ihr dazu die F2- oder Entf-Taste drücken – eine entsprechende Meldung erscheint kurz vor dem Start des Boot-Vorgangs. Bei Notebooks kann hier ein anderer Tastendruck nötig sein – entsprechende Hinweise findet ihr bei geschickter Suche möglicherweise im Internet, falls die Meldung nur so kurz erscheint, daß ihr sie nicht lesen könnt.) Beachtet auch, dass manche ältere Rechner nur vom ersten CD-Laufwerk booten können. Somit ist es hilfreich, den Brenner als Slave anzuschließen, damit ihr beim Betrieb des Rechners über eine LiveCD auch brennen könnt.

Nach kurzer Zeit erscheint der Bootprompt mit dem Debian-Logo. Ihr könnt dem System bereits an dieser Stelle wichtige Zusatzinformationen geben (sog. Cheatcodes, im Falle von Knoppix findet ihr eine Auflistung aller „Schummelwerte“ im Verzeichnis KNOPPIX auf der CD oder z.B. hier[42]), was z.B. bei störrischer Hardware hilfreich sein kann. Viele Details findet ihr beim Druck auf die Funktionstasten F1-F10. Weitere Informationen finden sich auch im Debian-Installationshandbuch[43].

Denkt bitte auch daran, sämtliche Nicht-USB-Peripheriegeräte einzuschalten, damit die Hardware-Erkennung sie finden kann.

Ein verschlüsseltes System lässt sich derzeit nur über den Text-Installer realisieren. Aber keine Angst: Der heutige Debian-Installer ist sehr komfortabel geworden und lässt sich von „Normalsterblichen“ bedienen – auch im Text-Modus!

Ich beschreibe hier den Weg um zur komfortablen KDE-Oberfläche zu gelangen.

Am Bootprompt gebt ihr folgendes ein: (Achtung: Lasst euch nicht durch die englische Tastenbelegung aufgrund des noch nicht geladenen Tastatur-Treibers für deutsche Sprachunterstützung irritieren. Nur Mut – ihr findet schon die richtigen Tasten heraus. :-) )

expert tasks="kde-desktop, standard"

Achtung: Die Leerstelle hinter dem Komma ist wichtig! Geht beim anschliessenden Bootvorgang etwas schief und ihr seht auf einmal nichts mehr, gebt zusätzlich nach den abschliessenden Anführungszeichen

fb=false video=vga16:off

ein. Lesenswert sind auch die Hinweise im offiziellen Installationshandbuch im Kapitel „Häufige Installationsprobleme unter Intel x86“ ab S. 48.

Wenn der Bootvorgang gelingt, landet ihr im Hauptmenü des Debian-Installers. Nacheinander werdet ihr nun durch die hier aufgelisteten Konfigurationsschritte geführt. Im Einzelnen:

Unter „Choose language“ wählt ihr die deutsche Sprache aus. Anschliessend bestätigt ihr, dass der Rechner in Deutschland steht. Nun gelangt ihr zum ersten „schwierigen“ Punkt, der Auswahl der richtigen Lokalisierungsparameter. Das bedarf einige Worte der Erläuterung. Bisherige Systeme (z.B. Windows) setzen seit einigen Jahren schon auf den Zeichensatz „de_DE@euro“, was bedeutet, dass die Sonderzeichen @ und € implementiert sind. Im Zuge der Internationalisierung geht man aber langsam zur sog. Unicode-Darstellung[44] über, welche zwar teils inkompatibel zu alten Zeichensätzen ist, dafür aber nahezu sämtliche Zeichensätze (kyrillisch, asiatische Sprachen, etc.) darstellbar macht. Somit lassen sich dann erstmals Sonderzeichen in Zeichennamen einsetzen (z.B. auch das Fragezeichen), was nach erfolgreicher Transformation der alten Dateinamensgebung (eine Anleitung dazu folgt weiter unten) recht praktisch ist, aber wiederum zu Problemen beim Brennen von CDs (selbst beim Einsatz der Joliet-Erweiterung[45](f)) oder dem Austausch mit anderen Datenträgern (z.B. USB-Sticks mit dem standardmässig eingesetzten FAT-Dateisystem[46, 47]) oder Systemen (Windows) führen kann. Je nach Einsatzzweck überwiegen aber die Vorteile, und ausserdem gibt es Lösungen für diese Problematik, die allerdings alles andere als trivial sind! So kann kann man z.B. die Daten auf dem Quellsystem in ein Archiv einpacken und auf dem Zielsystem wieder auspacken. Ohnehin ist das FAT-Dateisystem für heutige Verhältnisse dermaßen veraltet, dass es sich beim Datenaustausch zwischen Linux-Systemen ohnehin anbietet, den USB-Stick mit einem zeitgemäßen Dateisystem zu formatieren (z.B. ext3[48]), was auch noch andere Vorteile bietet (Zugriffsregelungen und Journalfunktion[49]).
Daten, die von Nicht-UTF-Systemen aufgespielt wurden, können beispielsweise mit dem Kommandozeilentool „convmv“[50, 51] konvertiert werden.
Vor dem Hintergrund, dass ihr euch nicht mehr von Herstellern schlechter Betriebssysteme knechten lassen wollt, wählt ihr sicher wie vorgegeben „de_DE.UTF-8“ aus, und seid bereit noch einige leichte Handarbeiten auf euch zu nehmen, um zur „wahren Internationalisierung“ zu gelangen. Den Zugriff auf die alten Zeichensätze „de_DE“ und „de_DE@euro“ wählt ihr im nachfolgenden Fenster jeweils mit der [LEERTASTE] aus. Weiter geht's mit [TAB] und [EINGABETASTE].
Anschliessend wählt ihr die Tastaturbelegung (Anschluss und Sprache) aus, das klappt aber in der Regel gut.
Im nächsten Schritt werden die CD-Laufwerke erkannt und eingebunden. Irritiert es euch vielleicht, dass der Installer euch das vorsetzt, obwohl er ja von dieser CD gebootet hat? Nun ja, das Einleiten des Bootvorgangs ist eine Sache des BIOS und hat streng genommen nur bedingt etwas mit der CD zu tun. Ausserdem geht es hier darum, die Laufwerke ihren Bezeichnern zuzuordnen, und entsprechende Treiber zu laden, damit beide anschliessend an das zu installierende System übergeben werden können. Ihr solltet auch wissen, das die beiden anderen Installations-DVDs später nach Fertigstellung der Grundinstallation ins System eingebunden werden.

Die anschliessende Abwahl nicht benötigter Kernel-Module solltet ihr lieber in der Standardeinstellung belassen oder nur im Problemfall und nach Lektüre entsprechender Fachinformationen ändern. Also [TAB], [EINGABETASTE] – und weiter geht's ...
Die anschliessenden PC-Card-Dienste[52] aktiviert ihr nur, wenn ihr entsprechende PCMCIA-Karten[53] habt.
Jetzt wird das Installations-Medium nach den darauf befindlichen Installationspaketen durchsucht. Das dauert einen Moment und das Ergebnis erscheint im nächsten Fenster.
Die gefundenen Installer-Komponenten werden im nächsten Schritt geladen.
Dann kommen wir zur Auswahl optionaler Komponenten, die gar nicht so optional sind. Wichtig von ihnen sind die „crypto-modules“, schaden können nicht „choose-mirror“ zur Spiegelserver-Auswahl[54] und „ipv6-modules“ für den überfälligen IPv4-IPv6-Transfer. Nach Bedarf implementiert ihr auch den NTFS-Support[55, 56], den ssh-Support[57, 58, 59] für sicheren Installer-Datenverkehr (Stichwort „man-in-the-middle-Attacke“[60]), die PPP-Unterstützung[61] oder eine rescue shell[62]. Was euch hier nicht klar ist, lasst ihr zunächst lieber weg.
Nun kommt die Erkennung der Netzwerk-Hardware dran und im Erfolgsfall anschliessend die Einrichtung. Beachtet dass moderne Motherboards oft eine eigene Netzwerk-Schnittstelle implementiert haben. Falls ihr eine separate Netzwerkkarte in eurem Rechner eingebaut habt oder der Router per USB an eurem Rechner hängt, achtet darauf, dass ihr nicht durcheinander kommt und versehentlich die falsche Schnittstelle auswählt.
Im nächsten Fenster konfiguriert euer Netzwerk. Normalerweise verwendet ihr die Standardeinstellung DHCP (Dynamic Host Configuration Protokoll)[63]. Sollten euch von eurem Administrator oder Provider andere Daten vorliegen, könnt ihr diese hier eingeben. Den Erfolg eurer Bemühungen seht ihr im nächsten Fenster.
Euer System muss einen Namen haben – den bekommt es im nächsten Schritt.
Der Domainname ist für Privatrechner irrelevant oder wird im Netzwerk vom Systemverwalter[64, 65] zugeteilt.
Falls ihr bei den optionalen Komponenten die Spiegelserver-Auswahl aktiviert habt, kommt sie nun dran. Das Protokoll des Datentransfers wählt ihr hier aus, es mag sein, dass an der anschliessenden Warnung etwas dran ist. Wählt nun Land und Ort des Spiegelservers aus. Die anschliessende Proxy-Konfiguration[66, 67] gebt ihr nur an, wenn es notwendig ist.
Jetzt wird's echt spannend, denn nun werden die Festplatte(n) erkannt und partitioniert. Volle Kontrolle habt ihr nur bei der manuellen Partitionierungsmethode. Ihr bekommt nun die Partitionen aufgelistet. Falls eure Festplatte nicht leer ist, verlasst das Partitionierungswerkzeug wieder und erledigen dies wie folgt: Drückt gleichzeitig [ALT] und die [Pfeil-nach-rechts]-Taste. Aktiviert die Konsole mit der [EINGABETASTE]-Taste. Mit fdisk -l könnt ihr euch die Partitionierung der Festplatte ansehen. Achtet darauf, wie die Platte heißt, also z.B. „/dev/hda“ oder „/dev/hde“. Mit dd if=/dev/zero of=/dev/hda bs=512 count=1 (oder /dev/hde statt /dev/hda) könnt ihr die Partitionstabelle[68] löschen.(g) Mit einem erneuten fdisk -l prüft ihr, ob die Platte wirklich „platt“ ist. Wechselt nun per [ALT] + [Links]-Taste zurück zum Installer. Öffnet nun erneut das Partionierungswerkzeug und wählt die gewünschte Festplatte aus. Lasst euch eine neue leere Partitionstabelle mit einer „msdos“-Signatur anlegen (Die Signatur hat nichts mit den Betriebssystemen auf der Festplatte zu tun!). Wählt den nun logischerweise freien Speicher aus. Nun beginnt ihr mit dem Erstellen der ersten Partition, ich schlage die SWAP-Partition mit 2 GB vor.

Achtung: Ich muss an dieser Stelle eine Warnung aussprechen: Der Installer hat in einem Fenster des Partitionierungswerkzeugs einen Fehler, der bewirkt, dass bei Drücken der [ESC]-Taste zum Verlassen von Unterpunkten statt dem Drücken des vorgesehenen „Zurück“-Buttons an einer bestimmten Stelle der Installer hängen bleibt, und ihr von vorne beginnen müsst! Also im eigenen Interesse daran denken, konsequent den „Vorwärts“-Button zu benutzen!

Die ausgewählte erste Partition soll primär sein und am Anfang der Platte liegen. Jetzt wird's verwirrend: Wenn ihr euer System verschlüsseln wollt, wird diese Partition eben nicht für „Benutzen als swapfile“ vorgesehen, denn auf einem verschlüsselten System muss konsequenterweise die Auslagerungsdatei ebenfalls verschlüsselt sein. Also wird sie als „physikalisches Volume für Verschlüsselung“ deklariert. Möchtet ihr doch den LVM einsetzen, wird die Verschlüsselungsdeklaration in einem weiteren Schritt konfiguriert. Ohne LVM wählt ihr also „physikalisches Volume für Verschlüsselung“ aus. Die vorgesehene Verschlüsselungsmethode belasst ihr auf „dm-crypt“. Auch Verschlüsselungsalgorithmus und Schlüssellänge sind mitsamt den anderen Option gut vorgegeben. Schon länger kursieren im Netz Hinweise auf die angebliche Unsicherheit des AES-Verschlüsselungsalgorithmus, die bis jetzt aber nie offiziell bestätigt wurden. Es ist somit davon auszugehen, daß die etablierten Verfahren bis zur Einführung funktionsfähiger Quantencomputer als unknackbar gelten dürfen (bzw. der dafür nötige Zeitaufwand in keinem gesunden Verhältnis zum Nutzen steht). Zweifelt ihr dennoch an der Sicherheit von AES, könnt ihr ruhig auch Blowfish auswählen, der aber nicht so performant ist. Verwendet bei der SWAP-Partition einen zufälligen Schlüssel statt einer Passphrase, damit diese dann bei jedem Bootvorgang mit einem neuen zufälligen Schlüssel überschrieben wird, was gegen unberechtigtes (oder erzwungenes) Auslesen hilft! Das Boot-Flag bleibt aus, die Daten müssen aufgrund der Neupartitionierung nicht unbedingt gelöscht werden, da die Partition ohnehin einen neuen Header verpasst bekommt. Ihr beendet nun das Anlegen der Partition.
Nun erstellt ihr im freien Speicher die Boot-Partition, 100 MB oder mehr groß, primär und am Anfang des freien Speichers. Da GRUB[69, 70, 71, 72] (noch?) nicht von verschlüsselten Partitionen booten kann, muss sie unverschlüsselt bleiben. Wählt als Dateisystem ext2[73] (d.h. ohne Journal) aus. Zur Info: Da sich die Boot-Partition nur bei einem Kernel-Update verändert, kann diese ruhig ohne Journal formatiert werden (also ext2). Dies setzt natürlich voraus, dass ihr direkt nach einem Kernel-Update ein neues Image dieser Partition erzeugt (auch um späteren Manipulationen unautorisierter Personen vorzubeugen!). Dank dieser Verfahrensweise braucht ihr nach einem Systemabsturz keinen Dateisystemcheck auf dieser Partition auszuführen. Als Einhänge-Punkt[74] wählt „/boot“ aus. Die Mount-Optionen belasst ihr unverändert, einen Namen gebt ihr der Partition nicht. 5% reservierte Blöcke belasst ihr auch.(h) Den Inode-Abstand[75] belasst ihr in der Standardeinstellung, das Boot-Flag[76] setzt ihr aber für diese Partition. Damit ist diese Partition auch schon fertig konfiguriert.
Nun legt ihr im freien Bereich die Root- oder System-Partition an. Ich schlage 8 GB als Richtwert für normale Desktop-Anwender (Spiele- oder Multimedia-Enthusiasten wählen entsprechend mehr aus), primär, am Anfang des freien Speichers vor. Benutzt wird diese Partition wiederum als „physikalisches Volume für Verschlüsselung“. Auch hier müssen die Daten nicht explizit gelöscht werden, die anderen Optionen sind optimal. Diesen Dialog bitte nun auch beenden.
Im folgenden Schritt wird im freien Bereich nun die Partition für die Systemsicherungen (also die Image-Partition) angelegt. Da es nur vier primäre Partitionen geben kann, und erweiterte Partitionen im Container der primären Partitionen angelegt werden, wird diese Partition nun als erweitert angelegt (weil ihr am Ende fünf Partitionen haben wollt), auch wieder am Anfang des freien Speichers. Da das laufende System diese Partition nicht sehen soll, bekommt sie keinen Einhänge-Punkt zugeordnet. Als Dateisystem eignet sich ext3 eher als FAT, da zum einen bei FAT-Dateisystemen die maximale Größe einzelner Dateien max. 2 GB betragen kann, was im Falle großer Images fehlschlagen kann. Zum anderen läßt sich FAT im Gegensatz zu ext3 nicht verschlüsseln, soweit ihr nicht TrueCrypt[77, 78] einsetzen wollt. Den restlichen Speicherplatz seht ihr vor für eure ebenfalls verschlüsselte Daten-Partition mit den nun bekannten Optionen.
Nun müsst ihr im oberen Punkt noch die verschlüsselten Datenträger konfigurieren, da sie ja noch kein Dateisystem bekommen haben. Zunächst wird die Partitionierung auf die Platte geschrieben, die Einrichtung der verschlüsselten Partitionen vorbereitet und die unverschlüsselten Partitionen werden formatiert (hier also die Boot-Partition). Zur Schlüssel-Generierung läuft nun der Zufallsgenerator an, den ihr durch irgendwelche Tastendrücke und/oder Mausbewegungen unterstützen könnt.
Nun gebt ihr die Passphrase der ersten verschlüsselten Partition ein, in unserem Beispiel ist dies die Systempartition (/dev/hda3). Bedenkt dass ihr aufgrund der ordentlichen Implementierung des kryptographischen Algorithmus im Falle des Schlüsselverlusts KEINE Chance mehr habt, an die Daten auf dieser Partition zu gelangen. Überlegt euch sich diese Passphrase also gut, entsprechende Warnungen und Hinweise gibt es im Netz zuhauf, so dass ich mir hier Details ersparen kann. Um Vertipper zu vermeiden wird die Passphrase durch doppelte Eingabe bestätigt. Um das Mitlesen des Passworts durch neugierige Personen mit einem Blick über die Schulter zu unterbinden, erscheinen nur Sterne in der Eingabezeile. Dies wiederholt sich nun für jede weitere verschlüsselte Partition.
Nachdem die verschlüsselten Partitionen vorbereitet sind, geht es nun darum sie zu konfigurieren und ihnen ein Dateisystem zuzuordnen. Ihr seht jetzt die Auflistung der Partitionen. Nacheinander wählt ihr im unteren Bereich die verschlüsselten noch unkonfigurierten Partitionen aus. Zunächst kommt die Systempartition dran, da die SWAP-Partition schon fertig ist. Sie bekommt nun ein ext3-Dateisystem, den Einhänge-Punkt „/“ und ist somit fertig konfiguriert. Die nächste Sicherungspartition bekommt ext3 ohne Einhänge-Punkt. Der letzten Datenpartition verpasst ihr ein ext3-Dateisystem und z.B. den Einhänge-Punkt „/DATA“. Damit könnt ihr die Partitionierung beenden und die Änderungen auf die Platte schreiben lassen. Vorher werdet ihr noch gewarnt, dass die Sicherungs-Partition keinen Einhänge-Punkt hat, aber das wolltet ihr ja so haben.
Jetzt ist die Festplatte endlich fertig.

Nun richtet ihr die Zeitzone ein, in Westeuropa ist das natürlich Berlin.
Die Systemzeit stellt ihr NICHT auf UTC[79], sonst weichen Hardware-Uhr und die Uhr des Betriebssystems voneinander ab.
Jetzt werden die Benutzer und die Passwörter eingerichtet.
Selbstverständlich benutzt ihr Shadow-Passwörter[80].
Auch root lasst wir rein.
Nun gebt das hochsichere! root-Passwort ein.
Richtigerweise solltet ihr nun einen Benutzer mit geringeren Rechten anlegen, was die sicherste Massnahme gegen System-Einbruch und Selbstzerstörung des Systems durch unbedarfte Nutzer darstellt.
Der Benutzer muss nicht unbedingt einen vollen Namen haben, denn der ließe sich nach Systemeinbruch in das Konto des angemeldeten Benutzers auslesen und könnte ausserdem in diversen Dateien stecken. Das passt nicht zu eurem Wunsch nach Anonymität. Aber das müsst ihr selbst entscheiden, möglicherweise gefällt euch dieses Feature. Kontoname und zweimalige Passworteingabe sind aber unverzichtbar.

Nun wird das Grundsystem installiert, es landen also die ersten Nutzdaten auf der Festplatte. Das dauert einige Minuten.
Anschliessend wählt ihr den Kernel passend zu eurer Architektur aus. (Die Erkennung sollte in der Regel klappen.)

Dann wählt das Werkzeug zur Erzeugung der Initial Ramdisk[81] aus. Weicht nur vom Standard ab, wenn es Probleme gibt oder ihr genau wisst, was ihr tut.
Nun wird der Paket-Manager[82] konfiguriert. Wählt einen passenden – d.h. möglichst raumnahen – Netz-Spiegel aus mitsamt dem passenden Protokoll. Anschliessend entscheidet, ob ihr auch „unfreie“ non-free-Pakete installieren wollt. Dann geht's zur Software-Auswahl. Möglicherweise wollt ihr an der anonymen Statistik der verwendeten Pakete teilnehmen.
Dann kommen die Sicherheitsaktualisierungen auf die Platte. Den Fortschritt könnt ihr sehen, in dem ihr mit [ALT] + [Links]-Taste zu den Systemmeldungen hinüber schaltet. Zurück zum Installer geht's mit [ALT] + [Rechts]-Taste.
Im nächsten Schritt wird der Bootloader installiert, üblicherweise wird GRUB verwendet, da er universeller als der ältere LiLo[83, 84, 85] ist und leichter zu administrieren ist. Ihr müsst euch nun entscheiden, wohin ihr ihn installieren wollt. Üblicherweise wird der Master Boot Record (MBR)[86], also die ersten 512 Byte der Festplatte, in denen sich auch die Partitionstabelle befindet, empfohlen. Ich halte dagegen, das der Einbau in die Boot-Partition es dahingehend angenehmer macht, dass er sich somit in dem später erstellten Image des Systems befindet. Ohnehin sollte der MBR sowieso gesichert sein, um einem überschreiben des MBR durch Schadprogramme, ominöse Betriebssysteme oder einem simplen Crash gelassen ins Auge zu sehen. Denn eure Sicherung des Systems nützt euch wenig, wenn die Partitionstabelle hinüber ist bzw. der MBR von einem Virus infiziert ist. Denn dann gibt es keine Partition mehr, wo ihr eure Sicherung hinschreiben könntet.(i) Entscheidet ihr euch hier für die Installation in die Partition, muss diese angegeben werden. GRUB benutzt standardmässig eine andere Semantik zur Kennzeichnung der Partitionen. Der Debian-Installer kann diese aber umsetzen, so dass hier (hd0,1) und /dev/hda2 beide die 2. Partition auf der ersten Festplatte meinen (GRUB fängt bei 0 an zu zählen!). Alternativ lässt er sich auch auf einer Diskette installieren (welche als „Killer-Feature“ einen Schreibschutzschieber besitzt!). Vorsicht ist anzuraten bei der Installation des Boot-Managers bei Systemen mit mehreren Distributionen! (Sowohl der MBR als auch die Bootmanager-Konfigurationsdateien sollten besser vorher gesichert werden.)
Um zu vermeiden, dass unautorisierte Personen den Rechner hochfahren, kann er neben dem evtl. leicht auszuhebelnden BIOS-Passwort zusätzlich durch ein Bootloader-Passwort geschützt werden. Es ist aber zu bedenken, dass das hierfür eingesetzte md5-Prüfsummenverfahren[87] längst nicht mehr als sicher gilt, und der Rechner ohnehin über einen externen Datenträger gestartet werden kann. Auch lässt sich die Konfiguration des unverschlüsselt vorliegenden Bootmanagers im Falle des Rechnerstarts über eine LiveCD ohnehin einsehen und manipulieren. Deshalb müsst ihr später auch die Boot-Partition sichern, um einer Manipulation der Startdateien vorzubeugen! Dennoch hält ein vergebenes Bootmanager-Passwort auf und verhindert zumindest beim regulären Start die Einsicht in die Bootkonfiguration und den unautorisierten Start einer Root-Shell[88] direkt vom installierten System aus. Aber versprecht euch nicht zu viel davon. Daher wird es wohl auch nur einmal bei der Einrichtung abgefragt!

Nun beendet ihr die Installation, das Installationsmedium wird ausgeworfen und der Rechner fährt hoffentlich erstmalig hoch.

Zunächst meldet sich der Bootloader. Soweit ihr keine Taste drückt startet das System mit dem Standard-Eintrag des Bootloaders nach der voreingestellten Wartezeit. Zunächst sind hier nur zwei Einträge zu sehen. Der (single-user mode) stellt grob gesprochen so etwas ähnliches wie der abgesicherte Modus unter Windows dar. Mit den [Hinauf]-/[Hinunter]-Tasten könnt ihr die Einträge auswählen, per [EINGABETASTE]-Taste bootet ihr mit dem gewählten Eintrag und mit der [E]-Taste könnt ihr temporär für diese eine Sitzung die Boot-Konfiguration editieren (z.B. um bei fehlerhaften Einträgen den Rechner trotzdem starten zu können; mit [ESC] kommt ihr jeweils wieder zurück). Falls ihr ein Bootloader-Passwort vergeben habt, müsst ihr [P] drücken und könnt nach der Passworteingabe den entsprechenden Eintrag via [E]-Taste editieren oder per [EINGABETASTE]-Taste booten. Wenn ihr mittels Passwort auch das Booten des Rechners beschränken wollt, müsst ihr dieses Feature von Hand nachrüsten. Auch finde ich es recht praktisch, wie auf vielen LiveCDs üblich, direkt einen Speichertest (MemTest86+)[89, 90, 91] mit einzubauen (Anleitung folgt weiter unten). Doch zunächst startet ihr den Rechner normal. Es rauschen die Meldungen durch, bis zur Eingabe des Verschlüsselungsmantras der Systempartition. Es kann sein, dass die Aufforderung zur Passwort-Eingabe aufgrund der Erkennungsmeldung erkannter SCSI-Geräte[92] (bzw. Kartenleser[93]) nach oben verschoben wird. Wenn der Rechner still zu stehen scheint, und bei Tastendruck nichts erscheint, ist wohl die Passworteingabe dran. (Evtl. ist sie auch an die Oberseite des Bildschirms gerutscht.) Gebt nun euer Passwort ein und drückt die [EINGABETASTE]-Taste. Dann sollte der Bootvorgang weiter laufen bis zur Passwort-Abfrage der Datenpartition. Das kann einen Moment dauern, da erst die SWAP-Partition initialisiert wird.
Dann kommt der Login-Prompt[94] und ihr könnt euch erstmalig an eurem System anmelden, bitte zunächst als root[95].

Herzlichen Glückwunsch!!!

Der Displaymanager[96, 97] startet und ihr landet im Anmeldedialog. Der Versuch, sich als root anzumelden schlägt fehl. Klickt unten auf „Menu“ und wählt „Console Login“ aus und meldet euch in der Konsole[98, 99] an. Anschließend korrigiert ihr dieses „Sicherheits-Feature“. Dazu installiert ihr zunächst den später noch oft benötigten Midnight-Commander[100, 101, 102] (ein funktions- und tastenkompatibler Klon des unter DOS[103] bekannten Norton Commander[104]) von der ersten Installations-DVD. Mittels apt-get install mc zaubert ihr ihn auf die Platte, gestartet wird er mit mc. Dort navigiert ihr zur Datei „/etc/kde3/kdm/kdmrc“. Öffnet die Datei mit [F4] und ändert dort den Eintrag „AllowRootLogin=false“ in „AllowRootLogin=true“. Speichert die Datei mit [F10] und verlasst den Midnight Commander ebenfalls mit [F10]. Für diejenigen, die öfters an Ihrem System „rumschrauben“ macht es aber eher Sinn, den Login direkt in der Konsole auszuführen. Dafür müsst ihr in den Verzeichnissen „/etc/rc2.d/“ und „/etc/rc3.d/“ die Dateien „S99kdm“ in „K99kdm“ umbenennen.(j) In der Konsole lässt sich dies mit cd /etc/rc2.d und anschliessendem mv S99kdm K99kdm bzw. cd /etc/rc3.d und anschliessendem mv S99kdm K99kdm bewerkstelligen.(k)

Mit folgendem apt-get update aktualisiert ihr die Paketliste. Mit apt-get upgrade bringt ihr das System auf den neusten Stand. Es empfiehlt sich ohnehin, System-Aktualisierungen stets im Textmodus auszuführen – auch aus diesem Grunde erfolgt der Hinweis an dieser Stelle. Durch den angegebenen Schritt weist ihr euer System an, zukünftig in die Konsole hochzufahren (= Runlevel 2)[105, 106]. Die grafische Oberfläche startet ihr durch den Befehl startx. Nach beenden der grafischen Oberfläche fahrt ihr den Computer (als root) per shutdown -h now herunter, neu starten könnt ihr ihn in der Standardkonfiguration entweder über shutdown -r now, reboot oder per Tastendruck [Strg] + [Alt] + [Entf]. Soll der s.g. „Affengriff“[107] standardmässig zum herunterfahren des Computers führen, ändert als Root in der Datei „/etc/inittab“ den Eintrag „ctrlaltdel:/sbin/shutdown -t1 -a -r now“ in „ctrlaltdel:/sbin/shutdown -t1 -a -h now“. Mittels apt-get clean putzt ihr die Installationspakete von der Platte.

Legt nun die 2. DVD ein, lasst durch apt-add cdrom die zweite Installations-DVD indexieren und wiederholt anschliessend den Vorgang mit der dritten DVD. Somit habt ihr den gesamten „offiziellen“ Debian-Pool ins System integriert.

Nun könnt ihr die grafische Oberfläche mit startx starten.

Nachdem ihr das KDE-Erscheinungsbild im Einrichtungsassistenten konfiguriert habt, erscheint die Arbeitsfläche.
Startet nun im Bereich Internet den Knetworkmanager[108] sowie den Browser[109] Iceweasel[110] und versucht dann eine Internetseite aufzurufen. Klappt das nicht, liegt das vielleicht daran, dass die falsche Netzwerkschnittstelle aktiviert ist, falls ihr mehrere habt (siehe oben). Per Rechtsklick auf das Symbol des Programms rechts unten in der Ecke könnt ihr die richtige Netzwerkschnittstelle auswählen. Klappt danach die Internetverbindung immer noch nicht, wird's komplizierter und ihr benötigt eine externe Anleitung.
Steht die Verbindung dürft ihr euch freuen und „tuned“ nun als nächsten Schritt die Konfiguration eures Bootmanagers. Sichert euch zunächst die automatisch generierte Konfigurationsdatei. Zur Anregung zeige ich hier meine „/boot/grub/menu.lst“:

default 0
timeout 0
password --md5 HierStehtIhrVerschluesseltesBootpasswort
lock

title Debian GNU/Linux, kernel 2.6.18-5-686
lock
root (hd0,1)
kernel /vmlinuz-2.6.18-5-686 root=/dev/mapper/hda3_crypt ro vga=normal noresume
initrd /initrd.img-2.6.18-5-686
savedefault

title MEMTEST - Memtest86+
lock
kernel (hd0,1)/boot/memtest.bin

Euch wird sicher auffallen, dass hier nun im Gegensatz zur ursprünglichen Version das Passwort des Bootmanagers verschlüsselt eingetragen ist. Zur Generierung eures eigenen Passworts startet GRUB in der Konsole mittels grub. Die Generierung erfolgt mit dem Befehl md5crypt. Gebt euer gewünschtes Passwort ein und tragt die ausgegebene Zeichenkette an die entsprechende Stelle in eurer „menu.lst“ ein. (GROSSklein-Schreibung beachten!)
Beachtet auch, dass ich den timeout und default-Bootwert ausgenullt habe. Der Eintrag „lock“ dort oben bewirkt, dass das Passwort zum Booten benötigt wird. Steht es nur unten bei den Einträgen wird es lediglich zum Verändern der vorgegeben Bootparameter benötigt, die sich mit Druck auf die Taste [E] (=editieren) für den aktuellen Bootvorgang bearbeiten lässt. Eingetragen an beiden Stellen bewirkt dies somit, dass man sowohl zum booten, als auch zum editieren der Bootparameter das Passwort benötigt. Es wäre sogar denkbar, zwei verschiedene Passwörter einzusetzen. (Dies ist besonders reizvoll für Paranoiker bzw. Systeme, bei denen sich der/die Benutzer und der Administrator nicht in die Quere kommen sollen.)
Von einer der oben genannten LiveCDs besorgt euch den „memtest.bin“ und kopiert ihn ins Verzeichnis „/boot“ auf eurer „/dev/hda2“.
Alle anderen Einträge habe ich gnadenlos hinausgeworfen, da ich bei Boot- bzw. System-Problemen grundsätzlich die Sicherung des Systems zurück spiele, statt meine Zeit mit mehr oder weniger sinnvollen Reparaturversuchen zu verschwenden.
Mit Eingabe von quit verlasst ihr die Grubshell wieder.
Ihr besitzt nun bereits einen großen Pool an installierbaren Paketen. Verwalten lässt sich dieser entweder in der Kommandozeile oder komfortabler mit div. Tools in der grafischen Oberfläche. Ich persönlich ziehe Synaptic[111, 112, 113] dem bereits vorhandenen Kpackage[114] vor. Installiert wird es – wie ihr sicher schon ahnt – per apt-get install synaptic. Wenn ihr euer System um neuere Komponenten oder auch für spezielle Bedürfnisse, z.B. im Multimedia-Bereich fit kriegen wollt, könnt ihr noch weitere Repositories[115] einbinden. Um die mit Debian[116, 117, 118] v4 „Etch“ eingeführte Signierung der Installationskandidaten auch hier nutzen zu können (um z.B. Schnüffel-Politiker daran zu hindern euch manipulierte Pakete unterzuschieben), befolgt bitte die entsprechenden Hinweise auf den jeweiligen Internet-Seiten zur Einbindung der Schlüssel ins System. Empfehlen möchte ich euch die Repositories „deb-multimedia“[119] und Debian Unofficial (Update: Dieses Repository wurde inzwischen eingestellt.) (Anleitung auf den Internetseiten im Bereich FAQ).
Installiert euch nun die gewünschten Pakete und Anwendungen, verlasst die grafische Oberfläche wieder und bringt euer System wie bereits bekannt auf Stand.

:Sicherung des Systems:

Nun wird es Zeit, erstmalig euer System zu sichern. Ich beschreibe hier stellvertretend die Verfahrensweise mit grml, mit anderen Live-CDs wie z.B. Mandriva One ab Version 2008.0 (Update: Die Distribution wurde inzwischen eingestellt.), Fedora live[120, 121] ab Version 9, neueren Knoppix-CDs oder sidux (Update: Das Projekt wird inzwischen durch aptosid[25, 26] fortgeführt.) geht dies ebenso (jeweils in der Root-Shell):

Legt eine der genannten CDs ins Laufwerk und startet den Rechner mit reboot neu. Wenn der Neustart ausgeführt ist, könnt ihr bei „grml“ per Taste [D] auf die deutsche Tastaturbelegung umschalten und per [Q] das Konfigurations-Skript beenden. Mit fdisk -l könnt ihr euch die Partitionen noch einmal anzeigen lassen.
„/dev/hda2“ ist eure Boot-Partition und „/dev/hda3“ die verschlüsselte Systempartition – beide wollt ihr sichern. Mountet zunächst die Sicherungspartition „/dev/hda5“ (Zielpartition), die zu sichernden Partitionen bleiben ausgehängt. Ist eure Sicherungs-Partition unverschlüsselt, reicht ein einfaches mount /dev/hda5. Ist sie verschlüsselt, wird zunächst der Container mit cryptsetup.luksOpen /dev/hda5 hda5 geöffnet und die Partition mit mount /dev/mapper/hda5 /mnt/hda5 eingehängt. Mitdenker werden bereits ahnen, dass „grml“ den Mountpunkt „/mnt/hda5“ beim Booten automatisch anlegt. Bei anderen LiveCDs muss er vor Einhängen der Partition manuell angelegt werden (mittels mkdir /mnt/hda5). Mit cd /mnt/hda5 begebt ihr euch nun in diese Partition hinein. Dann packt ihr die zu sichernde Partition wie folgt von dort aus ein:
Die unverschlüsselte Bootpartition „/dev/hda2“ könnt ihr mit dd if=/dev/hda2 | gzip -9 > hda2_01.gz in die Datei „hda2_01.gz schreiben“. Das geht recht flott und schrumpft die Sicherung nochmals auf 50% zusammen. Die verschlüsselte „/dev/hda3“ schließt ihr zunächst mit cryptsetup.luksOpen /dev/hda3 hda3 auf. (Dies hat den Vorteil, dass ihr nur die wirklich benutzen Sektoren sichert, anderenfalls würde die Sicherung auch die unbeschriebenen Sektoren beinhalten, was zu einem größeren Image und Zeitbedarf führen würde.) Ein anschließendes dd if=/dev/mapper/hda3 | gzip -9 > hda3_01.gz sichert diese Partition analog. (Spätere Sicherungen werden analog mit „hda3_02.gz“ usw. benannt.) Für Paranoiker lässt sich noch mittels md5sum hda2_01.gz > md5sum hda2_01.gz.md5 bzw. md5sum hda3_01.gz > md5sum hda3_01.gz.md5 eine Prüfsumme der Abbilddatei generieren (was Beschädigungen des Images z.B. durch Dateisystem-Probleme auf der Sicherungspartition aufdecken würde). Zurückgeschrieben wird per gunzip -c hda2_01.gz | of=/dev/hda2 bzw. gunzip -c hda3_01.gz | of=/dev/mapper/hda3.
Ist alles durchgelaufen, verlasst mit cd .. das Sicherungsverzeichnis und hängt die Sicherungs-Partition wieder aus: also umount /dev/mapper/hda5. Mit tune2fs -o journal_data /dev/mapper/hdaX stellt ihr pro Partition die Journale eurer Platte auf die höchste Sicherheitsstufe. Allerdings geht die Performance des Dateisystems runter auf die Hälfte, aber Sicherheit ist zumeist wohl wichtiger als Geschwindigkeit. Mit fsck.ext3 -adfvDC0 /dev/hdaX führt ihr einen Dateisystemcheck mit automatischer Reparatur pro Partition aus. Abschließend schließt ihr die Container wieder mit cryptsetup luksClose hdaX. (Bitte beachtet die extravagante Schreibweise bei „luksOpen“ und „luksClose“!)

Den MBR sichert ihr wie folgt: Steckt einen USB-Stick ein. Mit fdisk -l könnt ihr ihn sehen. Mit mount /dev/sda1 /mnt/sda1 (falls der Mount-Punkt automatisch angelegt wurde, sonst erstellt ihn nach der o.g. Anleitung manuell) hängt ihr ihn ein und mit cd /mnt/sda1 „betretet“ ihr ihn. Den MBR sichert ihr von dort aus mit dd if=/dev/hda of=hda.mbr bs=512 count=1(l). „Verlasst“ den USB-Stick wieder mit cd .. (Ein Gruß an die DOSianer: Die Leerstelle ist wichtig!) und hängt ihn mit umount /dev/sda1 aus. Zurück schreibt ihr den MBR vom eingehängten und „besuchten“ USB-Stick aus via dd if=hda.mbr of=/dev/hda (Die Blockgröße ergibt sich automatisch und muss daher nicht extra angegeben werden.)

Zur oben angesprochenen Problematik der Zeichenkodierung: Wenn euch auffallen sollte, dass nach dem Transfer der Daten vom alten System auf euer Neues die Umlaute in den Dateinamen zu unleserlichem Zeichensalat verunstaltet werden, könnt ihr dies mit dem Kommandozeilen-Tool „convmv“ korrigieren. (apt-get install convmv). Versucht folgendes: convmv -r -f iso8859-15 -t utf-8 '/Pad/zu/den/Daten'. Sieht die Ausgabe korrekt aus, könnt ihr mit der zusätzlich angegebenen Option --notest die Umbenennungen tatsächlich durchführen. Entgegengesetzt konvertieren könnt ihr natürlich per convmv (--notest) -r -f utf-8 -t iso8859-15 '/Pad/zu/den/Daten'. Aber seid gewarnt: Die Umstellung auf UTF-8[122] ist zwar einerseits ein konsequenter Schritt, kann aber auch zu unangenehmen Seiteneffekten führen. Außerdem erinnere ich daran, dass momentan (Stand: März 2008) die Implementation von UTF-8 noch nicht vollständig umgesetzt wurde. Dies soll aber mit Debian v5 „Lenny“[123] abgeschlossen sein. Hoffen wir mal das Beste ...

Bei den unterschiedlichen Distributionen bekommen die Benutzer verschiedene IDs[124], so dass die Zugriffsrechte u.U. nicht mehr stimmen. Dies könnt ihr mittels chown -R Name:Gruppe 'Pfad/zu/den/Daten' ändern.

Achtung: Trotz des hohen Niveaus bei Debian sind einige wenige Pakete fehlerhaft oder ganz einfach defekt. Bei mir jedenfalls kam es ein oder zweimal zu entsprechenden Warnungen, und noch schlimmer: die Installation des Paketes 'debsig-verify' brachte mein ganzes Paketmanagement durcheinander, was sich nach längerer Suche erst durch die Deinstallation dieses Paketes auflösen lies.

:Zusatzpakete:

Weitere Pakete die ihr immer wieder brauchen werdet, sind:

sudo (also apt-get install sudo) und ddrescue


:Fußnoten:

(a) Alternativ eignet sich jede Live-CD, die das Paket „cryptsetup“ mit an Board hat. Geeignet sind zum Beispiel die GParted-LiveCD oder auch SystemRescueCd. Auch können zunehmend diverse Live-CDs der großen Distributoren eingesetzt werden. Bitte schaut in die häufig online vorrätige Paketliste eures Lieblingsdistributors.

(b) Bitte besorgt euch von „grml“ die Version 1.1, da ab der folgenden Version 2008.11 nicht nur das Versions-Schema geändert, sondern aus lizenzrechtlichen Gründen auch TrueCrypt entfernt wurde. Achtung: Die CD hat einen kleinen Fehler: Wenn ihr den Rechner neustarten wollen, wird sie zunächst ausgeworfen. Vor dem anschließenden Neustart erfolgt aber nochmals ein CD-Zugriff, was zu einem Rattenschwanz an Fehlermeldungen führt und den Neustart ungünstigerweise verhindert. Schließt also bitte noch mal die Laufwerks-Schublade, bevor ihr den Rechner neu startet.

(c) Die „Nachwuchs-Paranoiker“ unter euch denken automatisch an die Möglichkeit, daß schlechte und infizierte Betriebssysteme beim herunterladen die Informationsmedien zumindest theoretisch manipulieren könnten, was auch beim Überprüfen mittels schwacher Hashes wie z.B. md5 unbemerkt bleiben könnte.

(d) Dies kann ich aus eigener Erfahrung bestätigen: Ich habe einmal über den Zeitraum von einer Woche meinen Rechner ohne Neustart mit der LiveCD Kanotix 2005-04 betrieben und dabei sämtliche im Internet anfallenden Arbeiten ohne ein einziges Problem durchgeführt! Lediglich beim Herunterfahren der LiveCD hing sich der Rechner auf, was wohl zu verschmerzen sein dürfte. :-)

(e) Ich rate zum Einhalten dieser Partitions-Reihenfolge, da so der Umzug ohne LVM mit relativ geringem Aufwand möglich ist.

(f) Es bietet sich die Option an, beim Brennen von CDs und DVDs die Joliet-Erweiterung durch Aktivierung der UDF-Strukturen auszuhebeln, was zwar den angenehmen Effekt hat, das die Probleme der beschränkten Dateinamenslänge, der GROSSklein-Problematik und der beschränkten Pfadtiefe gelöst sind, der Daten-Austausch mit kundenfeindlichen Betriebssystemen aber unmöglich ist. Welch ein Verlust ... ;-)

(g) Das bedeutet, dass ihr 512 Null-Bytes an den Anfang eurer Platte schreibt, so daß der dort befindliche Master-Boot-Record (MBR) mitsamt der dort befindlichen Partitionstabelle gelöscht wird.

(h) Das ist eine Sicherheits-Reserve die für normale Benutzer gesperrt ist, damit der Systemadministrator noch mit dem Computer arbeiten kann, selbst wenn der Benutzer allen Speicherplatz verbraucht hat.

(i) Dies bedeutet also, daß ihr euren MBR auf mindestens einem externen Datenträger sichert. „Berufs-Paranoiker“ signieren diese 512 Byte große Datei zusätzlich.

(j) Zur Erklärung: Hier wird festgelegt, welche Prozesse und Dienste in den jeweiligen Runleveln des Systems gestartet werden. Ein S (= Start) bedeutet, dass der Dienst gestartet wird, ein K (= Kill) bedeutet, dass er beendet wird.

(k) Zur komfortablen Konfiguration eures Systems via Browser eignet sich auch das distributionsübergreifende Tool Webmin[125].

(l) Der Befehl bewirkt, dass ihr einmal einen 512 Byte großen Block kopiert.

Status: oldstable