Freitag, 24. April 2009

Home verschlüsseln in Ubuntu Jaunty 9.04 mit Ecryptfs

(The English version is here)

Verschlüsselung der persönlichen Daten ist gerade bei kleinen Netbooks sehr wichtig. Sie können viel leichter "mitgenommen" werden als große Desktops oder manche Notebooks.

Seit Intrepid gibt es die Möglichkeit ein privates verschlüsseltes Verzeichnis mit eCryptfs anzulegen. Die logische Weiterentwicklung dieses Konzepts ist, das gesamte persönliche Verzeichnis in /home zu verschlüsseln. Dadurch sind automatisch alle Dateien beispielsweise in den Verzeichnissen Dokumente oder Bilder verschlüsselt.

Diese Variante ist auch performanter als das gesamte System zu verschlüsseln, jeder Nutzer auf dem System kann getrennt verschlüsselt werden.

Sie bietet aber auch nicht den gleichen Schutz wie eine Verschlüsselung des gesamten Systems, da ein Angreifer mit Zugriff auf den Rechner Veränderungen an Root, etc, ... vornehmen kann und dadurch die Verschlüsselung aushebeln kann. Wer sich gegen Spionage (kein Witz!) schützen muss, sollte sein gesamtes System verschlüsseln.

Einen Vergleich mit anderen Verschlüsselungsmöglichkeiten ist in den eCryptfs FAQ enthalten. Der Link dazu befindet sich Unten.

In meinem früheren Artikel "Verschlüsselung in Ubuntu - Überblick" gab ich eine Einführung über die möglichen Varianten der Verschlüsselung. Wer sich nicht sicher ist, welche Variante die richtige ist, sollte dort noch einmal nachlesen. Hier zeige ich, wie man das gesamte persönliche Verzeichnis eines Nutzers, sowie die Swap-Partition verschlüsselt.

Die Konfiguration des verschlüsselten persönliches Verzeichnisses sollte direkt nach der Installation geschehen. Dabei wird das gesamte persönliche Verzeichnis gelöscht. Wer bereits Daten in seinem Verzeichnis hat, muss sie vorher auf einen anderen Ort und nach erfolgter Verschlüsselung wieder zurück kopieren.

Achtung!
Nach der Verschlüsselung kann nicht mehr einfach von einer Live-CD auf das verschlüsselte Verzeichnis zugegriffen werden! Wie man das macht, zeige ich in Mounten eines mit Ecryptfs verschlüsselten Home Verzeichnisses.

Wie immer bei diffizilen Tätigkeiten sollte vorher und dann regelmäßig ein Backup auf einem externen Datenträger erstellt werden.

Das Passwort
Zum Verschlüsseln der Daten wird nicht das User-Passwort benutzt, sondern eine Passphrase. Diese wird mit dem User-Passwort verschlüsselt. Der Vorteil ist, dass zum Anmelden nur das User-Passwort erforderlich ist. Auf Grund dieser Funktionsweise muss unbedingt auch das gewählte User-Passwort ausreichend stark sein. Das Passwort sollte nicht aus Wörtern oder Namen bestehen und es sollte Zahlen und Sonderzeichen enthalten.

Installation ecryptfs-utils
Bei dem beschriebenen Verfahren wird das Paket ecryptfs-utils benutzt. Dieses muss als erstes installiert werden, falls es noch nicht ist. Dazu einfach die Synaptic Paketverwaltung benutzen oder im Terminal eingeben:

sudo apt-get install ecryptfs-utils

Verschlüsselung des Home-Verzeichnis für einen User

Nach der Installation startet man den Rechner neu und wählt im Grub-Menü (Boot-Menü) den Recovery Eintrag. Evtl. muss während des Bootens die ESC-Taste gedrückt werden, um in das Grub-Bootmenü zu kommen. Anschließend kommt man entweder direkt auf den Root-Prompt oder in das friendly-recovery Menü. Dort mit den Cursor-Tasten den Root-Eintrag auswählen.

Anschließend folgendes zum Löschen des Users eingeben:

deluser --remove-home steffen

Dabei ist steffen durch den gewünschten Benutzernamen zu ersetzen. Bei diesem Kommando wird der angegebene Nutzer inkl. aller seiner Dateien im Home-Verzeichnis gelöscht!

Dann einen neuen User anlegen:

adduser --encrypt-home steffen

Jetzt muss das noch das Passwort eingegeben werden. Es folgen noch Abfragen nach weiteren Daten, z.B. Raum, Telefon. Diese kann man einfach durch Drücken von Return auf der Vorgabe belassen. Die Passphrase, die ausgegeben wird, sollte man sich notieren.

Da wir den einzigen Nutzer gelöscht und neu angelegt haben, muss dieser auch noch Admin werden, falls das gewünscht ist. Das erfolgt mit:

adduser steffen admin

Den Nutzer noch zur Gruppe sambashare zufügen:

adduser steffen sambashare

Dem Nutzer noch ermöglichen Drucker (LPADMIN) hinzuzufügen:

adduser steffen lpadmin

Damit sollten die originalen Gruppen von Ubuntu Jaunty wieder hergestellt sein. Nun im Terminal Strg+D drücken und normal booten.

Achtung! Falls das Anlegen eines verschlüsselten Verzeichnisses nicht erfolgreich war, kann mit den folgenden Befehlen ein normaler User angelegt werden:

adduser steffen
adduser steffen admin

adduser steffen sambashare
adduser steffen lpadmin

Zusätzlicher User
Wenn man nur einen zusätzlichen Nutzer mit einem verschlüsselten Verzeichnis anlegen will, gibt man folgendes in einem normalen Terminal ein.

sudo adduser --encrypt-home $USER

Der Umweg über die Recovery ist hier nicht erforderlich. Dieser Nutzer benötigt keine normalerweise Root-Rechte.

Swap-Partition verschlüsseln
Wenn eine Swap-Partition vorhanden ist, sollte sie jetzt noch verschlüsselt werden. Es ist aber zu überlegen, ob man überhaupt eine benötigt, da bei einer verschlüsselten Swap-Partition der Rechner nicht mehr in den Ruhezustand versetzt werden. Standby funktioniert weiterhin.

Zur Verschlüsselung der Swap-Partition muss vorher noch das Paket cryptsetup installiert werden.

Beides zusammen geschieht im normalen Terminal mit:

sudo apt-get install cryptsetup
sudo ecryptfs-setup-swap

Notieren der Passphrase
Man sollte sich unbedingt die Passphrase notieren, damit man später auf die verschlüsselten Daten auch beim Systemcrash zugreifen kann.
Das geschieht jederzeit im Terminal mit:

ecryptfs-unwrap-passphrase ~/.ecryptfs/wrapped-passphrase

Anschließend muss das User-Passwort eingegeben werden.

Links:
Ecryptfs FAQ
Ecryptfs Homepage bei Launchpad

Hinweis: Alle Anleitungen sind getestet worden, es kann aber keinerlei Haftung übernommen werden.

Kommentare:

  1. Ich habe den Artikel noch einmal überarbeitet, inhaltlich hat sich allerdings nichts geändert.

    AntwortenLöschen
  2. Ich habe das ganze jetzt auf 3 Notebooks getestet und es funktioniert tadellos.

    Allerdings war auf meinem Netbook Remix Netbook das Paket ecryptfs-utils bereits installiert. Auf der Desktopvariante musste es noch nachträglich installiert werden.

    Bitte postet hier eure Erfahrungen und Verbesserungsvorschläge.

    AntwortenLöschen
  3. Ich habe noch 2 weitere Gruppen hinzugefügt. Diese sind wichtig, sonst kann der Nutzer keinen Drucke hinzufügen...

    AntwortenLöschen
  4. Hallo Steffen,
    danke für das tolle Tutorial. Hat alles bestens funktioniert :-) Einzig, eine Frage ist bei mir noch offen. Wie kann ich für einen User, der vom verschlüsselten Home Directory genug hat und wieder zurück in ein unverschlüsseltes Home möchte, diese Rückmigration möglichst sicher und effizient durchführen? Hast Du hier Erfahrungen?

    AntwortenLöschen
  5. Hallo Steffen,
    nun habe ich doch noch etwas dazu selbst gefunden: wiki.ubuntuusers.de/Baustelle/ecryptfs-utils
    Dort wird im Abschnitt "Homverzeichnis uncodiert" beschrieben, wie man den Weg zurück gehen kann. Ich habe es ausprobiert und es hat bei mir funktioniert. Wie siehst Du den dort vorgeschlagenen Weg?

    AntwortenLöschen
  6. Sorry, habe gar nicht gesehen, dass Du kommentierst hast. Schau es mir gleich an. Obwohl ich nicht zurückwechseln werde. Funktioniert ja alles.

    Prinzipiell muss man ja nur alles kopieren, den Nutzer löschen und unverschlüsselt neu anlegen. Anschliessend alles zurückkopieren.

    Steffen

    AntwortenLöschen
  7. So,

    hab es mir angeschaut. Ja es sieht gut aus. Auf die Idee mit skel wäre ich nicht gekommen, sondern hätte alles selber kopiert. Da man nicht als der User angemeldet ist, sollte es auch kein Unterschied. Würde das Home-Vereichnis des Users einfach mit mv auf das Backup und wieder zurück verschieben. Habe es aber noch nicht getestet.

    Steffen

    AntwortenLöschen
  8. Super Arikel, hat bei mir alles geklappt auch bei einem System, welches schon länger in betrieb ist.

    AntwortenLöschen
  9. Ich musste bei mir den Ordner vom Home-Verzeichnis (also /home/user) selber löschen, vor dem Anlegen des neuen Benutzers. Sonst wird die Verschlüsselung nicht eingerichtet.

    AntwortenLöschen
  10. Sollte eigentlich nicht sein. Die Verschlüsselung selber merkt man nur, wenn man von einer anderen Installation oder der Live-Cd auf die Daten zugreifen möchte.

    Steffen

    AntwortenLöschen