Sein Home Verzeichnis unter Ubuntu Linux nachträglich verschlüsseln

Hat man sein Homeverzeichnis schon eine längere Zeit und bisher noch nicht verschlüsselt, dann ist jetzt der richtige Moment, über Verschlüsselung nachzudenken.
Warum?
Verschlüsselung hat ersteinmal nichts mit übertriebener Paranoia zu tun. Vielmehr sollte man sich überlegen, ob man seine Daten im schlimmsten Falle unverschlüsselt anderen „zur Verfügung“ stellen möchte.
Man denkt sich nun sicherlich: Mir passiert das nicht. Aber gerade dann schlägt Murphy zu. Als Beispiel: Man ist mit der Bahn unterwegs, hat seinen Laptop dabei. Nicht selten geht der Laptop danach einen anderen Weg als man selbst…. Oder ein Einbruch: Laptop, externe Festplatten usw. sind weg. Alle Daten unverschlüsselt. Schnell ist der Rechner/ Laptop weg, die eigenen Daten sind unverschlüsselt im Homeverzeichnis. Natürlich hat man seine wichtigen Daten in Truecrypt-Containern sicher verschlüsselt. Aber nicht alle: Chatprotokolle, eMails im Klartext (hat sich jemand mal im Homeverzeichnis tiefer in .thunberbird gegraben??? wirklich nicht schön dort….), Notizen usw. befinden sich alle unverschlüsselt auf der Festplatte.
Beispiele gibt es also genug. Will man das wirklich im schlimmsten Falle selber erleben?

Ein einfacher Weg ist nun: Man verschlüsselt sein Homeverzeichnis. Damit hat man nachträglich noch ein paar mehr Hürden für denjenigen eingebaut, der sich unberechtigt an seinen Daten vergehen will.

Sollte das Homeverzeichnis nicht sowieso schon bei der Installation (Ubuntu bietet das seit einiger Zeit im Installationsmenü an…) als „verschlüsseltes Homeverzeichnis“ angelegt worden sein, so kann man es nachträglich mit etwas hin- und herkopieren und wenigen Befehlen schnell nachträglich erledigen.


Vorbereitung 1: Backup

Backup. Backup. Und noch mals Backup!
Man kann es nicht oft genug sagen: Bevor man anfängt sollte man sicherstellen, dass man ein voll funktionsfähiges und aktuelles Backup zur Verfügung hat. Und zwar eines, was einem wirklich alle Daten zurückbringen kann, wenn hier etwas schief geht.
Macht man hier einiges falsch, so hat man danach ein wenig mehr Platz auf der Festplatte (soll heißen: Die eigenen Daten im Homeverzeichnis sind futsch!).


Vorbereitung 2: Benötigte Software installieren

  Für die Einrichtung und Nutzung der Homeverzeichnis-Verschlüsselung unter Ubuntu Linux 10.10 wird das Paket ecryptfs-utils benötigt, welches die nötigen Tools zur Verschlüsselung bereitstellt. Über einen grafischen Paketmanager (Synaptic o.ä.) seiner Wahl oder auf der Konsole kann man prüfen, ob das Paket installiert ist und dieses nötigenfalls nachinstallieren. Ich gehe hier exemplarisch auf die Nutzung auf der Konsole ein. Einen Klick in der GUI kriegt wohl jeder selber hin.

Linuxrechner ~ # sudo apt-get install ecryptfs-utils
(Installiert über apt das nötige Paket.)

Hat man einen anderen Paketmanager und nutzt eine andere Linux Distribution als Ubuntu, so muss man entsprechend die Installation anpassen. Verschiedene Paketmanager (auf GUI oder Konsolenebene) stehen zur Verfügung. Letztendlich kann man natürlich auch die Software selber kompilieren und installieren. Darauf werde ich jedoch nicht weiter eingehen.


Vorgehen

  Für das Einrichten eines verschlüsselten Homeverzeichnisses gehe ich den Weg, dass man ausgeloggt auf der Konsole die nötigen Schritte durchführt. Also einfach ausloggen, ein TTY („Konsole“, „Shell“) starten und loslegen.

Das bedeutet:

  • Abmelden aus dem System
  • Auf einer Konsole als Benutzer root einloggen
  • Syncen der Daten auf ein Backuplaufwerk, ein anderes Verzeichnis oder ähnliches
  • Einrichtung des verschlüsselten Homeverzeichnisses
  • Einloggen als Benutzer
  • Prüfung, ob in der Mounttabelle das Homeverzeichnis mit encryptfs angezeigt wird
  • Rückkopieren der Daten ins Homeverzeichnis
  • Aufräumen
  • Fertig

Klingt alles nicht aufregend und sollte somit in wenigen Schritten erledigt sein. Wir werden sehen….


Als Benutzer ausloggen

  Wir loggen uns aus (KDE, Gnome oder sonstige Desktopmanager beenden bzw. init 3 starten) und wechseln vom Loginmanager mit STRG-ALT-F2 auf eine Konsole (tty). Dort loggen wir uns als Benutzer root ein. Ja, root. Natürlich bin ich kein Fan davon, als root zu arbeiten. Aber in diesem Fall würde ich mal eine Ausnahme machen. Eine andere Möglichkeit: Man loggt sich auf der Konsole als ein anderer Benutzer ein, als der, den man umstellen will und arbeitet mit sudo. Muss jeder selber entscheiden.


Daten aus dem Homeverzeichnis sichern

  Sicher gibt es verschiedene Wege, sein Verzeichnis gut und richtig zu sichern: rsync, Backupsoftware, kopieren usw. Ich wähle die für mich sinnvollste Variante mit rsync. Schnell und einfach kann man hiermit zwischen zwei Pfadangaben einen synchronen Datenabgleich herstellen.

In allen Beispielen wird $USERNAME angegeben. Dieser ist durch den gewünschten Benutzernamen zu ersetzen.

Damit der Kopiervorgang die eigenen Daten nicht unverschlüsselt irgendwo abspeichert kann man diese z.B. in einem Truecrypt Container „zwischenlagern“. Wie mit Truecrypt Container angelegt und genutzt werden habe ich schon einmal erläutert. Ich gehe der Einfachheit halber hier von einem Pfad aus, der vertrauenswürdig ist:

Linuxrechner ~ # rsync -av /home/$USERNAME /pfad/wohin/
(Sichert mit rsync das Homeverzeichnis nach /pfad/wohin/. Die Pfadangabe muss auf die eigenen Verhältnisse angepasst werden.)

Hat man aktuelle Backups und weiß, dass man seine Daten wiederherstellen kann, kann man auf den obigen Vorgang auch verzichten. Aber sicher ist sicher.
Hilfreich ist es auch, sich mit du -sh /home/$USERNAME die Speichernutzung anzusehen. Gleiches kann man mit dem Zielpfad machen.


Benutzer löschen und neu anlegen

  Nun geht es ans „Eingemachte“. Soll heißen, wir löschen das Homeverzeichnis von Benutzer $USERNAME. ALLE Daten im Homeverzeichnis gehen nun ins Datennirvana und sind weg. Also ruhig noch einmal kurz darüber nachdenken, ob man mit seinem Backup wirklich alles richtig gemacht hat….

Linuxrechner ~ # deluser –remove-home $USERNAME
(Der Benutzer wird inkl. seinem Homeverzeichnis /home/$USERNAME gelöscht.)
(Hinweis: Leider schlecht lesbar, es handelt sich vor remove um ein Doppel-Minus.)

Nun legen wir den Benutzer neu an. Das Homeverzeichnis wird automatisch mit angelegt. Bei der Abfrage nach vollständigem Benutzernamen, Raumnummer, Telefon usw. kann man ruhig Lücken lassen und muss nicht alles vollständig eingeben. Wichtig ist bei der Abfrage die Eingabe eines guten User-Passwortes (siehe auch weiter unten über die richtige Passwortwahl). Mit Hilfe des User-Passwortes wird eine Passphrase erstellt, diese verschlüsselt die Daten im System. Also unbedingt ein sicheres Passwort eingeben.

Linuxrechner ~ # adduser –encrypt-home $USERNAME
(Der Benutzer $USERNAME wird inkl. seinem Homeverzeichnis /home/$USERNAME wird neu angelegt.)
(Hinweis: Leider schlecht lesbar, es handelt sich vor adduser um ein Doppel-Minus.)

Die bei dem neu anlegen ausgegebene Passphrase sollte man sich an einem sicheren Ort speichern. Also mit GnuPG verschlüsseln oder in einer verschlüsselten eMail oder in einem verschlüsselten Truecrypt-Container. Hauptsache, sicher und verschlüsselt.


erstes einloggen

  Nachdem nun der Benutzer gelöscht und neu angelegt wurde können wir uns erstmals wieder als „normaler“ Benutzer einloggen. Wir bleiben auf der Konsole und loggen uns natürlich noch nicht in die grafische Oberfläche KDE, Gnome, Windowmaker & Co. ein.
Sind wir eingeloggt, prüfen wir die Nutzung seines Homeverzeichnisses mit ecryptfs:

Linuxrechner ~ # mount | grep $USERNAME

/home/$USERNAME/.Private on /home/$USERNAME type ecryptfs ecryptfs_sig=1234567,ecryptfs_fnek_sig=a1b2c3d4e5,ecryptfs_cipher=aes,ecryptfs_key_bytes=16,ecryptfs_unlink_sigs)

(Die Ausgabe zeigt, dass das Homeverzeichnis mit Typ ecryptfs nach /home/$USERNAME gemountet wurde.)

Nun können wir die Daten wieder zurück ins Homeverzeichnis kopieren.


Daten zurück kopieren

  Wir kopieren nun alle vorher unter /pfad/wohin gesicherten Daten wieder zurück ins Homeverzeichnis /home/$USERNAME. Wie vorhin schon mit rsync, nun jedoch mit umgekehrter Pfadangabe:

Linuxrechner ~ # rsync -av /pfad/wohin/ /home/$USERNAME/
(Die Pfadangabe muss auf die eigenen Verhältnisse angepasst werden.)

Das Kopieren nimmt nun ein paar Minuten in Anspruch. Der rsync Prozess läuft durch und sollte keinerlei Fehlermeldungen aufzeigen. Sind alle Daten kopiert kann man sich wieder ausloggen, mit STRG-ALT-F7 auf den Loginmanager wechseln und sich wieder in die grafische Oberfläche einloggen.
Alle Daten sind vorhanden, alles ist wie vorher verlassen. Bingo 😉


Passwortwahl

  Eine Verschlüsselung, egal mit wieviel Bit diese durchgeführt wurde, kann nur gut sein, wenn ein entsprechend sicheres Passwort gewählt wurde! Hier stehen sich dann allerdings zwei Dinge gegenüber: Sicherheit versus Bedienbarkeit. Wenn ein Passwort leicht zu erraten, kurz und nicht besonders einfallsreich ist, bringt die Verschlüsselung wenig. Umgekehrt kommt man zu einem anderen Problem: Man muss sich das Passwort noch merken und eingeben können.
Zwei unterschiedliche Interessen, die sich somit gegenüber stehen. Hier hilft es, eine Abwägung zu treffen und ein gutes Mittelmaß zu wählen. Ein Passwort, bestehend aus mind. 10 Zeichen, Ziffern und Buchstaben. Zusätzlich noch Groß- und Kleinschreibung sollte man sich noch merken und eingeben können.
Für das Homeverzeichnis sollte es reichen.


Folgen der Verschlüsselung

  Selbstverständlich hat die Umstellung Folgen. Bisher hat man mit einer Boot-CD, Live-CD, System-on-USB oder den Ausbau der Festplatte und Anschluss an einen anderen Rechner sehr einfach auf die unverschlüsselten Daten zugreifen können. Das geht nun natürlich nicht mehr (war ja auch das Ziel, was erreicht werden sollte 😉 ). Nur noch die unverschlüsselten Daten (also die Betriebssystemdaten, die nicht verschlüsselten Homeverzeichnisse usw.) sind über diesen Mechanismus auslesbar.
Über den Mechanismus, seine Passphrase und das Passwort zu besitzen kann man das verschlüsselte Verzeichnis ebenfalls wieder auslesen.


Sicherung der Passphrase

  Ubuntu ist mittlerweile sehr fortschrittlich. Nach dem Einloggen in die Standard-GUI Gnome bringt ein Hinweisfenster hervor, dass man die Passphrase bitte unbedingt sichern sollte. Das kann man entweder über den vorgeschlagenen Weg gehen, klickt auf den Button, es öffnet sich ein Terminalfenster, man gibt sein Passwort ein und erhält in dem Fenster die Passphrase ausgegeben. Selbstverständlich kann man es auch auf der Konsole machen:

Linuxrechner ~ # ecryptfs-unwrap-passphrase ~/.ecryptfs/wrapped-passphrase
(Auch hier muss das Passwort eingegeben werden, die Passphrase wird ausgegeben.)

Diese Passphrase sollte man sich unbedingt an einem sicheren Platz speichern. Hierdrüber lässt sich nachträglich über z.B. eine Live-CD das Homeverzeichnis unter Eingabe des Passwortes wieder entschlüsseln.


Umgang mit seinem entschlüsselten Homeverzeichnis

  Die Verschlüsselung hilft natürlich nur so lange, wie das Home-Verzeichnis noch nicht gemountet ist. Sobald dieses gemountet ist, besteht selbstverständlich Zugriff auf die Daten. Diese sind dann unverschlüsselt gemountet. Und jeder Benutzer mit Zugriff auf das Homeverzeichnis kann die Daten im Klartext einsehen! Das sollte man also immer im Hinterkopf behalten und bei dem Umgang mit seinem Homeverzeichnis beachten.
Die Entschlüsselung im gemounteten Zustand hat natürlich gerade bei Laptops Folgen. Der wunderschöne und praktische Weg, seinen Rechner in den Schlaf- oder Ruhemodus zu versetzen lässt das Homeverzeichnis gemountet. Man sollte also immer dafür sorgen, dass man das Homeverzeichnis durch ausloggen wieder komplett unmountet und erst dann in den Ruhe/ Sleep Modus gehen.

Oder man muss sich wieder daran gewöhnen, dass ein Laptop auch durch Herunterfahren komplett ausgeschaltet werden kann. Aber dank SSD im Laptop ist der Bootvorgang ja auch in wenigen Sekunden erledigt 😉


Nacharbeiten

  Klappt nun alles wie erwartet und man hat seine Daten wieder an dem ursprünglichen Platz (nur, dass die nun im Homeverzeichnis verschüsselt sind), so kann man die Nacharbeit erledigen: Das Löschen der unverschlüsselten Daten, die man anfangs nach /pfad/wohin gesichert hat.
(Hatte man diese in einem verschlüsselten TrueCrypt Container oder auf einem verschlüsselten Laufwerk gesichert kann man sich diesen Schritt ersparen und muss ihn nur durchführen, wenn man den Platz braucht ;-))

Linuxrechner ~ # rm -rf /pfad/wohin
(Die gesicherten Daten aus seinem Homeverzeichnis wieder löschen.)

Nun sind alle Arbeiten erledigt. Das Homeverzeichnis ist nun verschlüsselt, die Passphrase wurde auf einem sicheren Medium zusätzlich gesichert, ein einigermaßen sicheres Passwort für den Login ist gewählt. Fertig.


Fazit

  Recht einfach in wenigen Schritten und sehr kurzer Zeit (abgesehen von der Dauer der Kopiervorgänge) ist das Homeverzeichnis verschlüsselt. Damit erhält man, vor allem bei mobilen Endgeräten, die Gewissheit, dass die „privaten“ Daten auch bei einem Abhandenkommen des Gerätes privat bleiben. Wichtige, sensible Daten sind natürlich zusätzlich noch zu verschlüsseln und möglichst mit einem Passwortschlüssel zu verschlüsseln, der extrem lang und kryptisch ist. Nur so hat man sichergestellt, dass bei einem Abhandenkommen (durch Schadsoftware wie Keylogger) des Benutzer-Passwortes nicht auch gleich der Schlüssel für die sensiblen Daten bekannt wird.

Der noch bessere Weg statt der Homeverzeichnis-Verschlüsselung wäre natürlich, wenn gleich das komplette Betriebssystem auf einer verschlüsselten Festplatte liegt und beim Booten das Passwort eingegeben werden muss. Damit hätte man alle Daten auf der Festplatte sicher verschlüsselt und muss sich weniger Sorgen um die sonstigen „Hinterlassenschaften“ in Konfigurationsdateien usw. machen.
Ich habe mich dazu entschieden, dass mir ein installiertes Betriebssystem nicht als verschlüsselungswürdig genug ist, dass ich diesen Aufwand betreibe. Die Konfigurationsdateien enthalten keine Geheimnisse, installierte Programme kann man überall herbekommen. Ob der Aufwand nötig ist, muss jeder selber entscheiden.


Links
http://ecryptfs.sourceforge.net/ecryptfs-faq.html
http://www.truecrypt.org


Disclaimer/ Haftungsausschluss

  Wie immer gilt: Jeder handelt eigenverantwortlich. Ich übernehme für keine Schäden, Probleme, Folgen oder sonstiges irgendwelche Gewähr. Mitdenken und überlegen, ob man alles richtig macht setze ich voraus.


Dieser Beitrag wurde unter Backup, Dokus und Tipps, Linux/ UNIX abgelegt und mit , , , , , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

8 Antworten zu Sein Home Verzeichnis unter Ubuntu Linux nachträglich verschlüsseln

  1. Pingback: Beliebteste Suchbegriffe » Sein Home Verzeichnis unter Ubuntu Linux nachträglich verschlüsseln

  2. apo sagt:

    Danke für den Artikel zum Thema. Die rsync Methode zum Sichern der Daten halte ich auch für sinnvoll. Ich denke, es genügt aber schon das Verzeichnis mit mv umzubenennen.

    Die komplette Festplattenverschlüsselung ist mit Debian/Ubuntu nicht sehr schwer. Wenn du die alternative Installation mit Ubuntu nutzt (der Debian installer) kannst du beim Partitionierungsschritt die Festplattenverschlüsselung mit LUKS auswählen. Damit hast du eine sehr große Sicherheit bei minimalem Aufwand.

  3. Luca sagt:

    @apo: rsync sichert im Vergleich zum einfachen Verschieben mit mv auch die Rechte an den Dateien. Wenn du beispielsweise mit dem Root-Benutzer dein home-Verzeichnis verschiebst, kann es sein, dass du dich beim nächsten Mal nicht mehr einloggen kannst. Da kann dein Benutzer dann nicht mehr auf essentielle Dateien zugreifen, weil der Besitzer zu „root“ geändert wurde.

  4. Ano sagt:

    Das alte Home Verzeichnis muss gelöscht werden, sonst klappt es nicht.

  5. M. sagt:

    Ist die Passphrase eigentlich an das Benutzerkennwort gebunden? Was passiert z.B. wenn man einmal das Benutzerkennwort ändert? Muss man dann die Passphrase neu sichern oder bleibt die gleich?

  6. mpman sagt:

    Was passiert, wenn ich in dem Verschlüsselten Home Ordner mir ein weiteres Verzeichnis mounte. Z.B. /home/user/ssh_mount . Werden die Daten die dann in das gemountete Verzeichnis kopiert werden auch verschlüsselt ?

    • rotzoll sagt:

      Was dort passiert? Nichts. Einzig die Dateien in deinem Home-Verzeichnis (und darin befindliche Verzeichnisse und Dateien) sind von der Verschlüsselung betroffen.

      Soll heißen: Deine Daten in deinem Home Verzeichnis sind (!nur) so lange verschlüsselt, wie du nicht eingeloggt bist. Sobald du eingeloggt bist, sind die Daten im Klartext im System. Lässt du also eine session laufen (z.B. mit screen) und loggst dich nicht aus, sind die Daten unverschlüsselt!

      Wenn du Daten verschlüsseln möchtest, so schau mal nach PGP. Einzelne Dateien kannst du ganz gut damit verschlüsseln. Oder Truecrypt. Damit kannst du dir Container anlegen, in denen Daten verschlüsselt vorliegen.

      Und immer dran denken: Sobald man die Daten nicht mehr benötigt, Container unmounten.

      Gruss,
      malte

  7. opinion_no9 sagt:

    deluser? Bloss nicht!
    Das geht alles viel einfacher und sicherer.

    Perfekt und generisch:

    https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/5/html/Installation_Guide/ch29s04.html

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert