ubuntuusers.de

Du betrachtest eine alte Revision dieser Wikiseite.

Daten verschlüsseln

Fehlendes Makro

Das Makro „Fortgeschritten“ konnte nicht gefunden werden.

Fehlendes Makro

Das Makro „Fehlerhaft“ konnte nicht gefunden werden.

 * [1]: [:Paketquellen freischalten: Bearbeiten von Paketquellen]
 * [2]: [:Pakete installieren: Installation von Paketen]
 * [3]: [:Terminal: Ein Terminal öffnen]
 * [4]: [:Editor: Einen Texteditor öffnen]

Wenn auf der Festplatte des Rechners sensible Daten liegen, bietet es sich an, diese zu verschlüsseln. Prinzipiell lassen sich einzelne Dateien verschlüsseln, wirkliche Sicherheit bietet aber nur die weitgehende Verschlüsselung des Systems.

Verschlüsselung des Systems

Weitgehende Sicherheit ist nur erreichbar, wenn man alle Stellen bedenkt, an denen die zu schützenden Daten auftauchen können, und sei dies auch nur vorübergehend. "Gelöschte" Daten lassen sich nämlich mit entsprechendem Aufwand durchaus auslesen. Traditionell verhindert man dies, indem man die Daten beim Löschen mehrfach überschreibt. Dies ist bei modernen Dateisystemen jedoch prinzipbedingt nicht möglich.

Folgende Bereiche müssen deshalb verschlüsselt werden:

  1. die Daten selber, z.B. die Partition mit den persönlichen Ordnern (/home)

  2. die Auslagerungspartition (swap)

  3. die temporären Dateien (/tmp)

  4. die Dateien in /var, wo z.B. Druckaufträge zwischengespeichert sind.

Vorbereitung: Paketinstallation

Das folgende Paket muss installiert [2] werden:

  • cryptsetup (universe, [1])

Einrichtung des Systems

Um einerseits unnötig viele Passworteingaben beim Systemstart zu vermeiden, andererseits aber die Datensicherung nicht zu erschweren, verwenden wir eine Partition für /home und eine weitere gemeinsame für /tmp und /var. Das hat den Vorteil, dass man auch ohne größere Anpassungen beim Systemstart nur zwei zusätzliche Passwörter, und nicht gleich drei eingeben muss.

Besteht für /home noch keine eigene Partition, muss dies geändert werden. Für /tmp und /var muss ebenfalls eine Partition angelegt werden.

⚓︎

Anlegen der Partitionen für /home, /tmp und /var

Diese Schritte müssen von einer Live-CD aus erledigt werden, da die Systempartition betroffen ist. Sie werden mit dem graphischen Partitionierungsprogramm GParted vorgenommen. Beim Start mit der Live-CD muss ausnahmsweise ein Parameter eingegeben werden:

live noswap

verhindert die Nutzung von Swappartitionen, denn dies könnte die Bearbeitung der Partitionstabelle stören.

Verkleinerung der Systempartition

Zuerst muss die Systempartition verkleinert werden. Fünf GB sind meist angemessen, sofern nicht bereits mehr Platz auf dem Gerät belegt ist.

Verschieben der Swappartition

Die Leistung leidet, wenn die Swappartition zu weit hinten auf der Festplatte liegt. Sie ist also direkt an das Ende der Systempartition zu verschieben

Anlage der neuen Partitionen

Zwei Partitionen sind nun anzulegen:

  1. Für die gemeinsame Partition für /tmp und /var genügen etwa ein bis zwei GB. Diese Partition sollte möglichst nach dem Swapbereich liegen.

  2. Für die spätere /home-Partition kann man den restlichen verfügbaren Platz verwenden.

Normalerweise wird man für beide Partitionen das ext3-Dateiystem wählen.

Die Bezeichnungen der System- und der neuen Partitionen sollte man sich notieren. Auch die nächsten Schritte werden mit der Live-CD erledigt, also noch nicht neustarten.

Daten umverteilen

Die Daten, die derzeit noch auf der alten Partition liegen, müssen jetzt an den richtigen Ort verschoben werden. Diese Schritte finden von einer Live-CD aus und im Terminal statt.

Partitionen einbinden

/dev/hda1 sei die Systempartition, /dev/hda5 die Partition für /tmp und /var, /dev/hda6 sei die neue /home-Partition. Die Verzeichnisse zum Einbinden werden im Terminal [3] erzeugt mit

sudo mkdir -p /mnt/{root,crypt,home}

Die Partitionen werden eingehängt mit

sudo mount /dev/hda1 /mnt/root
sudo mount /dev/hda5 /mnt/crypt
sudo mount /dev/hda6 /mnt/home

Daten verschieben

Falls sich das /home-Verzeichnis noch nicht auf der separaten Partition befindet, wird sein Inhalt so kopiert:

sudo cp -a /mnt/root/home/* /mnt/home/

Die Verzeichnisse /tmp und /var werden so kopiert bzw. angelegt:

sudo mkdir -p /mnt/crypt/tmp2
sudo chmod 1777 /mnt/crypt/tmp2
sudo cp -a /mnt/root/var/* /mnt/crypt/

/tmp wird nicht kopiert, sondern neu angelegt, weil der Inhalt beim Systemstart ohnehin automatisch gelöscht wird. Es wird also der Inhalt von /var nach /mnt/crypt kopiert und in diesem Verzeichnis noch ein Ordner /tmp2 angelegt, welcher später mit /tmp verlinkt wird. Der Ordner heißt /tmp2, da es bereits einen Ordner /tmp im neuen /var-Verzeichnis gibt.

Den Inhalt der Partitionen kann man sich so anzeigen lassen:

ls /mnt/crypt
ls /mnt/home

Dort sollten sich die Verzeichnisse /tmp2 und der ursprüngliche Inhalt von /var bzw. alle persönlichen Ordner der Benutzer befinden.

[Falls vorhanden: /home aus der fstab entfernen]

Wurde bereits früher eine separate Partition für /home verwendet, darf diese beim nächsten Start nicht eingebunden werden. Der Eintrag in /etc/fstab ist also in einem Editor mit Root-Rechten [4] auszukommentieren.

Damit ist dieser Schritt erledigt. Nun sollte wieder das normale System gestartet werden. Nicht in der graphischen Oberfläche einloggen, sondern mit

Fehlendes Makro

Das Makro „Tasten“ konnte nicht gefunden werden.

auf eine Konsole wechseln und dort anmelden.

Konfiguration der Cryptopartitionen

Die zu verschlüsselnden Partitionen sind in der Datei /etc/crypttab gelistet, die in einem Editor mit Root-Rechten [4] bearbeitet werden kann. Außer der Datenpartition wird auch die Swappartition hier gelistet.

# <target device> <source device> <key file> <options>
crypt   /dev/hda5   none   vol_id
home    /dev/hda6   none   vol_id
swap0   /dev/hda2   /dev/urandom swap

An erster Stelle wird der gewünschte Name des verschlüsselten Gerätes eingetragen, an zweiter Stelle die zu verschlüsselnde Partition bzw. das zu verschlüsselnde Volume, falls man EVMS verwendet. Die zusätzlichen Optionen für den Swap geben an, dass als Schlüssel eine Zufallszahl verwendet und das verschlüsselte Gerät nach Einrichtung als Swap formatiert werden soll.

Partitionen verschlüsseln

Beim ersten Mal legen wir das Cryptogerät noch von Hand an, um eine doppelte Passwortabfrage zu erhalten. Später beim automatischen Start der Verschlüsselung wird das Passwort natürlich nur einmal pro Partition abgefragt. Das wäre jetzt im Fall eines Vertippers fatal, also:

sudo cryptsetup create -y crypt /dev/hda5
sudo cryptsetup create -y home /dev/hda6

Jetzt kommt der abenteuerliche Teil: die folgenden Befehle wandeln die bestehenden Partitionen um. Sie dürfen dabei nicht eingebunden sein. Die enthaltenen Dateisysteme samt Inhalt sind danach über das verschlüsselte Gerät unversehrt zugänglich.

sudo dd if=/dev/hda5 of=/dev/mapper/crypt
sudo dd if=/dev/hda6 of=/dev/mapper/home
Das Umwandeln kann abhängig von der Größe der umzuwandelnden Partitionen und der Performance der eingesetzten Hardware ziemlich lange dauern.
Beispiel: crypt (23 GB) und home (260 GB), bei meinem Rechner eine Bearbeitung von 4,2 MB/s für die 23 GB und 3,1 MB/s für die 260 GB macht eine Gesamtzeit des Prozesses von etwa   '''25,5 Stunden''' (scheint so dass größere Partitionen langsamer verarbeitet werden). Nun hängt die Rate der bearbeiteten MBs pro Sekunde natürlich stark von eurer Hardware ab.

Also sollte man das ganze mit Bedacht starten. Lieber vorm schlafen gehen und daran denken das man am morgigen Tage villeicht auch noch nicht an seinen Rechner kann.
''(Ergänzung von tobitious)''

Man braucht eigentlich nicht die komplette Platte lowlevel zu kopieren, das dauert erstens sehr lange und zweitens werden Fragmentierung und leere Blöcke auch 1:1 kopiert, was man eigentlich nicht will. Besser ist: von /home und /var vorher ein Backup auf Dateisystemebene mit tar oder cpio zu machen (man kann das Archiv z.B. unter /root/ erstellen lassen), anschliessend mit mkfs.ext3 auf den Zielpartitionen /dev/mapper/crypt und /dev/mapper/home ein Filesystem anzulegen es zu mounten und mit tar bzw. cpio das Backuparchiv dorthin zu entpacken.
''(Ergänzung von mdkuser)''

Nun sollte bei Zugriff auf die "originale" Partition nur noch Datenmüll zu sehen sein, die alten Inhalte sind über /dev/mapper/home zugänglich. Wir testen nun die Korrektheit der umgewandelten Partition mit

sudo fsck /dev/mapper/crypt
sudo fsck /dev/mapper/home

Zur Sicherheit können wir die Partition auch schon einmal einbinden, um ihre Inhalte zu betrachten:

sudo mount /dev/mapper/crypt /mnt
sudo mount /dev/mapper/home /home

Eintrag der neuen Dateisysteme

In der /etc/fstab, mit einem Editor mit Root-Rechten[4] zu bearbeiten, sollten nun noch Einträge für die neuen oder geänderten Partitionen wie folgt erstellt bzw. angepasst werden:

/dev/mapper/swap0  none       swap     sw              0       0
/dev/mapper/crypt /var     ext3     defaults        0       2
/dev/mapper/home  /home      ext3     defaults        0       2

Alte Daten zur Seite räumen

Nun müssen noch die alten Daten aus dem Weg geräumt werden, damit auf die neuen, verschlüsselten Daten zugegriffen werden kann. Hierzu starten wir noch einmal eine Live-CD und binden die Systempartition ein:

mount /dev/hda1 /mnt

Zur Sicherheit benennen wir die alten, unverschlüsselten Daten erst mal um, statt sie gleich zu löschen. Sollte irgend etwas doch nicht funktionieren, ist der Weg zurück so besonders einfach. Lediglich das beim Systemstart ohnehin leere /tmp wird sogleich gelöscht. Dann werden leere Verzeichnisse bzw. Links auf die verschlüsselten Daten erstellt.

sudo mv /mnt/home /mnt/noenc-home
sudo mkdir /mnt/home
sudo rm -rf /mnt/tmp
sudo ln -s /var/tmp2 /mnt/tmp
sudo mv /mnt/var /mnt/noenc-var

Im Ordner /var, wo die Crypt-Partition eingehängt wird, müssen auf jeden Fall noch die Ordner lock, run und tmp angelegt und mit den nötigen Zugriffsrechten versehen werden (andernfalls kommt es zu Fehlern beim Booten):

sudo mkdir -p /mnt/var/lock
sudo chmod 1777 /mnt/var/lock
sudo mkdir -p /mnt/var/run
sudo chmod 755 /mnt/var/run
sudo mkdir -p /mnt/var/tmp
sudo chmod 1777 /mnt/var/tmp
Es ist wichtig das /var direkt in ein Verzeichnis gemounted wird. Seit Dapper gibt es sonst Probleme, da Dapper auf /var gewisse Aktionen ausführt, bevor die Crypt-Partitionen eingehängt werden. Ist /var ein Symlink, kommt es an dieser stelle sonst zu Problemen. Siehe auch [http://forum.ubuntuusers.de/topic/34490/]

Erster Start mit Verschlüsselung

Beim nächsten Start des installierten Systems wird nach dem Passwort für die verschlüsselten Partitionen gefragt. Daten_verschlüsseln/crypt-passwort.png Wenn man sich vertippt, hat man Pech gehabt und landet auf einer Konsole. Wenn man hier

/etc/init.d/cryptdisks restart

eingibt, kann man die Passworteingaben wiederholen. Nach Druck auf

Fehlendes Makro

Das Makro „Tasten“ konnte nicht gefunden werden.

wird der Systemstart dann fortgesetzt.

Funktioniert alles, müssen die zuvor umbenannten Daten noch gelöscht werden:

sudo rm -rf /noenc*

Verbleibende Datenspuren vernichten

Im Prinzip könnten nun auf der Systempartition noch die Daten aus den verschobenen Verzeichnissen zu finden sein. Diese überschreiben wir nun, indem wir den gesamten leeren Platz auf der Partition mit Zufallszahlen auffüllen

Fehlendes Makro

Das Makro „Anmerkung“ konnte nicht gefunden werden.

. Von einer Live-CD aus geht das so:

Systempartition einbinden mit

sudo mount /dev/hda1 /mnt

Zufallszahlen in eine Datei schreiben, bis der Platz erschöpft ist, und die Datei dann wieder löschen:

sudo dd if=/dev/urandom of=/mnt/zufall 

sudo rm /mnt/zufall

Das war's endlich - alle sensiblen Daten befinden sich jetzt ausschließlich auf verschlüsselten Partitionen.

Schlüssel ändern

Prinzipiell ist es ganz einfach, es gibt nur ein praktisches Problem: Da die Partitionen, deren Schlüssel man ändern möchte, nicht in Benutzung sein dürfen, benötigt man ein Wartungssystem, auf dem cryptsetup installiert ist. Die Ubuntu-Desktop-CD erfüllt diese spezielle Anforderung leider nicht, auch Knoppix (4.0.2) enthält cryptsetup nicht einmal auf der DVD. Vermutlich lässt es sich in einem Knoppix-Livesystem aber nachinstallieren.

Das Vorgehen ist folgendermaßen:

  • Jeweils ein verschlüsseltes Gerät mit dem alten und neuen Schlüssel anlegen:

sudo cryptsetup create crypto-alt /dev/hda5
sudo cryptsetup create -y crypto-neu /dev/hda5

Nun sollte man unbedingt noch testen, ob die verschlüsselte Partition korrekt angesprochen wird. Hätte man sich beim Passwort vertippt, würde sonst gleich nur Datenmüll umgewandelt.

sudo fsck /dev/mapper/crypto-alt

Wenn keine Fehler gemeldet werden, kann es losgehen.

Daten vom alten aufs neue Gerät kopieren:

sudo dd if=/dev/mapper/crypto-alt of=/dev/mapper/crypto-neu

Neu starten, und bei der Passwortabfrage künftig den neuen Schlüssel verwenden.

Vereinfachung: Schlüsseldiskette

Wenn man beim Start nicht immer zwei Passwörter eingeben möchte, kann man sich einer Diskette oder eines USB-Sticks bedienen, die eine Datei mit dem Schlüssel der Partitionen enthalten (und selbst auch verschlüsselt sein können). Siehe dazu [:Keydisk].

Verschlüsselung einzelner Dateien

Um einzelne Dateien zu verschlüsseln, genügt die Installation [1] von GnuPG; die folgenden Pakete werden benötigt:

  • gnupg

  • gnupg-doc (Optional, enthält die Dokumentation)

Wer die Dokumentation mitinstalliert, kann sie mit dem Browser unter der Adresse /usr/share/doc/gnupg-doc/GNU_Privacy_Handbook/de/html/book1.html lesen.

Die Verschlüsselung selbst findet im Terminal [3] statt.

Ein einfaches Kommando wie

gpg -c DATEINAME

genügt, um die Datei DATEINAME zu verschlüsseln.

Mit

gpg  --decrypt DATEINAME.gpg > Datei

oder

gpg  -d DATEINAME.gpg > Datei

packt man die Datei wieder aus.

gpg erfragt beim Ver- und Entschlüsseln natürlich die gpg-Passphrase.

Der große Nachteil dieser Methode ist, dass man die Datei jedesmal manuell ver- und entschlüsseln muss. Desweiteren muss man die Orginaldatei jedesmal löschen. Etwas mühselig auf die Dauer, und die gelöschten Orginal-Dateien sind unter Umständen wieder herstellbar...

Veraltet: cryptoloop

Dieses Verfahren ist veraltet und sollte in neuen Installationen nicht mehr eingesetzt werden. Die Unterstützung im Kernel dafür entfällt.


Fehlendes Makro

Das Makro „Tags“ konnte nicht gefunden werden.

Diese Revision wurde am 3. Juni 2007 12:58 von FayWray erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Sicherheit, System, Verschlüsselung