Schutz vor Datenklau – Festplatte verschlüsseln

Posted on November 20th, 2007 by UIT under Allgemein.
Tags:

Gut, da haben Sie nun alles gemacht, damit Bösewichter und andere Schergen Sie weder im Internet verfolgen, noch auf Ihre Rechner zugreifen können. Sie nutzen ein sicheres Betriebssystem mit offenem Quellcode z.B. Linux oder Unix, natürlich mit TOR oder JAP, Sie verschlüsseln sämtlichen Datenverkehr und nutzen eine gute Firewall. Periodische Datei-Integritäts-Checks verhindern Manipulation Ihres Systems, Ihr Virenscanner ist immer aktuell usw. Mit Recht fühlen Sie sich sehr sicher !

Aber was passiert, wenn das Notebook oder die Festplatte plötzlich gestohlen oder von Staatsorganen eingezogen wird ???

Dann liegen Ihre sämtlichen Daten (alle Passwörter, alle E-Mails, Adressen, Textdateien, Briefe, Surfhistorie inklusive Bilder, sämtliche Zugangsdaten, Zugänge zum Konto (besonders fatal, da auch die Schlüssel offen liegen), sämtliche Crypto-Schlüssel, (eventuell) PGP-Schlüssel, Kontaktdaten aus ICQ, IRC, MSN usw. usw.) plötzlich in den Händen von Leuten, denen Sie diese Daten auf gar keinen Fall anvertrauen wollen !

Falls Ihr Notebook also eingezogen oder gestohlen wurde, bleiben Sie cool, lächeln freundlich, denn Sie wissen: Ihre Daten sind vor fremden Zugriff sicher ! Denn Sie haben ja Ihre Festplatte verschlüsselt. Wie ? Nicht ??? Na, dann wird es aber Zeit !
Wie das geht, erzähl ich Ihnen heute hier:
Los gehts ! Zuerst einmal (ganz wichtig !) alle Daten sichern. Am besten eignet sich dafür ein zweiter Linux-Rechner mit einer genügend großen Partitition (und keinesfalls FAT oder so nen Microsoft-Murks, damit werden alle Dateirechte und Berechtigungen verändert). Es muss Ext2 oder Ext3 sein. Ein Knoppix mit angeschlossener USB-Festplatte mit EXT2- oder EXT3- Partition tut es auch.

O.k., nun sichern. Das geht am besten mit rsync. Dazu vernetzt man zwei Linux-Rechner und macht eine Komplettsicherung. Ein Besipiel dazu: Ich arbeite dabei auf der Quelle (192.168.1.5) und mein Knoppix ist das Ziel. Dass Ziel hat z.B. die IP 192.168.1.30.

rsync –avz –numeric-ids –exclude=/proc –exclude=/sys / 192.168.1.30:/sicherungsverzeichnis/

Die beiden Verzeichnisse sys und proc dürfen nicht mitgespiegelt werden. Übrigens funktioniert rsync bidirektional, also von der Knoppixseite aus gesehen hiesse es dann:

rsync –avz –numeric-ids –exclude=/proc –exclude=/sys 192.168.1.5:/ /sicherungsverzeichnis/

Klar ? Klar ! So, nun dauert es ewig bis alle Daten rüber sind. Wenn nach ca. 2 Stunden alles rüber gespiegelt wurde, kann es losgehen.

Wie wollen in diesem Fall die Verzeichnisse /home, /usr und /var verschlüsseln. Das sind die wichtigsten Verzeichnisse. Warum ? Nun, /home ist klar, hier befinden sich alle persönlichen Einstellungen, alle persönlichen Passwörter, Webcache, Konfigurationen, Web-History etc. All die wichtigen Daten, die Herr Schäuble gern lesen möchte. Unter /var befinden sich die Log-Files, wer was wann wo gemacht hat, vielleicht Passwort-Fragmente, Verbindungsdaten und noch eine Menge Systeminformationen, die auch niemanden was angehen. Deswegen: Dicht machen ! Unter /usr befinden sich viele interessante Programme, Plugins, Applikationen (die auch niemanden was angehen), manche Spiele usw. Also, auch hier gilt: verstecken.

Der Rest des Systems ist relativ uninteressant, da es sich um übliche Konfigurationen handelt, (auch das Root-Passwort ist diesmal nicht von Bedeutung, da man bei physikalischem Zugriff auf die Festplatte es eh nicht benötigt). Also, für ein Staatsorgan oder einen Bösewicht alles unwichtiger Kram. Deswegen lassen wir das unverschlüsselt. Das hat außerdem den Vorteil, dass man bei einer Systemrettung nicht wieder alles umständlich entschlüsseln muß.

Soweit so gut, wir wissen nun, was wir machen wollen. Nun zur Vorgehensweise. Ich werde hier kein ausführliches Tutorial geben, da es genug gute Anleitungen im Internet gibt. (Kucks Du hier, unbedingt lesen(!) : http://wiki.ubuntuusers.de/System_verschlüsseln. Deswegen beschränke ich mich auf das Prinzip und auf die Dinge, die da eben nicht drin stehen.

1. Partitionen anlegen

Zuerst müssen wir für jedes Filesystem jeweils eine Partition anlegen. Dafür booten wir von einem Livefilesystem. Ich habe R.I.P. 3.9 benutzt, da gparted nicht bootete und Knoppix kein gparted drauf hatte. Ausserdem hat RIP die letzte Version von Gparted drauf, ist grafisch und schlank.
Wir booten also RIP, stellen unsere Tastatur ein (de-latin1 nodeadkeys) und loggen uns als “root” ein. Jetzt starten wir X (startx) und können nun gparted starten.
Mit gparted erstellen wir die neuen Partitionen, derer 3 an der Zahl. Die Größe muß natürlich dem Verzeichnis entsprechen. Ich habe meine Größen so gewählt:
/home = 30 GB (warum so groß ? Nun, ich habe viele Daten, allein ein Spiel braucht 10 GB, manchmal teste ich was, dann erstelle ich eine virtuelle Platte , sind noch mal 10 GB, na ja und Videos und Musik, und DVD-Images , all das lagert hier und braucht Platz. da sind 30 GB o.k.)
/usr = 20 GB (ergibt sich aus den durchschnittlichen 6 GB im Normalfall plus etwas Platz für z.B. Linux-Spiele)
/var = 10 GB (/var braucht etwa so 2 GB, aber da unter Debian und anderen Systemen hier die RPMs oder Debs gelagert werden, kann das Verzeichnis im Laufe der Zeit schnell anwachsen)

Wer es für sich herausfinden will: “du -h /usr” zeigt den Plattenverbrauch an. (Alternativ: xdiskusage)

Die meisten Distributionen machen es uns hier übrigens leicht, da die Partitionen zumeist logische sind. Dadurch kann ich locker mit gparted hin und herschieben und kreieren. O.k., Partitionen erstellt ?

2. Anlegen der Verschlüsselten Systeme
Wir starten nun unser System neu. Nachdem es hochgefahren ist, aktivieren wir die neuen Partitionen. Bitte installieren Sie dm-crypt und cryptsetup (Wie im Forum beschrieben).
Nehmen wir an, unsere neuen Partitionen wären /dev/hda4 (angedacht für /home), /dev/hda5 (angedacht für /usr) und /dev/hda6 (angedacht für /var) dann würde das Kommando zur Erzeugung eines Filesystem lauten:

cryptsetup -c aes-lrw-benbi -y -s 384 luksFormat /dev/hda4

Jetzt mit “YES” bestätigen und Passwort eingeben.

Achtung: Unbedingt ein gutes bzw. sicheres Passwort eingeben, welches man nicht leicht erraten kann !!! Das Paßwort ist die einzige Schwachstelle unserer Verschlüsselung !!!

Mit den anderen beiden Partitionen genauso verfahren. Alle Daten auf diesen Partitionen werden unwiederbringlich gelöscht !

3. Partitionen mounten und Dateien verschieben

Wir erzeugen drei neue Verzeichnisse: /home2 , /usr2 , /var2.
Jede Partition muss nun geöffnet werden (um Zugriff zu erhalten), formatiert und gemounted werden.

Beispiel für die home-Partition:
Öffnen: cryptsetup luksOpen /dev/hda4 home
Mounten: mount /dev/mapper/home /home2
Formatieren: mkfs.ext3 /dev/mapper/hda4

Mit den anderen Partitionen identisch verfahren.

Wenn alle Partitionen gemounted sind, dann werden die Daten aus den Verzeichnissen auf die neuen verschlüsselten Festplatten übertragen:
Hier hilft wieder rsync. Beispiel für die Übertragung:

rsync -av –numeric-ids /usr/ /usr2

Achtung, nicht den letzten “/” hinter dem ersten /usr vergessen, da wir rekursiv nur bis zum Verzeichnis kopieren wollen !
Dies im gleichen Stil bei allen drei Verzeichnissen.

Puh ! Pause verdient, jetzt erstmal eine rauchen! Das Kopieren dauert etwas, je nach Menge der Daten.

Ist alles rüber ? Prima ! Jetzt zur Anpassung.

4. Konfigurationen editieren und 1. Test

Folgende Konfigurationsdateien sollten nun editiert werden. (Testkonfiguration)

Beispiel:

Datei: /etc/fstab

Einfügen:
/dev/mapper/home2 /home2 ext3 defaults 0 0
/dev/mapper/usr2 /usr2 ext3 defaults 0 0
/dev/mapper/var2 /var2 ext3 defaults 0 0

Damit erzeugen haben wir noch unser altes System unverändert, aber können testen, ob das automatische Mounten beim Starten funktioniert.

Datei: /etc/crypttab

Einfügen:
home2 /dev/hda4 none luks,retry=1,cipher=aes-lrb-benbi:sha256
usr2 /dev/hda4 none luks,retry=1,cipher=aes-lrb-benbi:sha256
var2 /dev/hda4 none luks,retry=1,cipher=aes-lrb-benbi:sha256

Datei: /etc/initramfs-modules/modules

Einfügen:
aes
dm-crypt
dm-mod
sha256

Wenn alles erledigt ist, die initramfs noch anpassen:

update-initramfs -u ALL

Jetzt sind wir fertig, (mit den Nerven) und für den ersten Test. Tief durchatmen und Reboot !

Nun sollte das Passwort für die drei neuen Partitionen abgefragt werden. Klappt es ? Prima !

Der erste Test ist also gelungen. Es gibt jetzt jeweils zwei Verzeichnisse mit identischem Inhalt z.B. /usr und /usr2. Um die beiden zu unterscheiden, erzeugen wir einfach in /usr ein neues Verzeichnis z.B. “diskorig“. Mit den anderen verfahren wir ebenso.

Jetzt ändern wir alle unsere gemachten Einträge in fstab und crypttab auf das scharfe System um, z.B. on /usr2 auf /usr.

Reboot. Jetzt sollte in den entsprechenden Verzeichnissen das Verzeichnis “diskorig” nicht mehr zu sehen sein. Ein sicheres Zeichen dafür, dass alles gut geklappt hat.

Gratulation !

Mit RIP können wir jetzt zu guter Letzt ein letztes Mal starten. Wir mounten unsere Original Partition (die allererste, unverschlüsselte) und löschen die Inhalte unter /home, /usr und /var.

Ein letzter Neustart des scharfen Systems, jetzt sollte alles gut laufen. Wenn alles o.k. ist, können die Sicherungen gelöscht werden.

Das Endergebnis

Sie besitzen nun ein extrem sicheres System, welches ohne Kennwort nicht zu knacken ist. Selbst ein Nachweis, dass sich überhaupt Daten auf der Festplatte befinden, ist jetzt nicht mehr möglich !

——-

Dieser kleine Bericht zeigt sehr deutlich, daß es nicht ganz trivial ist, ein bereits bestehendes (Linux)-System ohne Datenverlust zu verändern.

Aus diesem Grunde biete ich für Interessierte einen Workshop an, bei dem unter fachlicher Aufsicht Ihre Festplatten verschlüsselt werden. Dieser Workshop wird aber mit Sicherheit mindestens einen (vermutlich eher zwei Tage) in Anspruch nehmen und kann leider auch nicht kostenlos durchgeführt werden. Sollte Ihrerseits Interesse daran bestehen, melden Sie sich bitte per E-Mail an “hans.ullrich@loop.de“.

——-

Ich selbst habe insgesamt ca. 5 Stunden benötigt, da ich große Datenmengen hin und herschieben mußte. So etwas dauert halt seine Zeit. Und ein einziger Fehler, und das System ist hin.

Hans-J. Ullrich (Ullrich-IT-Consult, admin)

Keine Kommentare

No comments yet.

Leave a comment

Du musst angemeldet sein, um einen Kommentar abzugeben.