News Gästebuch Forum Mitglied werden FAQ Howtos Desktops C BOfH Lamer & DAUs Quote DB #linux Quotes Was und warum ? Downloads Wallpapers Subdomain Links TU Sidebar Das Team Über die Site Kontakt
Kommentar

Inhalt



Vorwort

Wer wie ich professionell Software entwickelt und / oder sensible Daten auf seinen System hat, wird fruher oder spaeter eine Datensicherung (ein Backup) vornehmen wollen. Diese Backups werden haeufig auf CD bzw. DVD gebrannt, die nicht gegen unbefugte Zugriffe geschuetzt sind. Da nicht jeder ueber einen eigenen Safe oder ein Schlieszfach verfuegt, sollte man ueberlegen die Daten eventuell zu verschluesseln. Linux 2.6 enthaelt ein ausgewachsendes Crypto-API, das fuer diesen Zweck mehr als ausreichend ist. In diesem Howto werde ich beschreiben, wie verschluesselte Backups ganz leicht in die eigene Backupstrategie mit eingebaut werden koennen. Die Tests wurden auf einen Debian 3.1 sarge und einem selbst compilierten 2.6.8er Kernel durchgefuehrt. Dieses Howto sollte allerdings auch auf jede andere Linuxdistribution mit einem 2.6er Kernel anwendbar sein. Im Zweifelsfall solle der Kernel recompiliert werden. Wie das gemacht wird, wird im Kernelhowto beschrieben.


Benoetigte Kernelparameter

Folgende Kernelparameter muessen wenigstens als Modul im Kernel enthalten sein:

CONFIG_CRYPTO
CONFIG_BLK_DEV_LOOP
CONFIG_BLK_DEV_CRYPTOLOOP

Danach sollte der Kryptoalgorithmus gewaehlt werden, mit dem die Daten verschluesselt werden sollen. Ich schreibe hier bewusst nicht, welchen ich verwende, damit der Leser nicht voreingenommen ist. Informationen zu den einzelnen Algorithmen sind zum Beispiel unter http://de.wikipedia.org zu finden Als Beispiel dient uns der Algorithmus Blowfish:

CONFIG_CRYPTO_BLOWFISH

Hinweis: Die beiden Programme mount und losetup muessen installiert- und um die Verschluesselungsparameter erweitert sein!!! (Bei Debian Testing ist dies bereits der Fall, bei Unstable bin ich mir nicht sicher) Falls die Module nicht direkt in den Kerneleincompiliert sind, sollten diese nun nachgeladen werden:

xenobyte@sarge:~$ su
Password:
sarge:~# modprobe cryptoloop blowfish


Nun geht's richtig los

Nun erzeugen wir die Datei, die das Dateisystem fuer unser Backup enthaelt. Diese Datei ist ueber das Loopback-Device zu mounten.

sarge:~# dd if=/dev/urandom of=/usr/local/backup bs=1M count=640

Das schreibt die Datei 'backup' in das Verzeichnis /usr/local/ mit einer groesze von 640 Megabyte. Dies ist die Groesze gaeniger CD-Rohlinge. Die Datei kann immer ueberschrieben werden. Fuer weitere Informationen sollte man vielleicht einen Blick in die Manpage von 'dd' werfen. Als naechstes wollen wir das Loopback-Device fuer das Backup anlegen. Dies machen wir mit:

sarge:~# losetup -e blowfish -k 128 /dev/loop0 /usr/local/backup

Der naechste Schritt erfordert groesze Sorgfalt: Es muss das Passwort gesetzt werden, mit dem die verschluesselte CD gemountet werden kann. Das Passwort wird nur einmal abgefragt! Daher mit groszer Vorsicht tippen. Das neue Dateisystem wird nun ueber das Loopback-Device angesprochen, es muss allerdings noch konfiguriert und gemountet werden.

sarge:~# mkfs.ext3 /dev/loop0
sarge:~# mount /dev/loop0 /mnt


Nun koennen wie gewohnt die Daten gesichert werden, indem sie nach /mnt kopiert werden. Eventuell sollte man seine Backup-Scripte nun uberarbeiten. Beispiel:

sarge:~# cp -av /etc /mnt

Vor dem Brennvorgang sollten alle Verbindungen wieder getrennt werden:

sarge:~# umount /mnt

sarge:~# losetup -d /dev/loop0


Ich empfehle dies aus Sicherheitsgruenden, da mit dem Loeschen des Loop-Devices auch das Passwort im Nirvana des Speichers verschwindet. Nun kann die Backupdatei handelsueblich (z.B. mit cdrecord) auf die CD geschrieben werden. Wie man eine CD brennt ist nicht Bestandteil dieses Howtos, zu diesem Thema sind aber auch Informationen in der Howto-Sektion zu finden. Nun haben wir mit wenigen Arbeitsschritten ein verschluesseltes Backup erstellt und auf eine CD geschrieben. Wir werden hoffentlich nie gezwungen sein, das Backup nochmal einzuspielen, zur Sicherheit will ich allerdings noch erklaeren, wie man das Backup im Notfall wiedergekommt. Hierzu wird die CD einfach gemountet:

sarge:~# mount -t ext3 -o ro,encyption=blowfish,keybits128 /dev/hdc /mnt

Hiernach erfolgt die Authentifizierung durch das Passwort. Ist das Passwort korrekt befinden sich das Backup in /mnt, wenn nicht meldet mount einen Fehler.


Last but not least

Wir haben nun eine verschluesselte Backup-CD erstellt die wir ohne Bedenken auch mal offen rumliegen lassen koennen. Die verwendete Kryptoalgorithmus und die verwendete Schluessellaenge sind nur Beispiele und koennen natuerlich nach Belieben veraendert werden. Der eine oder andere wird sich sicherlich schon gefragt haben, warum in diesem Text keine Umlaute vorhanden sind. Das liegt einfach daran, weil meine Tastatur keine besitzt. Ich verwende eine amerikanische Cherry-Tastatur. Dies ist sehr komfortabel im Umgang mit UNIX-Systemen und beim Programmieren, da die spezifischen Zeichen - meiner Meinung nach - besser angeordnet sind, als bei deutschen Tastaturen. Zum Schluss dieses Howtos moechte ich noch Tobias W. danken, der mich erst auf die Idee gebracht hat, verschluesselte Backups auf CD zu schreiben.