Installation eines Computers mit verschlüsselter Festplatte
Ziel dieser Anleitung ist es einen Computer einzurichten, der für alle üblichen Arbeiten geeignet ist und einen sicheren Schutz der darauf gespeicherten Informationen im Falle eines Verlusts (Diebstahl, Beschlagnahme usw.) bietet. Anders als bei anderen Lösungen sollen keine Programme den ungenutzten Speicherbereich der Festplatte von übrig gebliebenen Datenspuren und Temporärdateien befreien und wichtige Daten in verschlüsselten Datencontainern (wie bei PGP-Disk oder TrueCrypt) gespeichert werden. Diese Verfahren sind problematisch, weil bei der Komplexität aktueller Software und Betriebssysteme nur schwer einschätzbar ist, ob tatsächlich alle wichtigen Informationen verschlüsselt oder gelöscht sind. Deswegen ist bei dem hier vorgestellten Konzept eine vollständige Verschlüsselung aller Userdaten, inkl. Browsercache, Dokumente, in Anwendungsprogrammen gespeicherte Zugangsdaten und natürlich aller Temporärdateien vorgesehen. Weil konsequent alle möglicherweise kompromittierenden Informationen verschlüsselt sind, muss kein freier Speicherplatz gewiped werden. Durch die Integration in das Betriebssystem muss nichts mehr manuell ver- oder entschlüsselt werden und die Verschlüsselung läuft transparent im Hintergrund ab, ohne bei der Arbeit am Computer aufzufallen. Selbstverständlich verlangsamt die Verschlüsselung den Computer, aber selbst ältere Computer haben genug Leistungsreserven, dass die Verschlüsselung das System nicht merkbar ausbremst. Ab etwa 1GHz Prozessortakt wird man bei der täglichen Arbeit nichts davon merken. Ab etwa 500MHz Prozessortakt kann man sinnvoll damit arbeiten, auch wenn man da die Verschlüsselung durchaus an einer Verlangsamung des Gesamtsystems merkt.
Grundlage unseres verschlüsselten Computers ist die Linux-Distribution Ubuntu. Ubuntu ist eine frei im Internet downloadbare und sehr einfach zu installierende Distribution mit sehr guter Hardwareerkennung und einem sinnvoll vorkonfiguriertem Grundsystem. Es werden von Haus aus Gnome und KDE unterstützt, bei Ubuntu ist als Standard der Gnome Desktop installiert, in der Kubuntu-Variante ist es KDE. Das jeweils andere System lässt sich natürlich nachträglich installieren und beides nebeneinander benutzen. Welchen der beiden Desktops man bevorzugt, ist Geschmackssache, ich persönlich bevorzuge KDE. Auf die Installationsanleitung hat das erst mal keinen Einfluss, egal ob man Ubuntu mit Gnome oder Kubuntu mit KDE nimmt, alle Einstellungen werden auf exakt die gleiche Art und Weise vorgenommen. Ubuntu und auch Kubuntu gibt es auch als optimierte Variante für die 64bit-Prozessoren von AMD und die in älteren Apple-Computern eingesetzten PowerPC-Prozessoren. Wer keinen solchen Prozessor in seinem Computer hat oder sich nicht sicher ist, sollte die i386- Version (manchmal auch als x86 bezeichnet) nehmen, die 64bit-Prozessoren von AMD wie auch Intel laufen damit sehr gut. Mitunter gibt es auch Hardware, für die es zur Zeit nur 32bit-Treiber gibt, also auch aus dem Grund kann es sinnvoll sein zur i386-Variante zu greifen. Nur wer einen PowerPC sein Eigen nennt, sollte das wissen und in der Regel wissen die Leute das auch, wenn sie sowas haben. Ein Nachteil hat Ubuntu (wie auch Kubuntu, die ich ab sofort der Einfachheit halber beide mit dem Namen Ubuntu bezeichnen werde, gemeint sind immer beide), es benötigt bei der Installation einen Internetzugang, weil es Dateien aus dem Internet nachläd, zum Beispiel wenn man eine andere Sprache als Englisch wählt. Bei der Installation stehen verschiedene Zugangsmöglichkeiten zum Internet zur Auswahl, darauf möchte ich an dieser Stelle auch nicht eingehen, sondern auf die Installationsanleitung von Ubuntu verweisen.
Der erste Schritt der Installation ist deshalb sehr schnell erklärt: Ubuntu wird auf dem Rechner installiert. Bis auf die Partitionierung der Festplatte(n) ist es eine ganz normale Standardinstallation und kann nach einer der vielen Installationsanleitungen abgearbeitet werden, die man im Internet und auf der Ubuntu-CD findet. Die Installation ist aber so einfach, dass sie an sich selbsterklärend ist und man nur dem Installationsprogramm von Ubuntu folgen muss, um es auf seiner Platte zu installieren. Erst wenn man an den Punkt mit der Partitionierung der Festplatte kommt, muss man den Standardweg kurz verlassen, aber darauf gehe ich weiter unten ein. Bevor man die Installation startet, sollte man sich überlegen, ob man Ubuntu als einziges Betriebssystem haben möchte oder ob man es neben Windows installiert. Möchte man Windows behalten, installiert Ubuntu ein Bootmenü, mitwelchem man beim Systemstart auswählen kann, ob man mit Windows oder Linux arbeiten möchte. Der Sicherheit der hier beschriebenen Linux-Installation ist es egal, ob da noch ein Windows auf der Festplatte ist oder nicht. Aber da es so gut wie nichts mehr gibt, wofür man Windows wirklich braucht, kann man meines Erachtens auch auf das Windows verzichten und die ganze Platte für Linux benutzen. Weil ich Windows nicht leiden kann und es für ein Stück kaputte Software halte, gehe ich in dieser Anleitung davon aus, dass Ubuntu das einzige Betriebssystem auf der Festplatte ist. Sollte jemand sein Windows behalten wollen, dann muss dafür eine entsprechende Partition vorgesehen werden, am besten ganz am Anfang der Festplatte. Ubuntu erkennt bei der Installation selbstständig, ob da noch ein Windows installiert ist und richtet auch den Bootmanager automatisch ein. Es ist lediglich darauf zu achten, dass dann die Bezeichnungen der Partitionen anders sind, ansonsten unterscheidet sich die Installation nicht vom hier beschriebenen System ohne Windows. Es ist auch ratsam Windows zuerst zu installieren, weil das in seiner göttliches Selbstsicherheit davon ausgeht das einzige Betriebssystem auf der Welt zu sein und deswegen alle Bootmanager überschreibt. Installiert man Windows nach dem Linux kann es sein, dass man das Linux danach nicht mehr booten kann und es entweder neu installieren oder viel Handarbeit investieren muss.
Hat man bei der Ubuntu-Installation den Punkt mit der Festplattenpartitionierung erreicht, wählt man die manuelle Partitionierung aus. Die Vorgabe, die Ubuntu automatisch wählen würde, wäre nachträglich nur sehr umständlich und mit viel Handarbeit zu verschlüsseln, deswegen ist es besser hier an dem Punkt die entsprechenden Vorbereitungen zu treffen und sich die Handarbeit später zu sparen. Die nachfolgenden Größenangaben der einzelnen Partitionen sind Erfahrungswerte und sollten für die meisten Leute sinnvoll sein, bei wem das nicht so ist, der weiss das im Allgemeinen. Alle anderen können getrost die vorgegebenen Werte übernehmen. Um Betriebssystem, veränderliche Daten und Userdaten voneinander zu trennen, legen wir jetzt folgende Partitionen an:
1. Partition
Größe: 3.5-5GB Formatierung: ext3 Mountpoint (Einhängepunkt): / (Rootpartition).
Auf dieser Partition wird später das Betriebssystem liegen. Da das nichts geheimes ist und bis auf Softwareupdates da auch nichts verändert wird oder Userdaten gespeichert werden, kann das unverschlüsselt bleiben. Es wäre grundsätzlich auch möglich das zu verschlüsseln, das würde aber das ganze System wesentlich komplexer machen und keinen wirklichen Zuwachs an Sicherheit bringen. Eigentlich reichen 3.5GB auch für umfangreichere Installationen völlig aus, aber wer meint viel installieren zu wollen, kann das auch größer anlegen. Mehr als 5GB sind allerdings höchst selten sinnvoll.
2. Partition
Größe: 256-512MB Formatierung: swap (Auslagerung)
Die Wahl der Größe der Auslagerungspartition ist im wesentlichen abhängig von der Größe des Arbeitsspeichers. In der Regel sagt man Auslagerungspartition und Arbeitsspeicher sollten in etwa gleich groß sein, aber alles über 512MB wird eigentlich nie benutzt, weshalb ich das für Platzverschwendung halte. Mit ausreichend Arbeitsspeicher kann man auch auf die Auslagerungspartition verzichten, ich rate trotzdem dazu, sie auch bei größeren Arbeitsspeicher als 512MB anzulegen. Ein eventuelles Meckern des Ubunut-Installationsprogramms über fehlende oder zu kleine Auslagerungspartition kann man ignorieren, ausser man hat eine angelegt und der meint plötzlich, die wäre nicht da. In dem Fall muss man das überprüfen.
3. Partition
Größe: ca. 1GB Formatierung: ext3 Mountpoint (Einhängepunkt): /tmp
In dem Verzeichnis /tmp legt das Betriebssystem und Anwendungsprogramme alle Temporärdateien ab, weshalb dieses Verzeichnis unbedingt geschützt werden muss. Um das getrennt verschlüsseln zu können, brauchen wir diese Partition. Die Größe ist eine Glaubensfrage, meist reicht schon sehr viel weniger aus, aber mit 1GB ist man auf der sicheren Seite und bei heutigen Festplatten ist 1GB ja auch kein Problem mehr.
4. Partition
Größe: alles was noch da ist Formatierung: ext3
Die 4. Partition ist für die Userdaten und wird jetzt noch nicht benutzt, also auch noch nicht nach /home gemountet, sonst sind die vom Betriebssystem angelegten Sachen in den Home-Verzeichnis des Users pfutsch, wenn man diese Partition später verschlüsselt. Dem Installationsprogramm muss an dieser Stelle gesagt werden, dass die Partition jetzt noch nicht benutzt werden soll. Als Größe ist alles drin, was an Festplatte noch übrig ist, mindestens aber ein paar hundert MB. Sollte man nur eine kleine Festplatte haben (<5GB), ist eine Verschlüsselung wie hier gezeigt nicht wirklich sinnvoll. Da würde ich dann dazu raten sich eine neue Platte zu kaufen oder sich irgendwo was gebraucht zu besorgen. Festplatten mit 20GB liegen bei vielen Leuten in den Ramschkisten oder sind für wenige Euro bei Ebay zu bekommen. Die maximale Größe liegt zur Zeit bei ein paar Terrabyte und ist unter realen Umständen noch nicht erreichbar, man muss sich also keine Gedanken machen, dass es eventuell zu groß sein könnte. Sollten Festplatten für Heimanwender mal in dem Bereich angekommen sein, was sicher noch ein paar Jahre dauert, dann ist auch die Software in der Lage, damit umzugehen. Noch eine kleine Anmerkung an dieser Stelle, schreibt euch auf wie diese Partition heisst, das wird später wichtig sein.
Hat man die Partitionierung abgeschlossen, fragt das Installationsprogramm im nächsten Schritt, welche der angelegten Partitionen wo gemountet werden sollen, also an welchem Punkt im Dateisystem er die verwenden soll. Noch ein Hinweis zu den Labels der Partitionen, die müssen nicht unbedingt gesetzt werden, aber es macht sich nicht schlecht das zu tun, ist unter Umständen übersichtlicher. Das Label ist sozusagen der Name der Partition, was aber nichts mit dem Mountpoint zu tun haben muss. Sonderzeichen und Umlaute sollte man vermeiden, ansonsten ist das mehr oder weniger frei gestaltbar. Wer sich unsicher ist, lässt sie einfach frei. Ab dem Punkt läuft die Installation von Ubuntu ganz normal weiter.
Ist die Installation abgeschlossen hat man ein voll arbeitsfähiges System vor sich, wo allerdings noch nichts verschlüsselt ist und man deswegen mit dem Ding auch noch nichts tun sollte, also keine Tests wie mal schnell EMails lesen oder ähnliches. Die Daten landen sonst unter Umständen unverschlüsselt auf der Festplatte, egal ob als Temporärdateien oder als Datei. In beiden Fällen bedeutet es, dass man dort Sachen stehen hat, die man nicht mehr so leicht loswird. Die gängige Methode des Wipen, also die Dateien mehrfach zu löschen und zu überschreiben, funktioniert auf journalisierenden Dateisystemen wie sie bei Linux und auch Windows inzwischen Standard sind, nicht mehr zuverlässig. Es besteht die Gefahr, dass Reste zurückbleiben. Der einzig wirklich sinnvolle Umgang mit sensiblen Daten besteht darin sie zu verschlüsseln und genau das machen wir im nächsten Schritt. Ubuntu hat die Verschlüsselung im Betriebssystem vorgesehen und es braucht nur wenige Änderungen um sie zu aktivieren. Leider gibts dafür keine grafische Benutzeroberfläche, aber wie man gleich sehen wird, ist das trotzdem ganz einfach. Es müssen nur zwei Textdateien geändert und ein Programm heruntergeladen werden, das ist alles. Das erkläre ich nun Schritt für Schritt.
Als erstes öffnen wir eine Konsole, auch Terminalprogramm oder Shell genannt. Das ist im Programmmenü unter dem Punkt System zu finden. Ich werde ab sofort nur noch den Begriff Shell benutzen, weil er der kürzeste ist. Die Shell ist ein sehr mächtiges Werkzeug, welches viele User abschreckt, was aber völlig unbegründet ist. Eigentlich ist es sogar einfacher als mit der Maus, vorausgesetzt man kann sich ein paar Befehle merken, was übrigens gar nicht so viele sind. Aber hier muss sich niemand etwas merken, sondern einfach nur eingeben, was ich hier erkläre, also keine Angst.
Ubuntu kennt keinen Root-Account mehr, bzw. wurde dieser deaktiviert, was ein Sicherheitsfeature ist, weil dadurch User nicht als Administrator auf dem Rechner arbeiten können. Jetzt brauchen wir aber Administratorrechte und die besorgen wir uns mit folgendem Befehl:
sudo su
Nach Eingabe seines Passworts ist man Admin, bzw. Root. Jetzt können wir anfangen das System zu verändern. Da nicht alle Software auf der Installations-CD oder den Statdardrepositories der Distribution sind, muss das erweitert werden. Wer schon die andere Anleitung durchgenommen hat und die Multimedia- und andere Software installiert hat, kann diesen Punkt überspringen und gleich an dem Punkt weitermachen, wo die Verschlüsselungssoftware heruntergeladen wird. Ubuntu und auch Kubuntu haben eine Liste mit Programmquellen, von wo aus Software aus dem Internet heruntergeladen werden kann. Im Auslieferungszustand kennt Ubuntu nur freie Software, wie oben beschrieben. Es gibt zwei Möglichkeiten die Liste mit den Programmen zu ändern, man sucht sich die entsprechenden Paketquellen im Internet zusammen und schreibt sie in die Liste oder man ersetzt die vorinstallierte Liste durch meine, weil ich habe mir die Arbeit schon einmal gemacht. Wir nehmen den einfachen Weg und ersetzen einfach die Liste. Aber zuerst machen wir ein Backup der originalen Liste, für den Fall, dass es ein Problem gibt. Der Befehl dazu lautet
mv /etc/apt/sources.list /etc/apt/sources.list.backup
Mit dem Befehl
wget http://users.blacksec.org/~alex/sources.list
läd man die Liste herunter, die ich zusammengestellt habe und die neben den Standardquellen auch die Quellen für unfreie Software enthält. Der Befehl
mv sources.list /etc/apt/sources.list
installiert die Liste auf dem System. Jetzt müssen die Änderungen in der Liste nur noch dem System mitgeteilt werden
apt-get update
Sollte eine Unstimmigkeit in den Paketquellen gemeldet werden, startet man diesen Befehl einfach noch einmal. Auch später lässt sich die Paketliste des Systems mit diesem Befehl updaten. Es kann natürlich auch das grafische Tool dafür benutzt werden.
Das System gleich auf den neuesten Stand zu bringen und alle Updates einzuspielen, ist sicher auch eine gute Idee, bevor man neue Software installiert. Je nachdem ob das schon mal gemacht wurde, wie viele Updates es inzwischen gibt und wie schnell die Verbindung zum Internet ist, kann das eine Weile dauern. Das Update erfolgt bis auf die Bestätigung ob man es wirklich machen möchte ohne Zutun des Users. Nachdem man folgenden Befehl gestartet hat, startet das Update.
apt-get upgrade
Jetzt wo das System soweit ist, kann es an das Installieren der Software gehen. Etwas grundsätzliches zuerst. Wenn eine Software installiert wird kommt es vor, dass diese Software ihrerseits andere Programme benötigt um richtig zu funktionieren. Diese Abhängigkeiten werden bei der Installation automatisch erkannt, aber der User wird vor der Installation noch einmal gefragt, ob das so in Ordnung ist. Im Allgemeinen kann man das immer mit Ja beantworten, insbesondere bei den Installationen aus dieser Anleitung. An einigen Stellen wird auch zur Bestätigung von Lizenzbedingungen und ähnlichen aufgefordert. Als nächstes laden wir die benötigte Software für die Verschlüsselung herunter, der Computer muss dazu natürlich mit dem Internet verbunden sein. Ich verweise dazu nochmal auf die Installationsanleitungen von Ubuntu, dort steht beschrieben wie das geht. Ist man im Internet, gibt man folgenden Befehl in die Shell ein:
apt-get install cryptsetup
Der Rechner zeigt jetzt an wie das Programm heruntergeladen und installiert wird. Das erfolgt alles automatisch und ohne Zutun des Users. Ist das Programm installiert, kommen wir zum nächsten Punkt, der crypttab. Das ist eine kleine Textdatei, in der steht welche Partition wie verschlüsselt werden soll. Hier muss man das erste Mal denken, weil die Bezeichnung der Partitionen davon abhängt, wie die Festplatte partitioniert wurde und ob Ubuntu neben Linux oder alleine installiert wurde. Ein guter Plan ist es sich das vor (!) dem Ändern der crypttab noch einmal anzusehen um ganz sicher zu sein. Deswegen schauen wir noch einmal die Datei /etc/fstab an, wo drinsteht welche Partition an welchem Punkt im Dateisystem gemountet ist und notieren das am besten irgendwo. Anzeigen lässt man sich die Datei mit folgendem Befehl:
less /etc/fstab
Bei mir kommt dann folgende Ausgabe:
# /etc/fstab: static file system information. # # proc /proc proc defaults 0 0 /dev/hda1 / ext3 defaults,errors=remount-ro 0 1 /dev/hda3 /tmp ext3 defaults 0 2 /dev/hda2 none swap sw 0 0 /dev/hdd /media/cdrom0 udf,iso9660 user,noauto 0 0
Das sieht vielleicht etwas wirr aus, ist es aber nicht. In der ersten Spalte wird die Partition angegeben, /dev/hda1 steht für die erste Partition auf der ersten Festplatte des Systems, /dev/hdb1 wäre die erste Partition auf der zweiten Festplatte und /dev/hda2 steht für die zweite Partition auf der ersten Festplatte. Das Prinzip der Benennung ist also ganz einfach, zuerst kommt die Festplatte, welche mit den Buchstaben a-z durchnummeriert werden, und dann die Partition, welche mit den Zahlen 1-8 durchnummeriert werden. Genaugenommen ist das Verständnis für diese Nummerierung aber egal, so lange genau die richtigen Partitionen abgeschrieben werden. Weil nur die Auslagerungspartition, die /tmp-Partition und natürlich die Partition für die Userdaten, die hier nicht aufgelistet ist, aber deren Bezeichnung wir uns ja schon notiert hatten, verschlüsselt werden, steht auf meiner Liste jetzt folgendes:
/dev/hda2 swap (Auslagerungspartition) /dev/hda3 /tmp (Verzeichnis für die Temporärdateien /dev/hda4 /home (Verzeichnis für die Userdaten)
Der Computer muss irgendwie mitgeteilt bekommen, genau diese Partitionen zu verschlüsseln. Das funktioniert indem wir die Partitionen in das Textfile /etc/crypttab eintragen, wie weiter oben schon angedeutet. Dazu öffnen wir es mit einem Texteditor. Grundsätzlich funktioniert das mit jedem Texteditor, aber weil an dieser Stelle nicht klar ist ob ihr das unter Gnome (Ubuntu) oder KDE (Kubuntu) macht und ich nicht wissen kann, auf welchen Editor ihr gerade Zugriff habt, nehmen wir soch einfach einen Editor auf der Shell. Der mag nicht so schön bunt sein, funktioniert aber genauso wie jeder andere. Mit dem Befehl
nano -w /etc/crypttab
öffnen wir die Textdatei /etc/crypttab. Das wird bei mir angezeigt:
#
Die crypttab ist also erst mal leer, weil es noch keine verschlüsselten Partitionen gibt. Die tragen wir jetzt ein. Bitte bedenkt, dass es nur dann Sinn macht meine Einträge 1:1 zu übernehmen, wenn eure Festplatte genauso wie meine partitioniert ist. Ansonsten müsst ihr eintragen, was für euch gültig ist. Bei mir sieht die crypttab danach folgendermaßen aus:
# swap /dev/hda2 /dev/urandom swap tmp /dev/hda3 /dev/urandom tmp home /dev/hda4 none cipher=aes-cbc-essiv:sha256,size=256,luks,check=ext3,retry=3
In der ersten Spalte stehen die Namen, die unsere Cryptpartitionan haben werden und über die sie später gemountet werden. In der zweiten Spalte stehen die Festplattenpartitionen, die ihnen zugeordnet sind. In der dritten Spalte steht woher das Passwort dafür kommt. Der Eintrag /dev/urandom bedeutet, dass die Partition mit einer Zufallszahl verschlüsselt wird, ihr also dafür nicht extra ein Passwort beim Starten eingeben müsst. None bedeutet, dass kein Passwort vorgegeben ist, sondern dass es beim Start per Tastatur abgefragt wird. In der vierten und letzten Spalte steht die Art der Verschlüsselung und ein paar andere Informationen für das System, damit es weiss wie es mit den Partitionen umzugehen hat. Der Eintrag swap bedeutet, dass es eine Auslagerungspartition ist und dass sie nach dem Verschlüsseln mit der Zufallszahl als Auslagerungspartition formatiert werden soll. Die wird also bei jedem Starten neu angelegt, weil die Zufallszahl jedes Mal eine andere ist und es auch nicht nötig ist die Auslagerungspartition vom letzten Mal wieder herzustellen. Das gleiche gilt für die Temporärpartition, die mit der Option tmp gekennzeichnet ist. Bei den Userdaten ist das natürlich unerwünscht, die müssen auch nach einem Neustart des Systems erhalten bleiben. Deswegen hat diese Partition auch ein festes Passwort und wird natürlich beim Systemstart nicht formatiert. Die Angaben in der vierten Spalte stehen für die Art der Verschlüsselung, in dem Fall eine AES-Verschlüsselung, welches nach menschlichen Ermessen als absolut sicher gilt. Luks ist die Art der Passwortverwaltung, dazu werde ich später noch kommen. Mit check und retry wird geprüft, ob das Passwort wirklich das richtige war und dass nach drei Versuchen aufgegeben wird. Es sind noch zahlreiche andere Optionen möglich, wer sich genauer damit befassen möchte, sei auf die manpage von cryptsetup und der crypttab verwiesen. Diese hier sind für die meisten User sinnvoll und nur wer sich sicher ist, was er tut, sollte daran etwas ändern. Hat man die Datei fertig editiert, speichert man sie mit dem Tastaturkürzel Steuerung-X (oder ctrl-x, also gleichzeitig die Taste Steuerung und X drücken) und bestätigt, dass man das Speichern möchte.
Im nächsten Schritt erklären wir dem Computer, dass die Partitionen ab sofort verschlüsselt sind. Dazu muss die fstab angepasst werden. Mit dem Befehl
nano -w /etc/fstab
öffnen wir das Textfile und ändern es, dass es so aussieht:
# /etc/fstab: static file system information. # # proc /proc proc defaults 0 0 /dev/hda1 / ext3 defaults,errors=remount-ro 0 1 /dev/mapper/tmp /tmp ext2 defaults 0 2 /dev/mapper/swap none swap sw 0 0 /dev/mapper/home /home ext3 defaults 0 0 /dev/hdd /media/cdrom0 udf,iso9660 user,noauto 0 0
Bitte beachtet, dass sich der Eintrag ext3 bei /tmp auf ext2 geändert hat, das übersieht man leicht, aber es ist wichtig. Die Leerstellen zwischen den Einträgen können sowohl Tabs als auch Leerzeichen sein, das ist nicht so wichtig, Hauptsache die Einträge sind eindeutig voneinander getrennt, es ist auch nicht so wichtig, dass die Spalten genau untereinander stehen, ausser für die Lesbarkeit. Ist man fertig, speichert man die Datei mit Steuerung-X ab.
Im nächsten Schritt bereiten wir die Partition für die Userdaten vor und geben ihr ein Passwort. Als Verschlüsselung benutzen wir wie oben schon erklärt AES, als Verschlüsselungsprogramm nehmen wir cryptsetup mit der luks-Erweiterung. Damit ist es möglich der verschlüsselten Partition mehr als ein Passwort zuzuweisen, zum Beispiel wenn mehrere Personen den gleichen Computer benutzen und jeder sein eigenes Passwort verwenden kann. Ausserdem lässt sich mit dieser Erweiterung das Passwort für die Partition leichter und vor allem schneller ändern. Die Festplatte wird mit dem Befehl:
cryptsetup -c aes-cbc-essiv:sha256 -s 256 -y luksFormat /dev/hda4
verschlüsselt. Als erstes kommt die Abfrage ob man die wirklich mit der Verschlüsselung überschreiben möchte, da antwortet man in großen Buchstaben YES. Danach wird das Passwort zwei mal abgefragt um eventuelle Tipfehler zu vermeiden. Das Passwort sollte mindestens 12 Zeichen haben, besser länger. Am Besten man nimmt als Passwort einen Satz oder eine andere Kombination aus mehreren Wörtern. Schreibt euch dieses Passwort nicht auf, sondern merkt es euch! Nach einigen Sekunden, abhängig von der Größe der Partition und Geschwindigkeit eures Rechners, ist die Verschlüsselung fertig und wir können das Dateisystem auf der verschlüsselten Partition anlegen. Dazu öffnen wir als erstes mal die verschlüsselte Partition mit dem Befehl
cryptsetup luksOpen /dev/hda4 home
Nach Eingabe des Passworts ist die Partition geöffnet und kann mit dem Befehl
mke2fs -j /dev/mapper/home
ihr Dateisystem erhalten. Das dauert ein paar Sekunden. Ich würde allerdings an dieser Stelle dazu raten, die Festplatte auf eventuelle Fehler zu überprüfen, da diese später zu Datenverlust führen können. Deswegen ist es besser, das Dateisystem mit dem Befehl
mke2fs -j -c /dev/mapper/home
anzulegen, auch wenn das deutlich länger (bis zu einigen Stunden, abhängig von der Größe der Partition und der Geschwindigkeit des Rechners) dauert. Wer ganz sicher gehen will, checkt die Platte noch intensiver, was aber sehr lange (Stunden bis Tage) dauern kann. Der Befehl dazu
mke2fs -j -c -c /dev/mapper/home
Wer das wirklich machen will, sollte sich jetzt eine andere Beschäftigung suchen, das kann dauern...
Ist das Dateisystem erstellt, kann man es mounten. Dazu gibt man den Befehl
mount /dev/mapper/home /mnt
ein und die verschlüsselte Partition wird unter /mnt eingehängt und es können Dateien hinkopiert werden. Das testen wir gleich mal und kopieren unser Userverzeichnis in die verschlüsselte Partition. Dazu geben wir die folgenden Befehle ein:
cd /home cp -r * /mnt
Mit dem Befehl
ls -la /mnt
überprüft man, ob sich das Verzeichnis jetzt tatsächlich auf der verschlüsselten Partition befindet. Bei mir kommt folgende Anzeige:
root@ugly:/mnt# ls -la insgesamt 6 drwxr-xr-x 3 root root 1024 2006-07-07 14:27 . drwxr-xr-x 21 root root 4096 2006-07-07 01:17 .. drwxr-xr-x 7 root root 1024 2006-07-07 14:27 alex root@ugly:/mnt#
Wie man sieht ist das Verzeichnis kopiert, aber es gehört mir nicht mehr. Das ist schnell geändert mit den Befehl
chown -R alex:alex /mnt/alex
Wobei ihr darauf achten müsst, dass ihr statt alex euren Usernamen nehmt. Alle drei alex müssen gegen den von euch gewählten Usernamen ausgetauscht werden, sonst könnt ihr später nicht auf eure eigenen Daten zugreifen.
Eigentlich sind wir jetzt fertig, aber es ist besser die Sache noch einmal zu testen, bevor man den Rechner neu startet. Um das zu tun unmounten wir zuerst die verschlüsselte Partition und schließen sie. Dazu geben wir folgende Befehle ein:
cd / umount /mnt cryptsetup luksClose home
Jetzt ist die Partition sozusagen gesperrt und das Passwort ist vergessen. Um zu sehen ob alles geklappt hat und ihr euch das richtige Passwort gemerkt habt, öffnen wir die Partition noch einmal mit folgenden Befehlen:
cryptsetup luksOpen /dev/hda4 home mount /dev/mapper/home /mnt ls -la /mnt
Erhält man die gleiche Auflistung wie weiter oben, hat alles geklappt, gibt es ein Problem würde ich als erstes nach Tipfehlern suchen und es nochmal probieren, ansonsten muss alles ab dem Punkt zur Vorbereitung der Partition für die Userdaten wiederholt werden.
Um sicherzustellen, dass alle Temporärdateien in der verschlüsselten Partition landen, müssen wir noch einen kleinen Link setzen. Das passiert mit folgenden Befehlen:
cd / rm -r /var/tmp ln -sf /tmp /var/tmp
Wenn alles funktioniert hat, sind wir jetzt fertig und in Zukunft fragt der Rechner nur beim Hochfahren nach dem Passwort für die verschlüsselte Partition und alles Ver- und Entschlüsseln passiert im Hintergrund und völlig transparent ohne jedes Zutun des Users. Die verschlüsselte Partition wird nach Eingabe des Passworts automatisch gemountet und geschlossen, wenn der Rechner heruntergefahren wird. Der ganze Aufwand mit den Befehlen eingeben ist nur bei der Einrichtung nötig, danach merkt man davon nie wieder etwas.
Nach einem Neustart des Systems sollte jetzt alles gehen. Zur Sicherheit schauen wir nochmal nach, ob tatsächlich die verschlüsselten Partitionen gemountet sind. Öffne die Shell und gib folgenden Befehl ein:
mount
Jetzt kommt eine Liste der gemounteten tatsächlichen und virtuellen Dateisystem. Wichtig ist ob sich die folgenden beiden Einträge darunter befinden:
/dev/mapper/home on /home /dev/mapper/tmp on /tmp
Wenn ja - Glückwunsch, es ist vollbracht Wenn nein - Pech gehabt, do it all again
Alexander Heidenreich
Zu Fragen, Anregungen und Kritik könnt ihr mich unter dieser Email-Adresse erreichen:
Diese E-Mail-Adresse ist gegen Spam geschützt. Zur Anzeige muss Javascript aktiviert sein.
Dieses Dokument darf frei weiterverbreitet werden, so lange ein Link oder sonstiger Verweis auf die Originalquelle enthalten ist.
|