Archiv/ecryptfs-utils

Archivierte Anleitung

Dieser Artikel wurde archiviert. Das bedeutet, dass er nicht mehr auf Richtigkeit überprüft oder anderweitig gepflegt wird. Der Inhalt wurde für keine aktuell unterstützte Ubuntu-Version getestet. Wenn du Gründe für eine Wiederherstellung siehst, melde dich bitte in der Diskussion zum Artikel. Bis dahin bleibt die Seite für weitere Änderungen gesperrt.


Anmerkung: Jetzt in ecryptfs und Unterartikeln zu finden

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

  1. ⚓︎ Installation von Programmen

  2. ⚓︎ Bearbeiten von Paketquellen

  3. ⚓︎ Ein Terminal öffnen

  4. ⚓︎ Ein Programm starten

  5. ⚓︎ Rechte für Dateien und Ordner ändern

  6. ⚓︎ Einen Editor nutzen

Hinweis:

Daten im "verschlüsselten" Bereich sind, sobald der jeweilige Benutzer sich eingeloggt hat, auch prinzipiell von anderen Nutzern oder Anwendungen lesbar. Falls dies nicht gewünscht ist, sind die Rechte entsprechend zu setzen.

Inhaltsverzeichnis
  1. Installation
    1. Einrichtung Verzeichnis Private
    2. Einrichtung Homeverzeichnis
      1. Installation mit Alternate-CD/DVD
      2. Installation mit Desktop-CD/DVD
      3. Frische Installation nachbearbeiten
      4. Zusätzlicher Benutzer
      5. Bestehendes Homeverzeichnis
    3. Wechsel Login-Passwort
  2. Nutzung
    1. Passphrase extern auslagern
    2. Manuelles Sperren/Öffnen des Verzeichnis...
    3. Mögliches Szenario
    4. Trash bereinigen
  3. Datenrettung
    1. Daten extern auslesen
      1. Integriertes Homeverzeichnis
      2. Separates Homeverzeichnis
      3. Benutzer aktivieren
      4. Benutzer deaktivieren
    2. Daten wieder herstellen
      1. Datenzugriff vorbereiten
      2. Systempfade der Schlüsseldateien
      3. Überprüfung der Schlüsseldateien
      4. Schlüsseldateien reparieren
  4. Deinstallation
    1. Verzeichnis Private entfernen
    2. Homeverzeichnis uncodiert
      1. Vorbereitungen
      2. Verschlüsselung entfernen
    3. Basis-Programme entfernen
  5. Probleme behandeln
    1. Ordner wird beim Einloggen nicht (mehr) ...
    2. Fehlermeldung SWAP beim Booten
    3. Keine Initialisierung
  6. Links

ecryptfs-utils 🇬🇧 bietet eine sehr einfache Möglichkeit einen einzelnen Ordner (~/Private) innerhalb vom Homeverzeichnis, ab Jaunty Jackalope das gesamte Homeverzeichnis eines Benutzers zu verschlüsseln. Die Ent- bzw. Verschlüsselung geschieht dabei automatisch beim Ein-/Ausloggen des Benutzers. Da beide Varianten aber unterschiedliche Vorgehensweisen erfordern, wird die Einrichtung hier getrennt beschrieben.

Achtung!

Bitte vorab die Hinweise unter Änderung Login-Passwort lesen!

Installation

Konnte die Option ecryptfs-utils nicht schon bei der Installation ausgewählt, so muss das folgende Paket installiert werden [1]:

Befehl zum Installieren der Pakete:

sudo apt-get install ecryptfs-utils 

Oder mit apturl installieren, Link: apt://ecryptfs-utils

Sofern die Einrichtung einer verschlüsselten Swap nicht bereits bei der Installation erfolgte (ab Karmic Koala per Default), so kann man dieses wie unter Teilverschlüsselung beschrieben einrichten.

Möchte man andere Grade der Verschlüsselung anwenden, so sind die "Experten-Info" bei LUKS zu beachten.

Einrichtung Verzeichnis Private

Jeder Benutzer kann nach der Installation einfach sein privates verschlüsseltes Verzeichnis einrichten, dazu führt man als Benutzer (nicht als Root) den folgenden Befehl in einem Terminal [2] aus:

ecryptfs-setup-private 

Dabei wird das Benutzerpasswort und ein Verschlüsselungs-Passwort abgefragt. Wird kein Verschlüsselungs-Passwort angegeben, so generiert das Programm ein Passwort.

Sollte das Verzeichnis ~/Private bzw. die versteckten Verzeichnisse ~/.ecryptfs oder ~/.Private bereits existieren, bricht die Einrichtung mit entsprechendem Hinweis ab, selbst wenn das Verzeichnis leer ist. Danach sollte man den Befehl wiederholen und zwar mit

ecryptfs-setup-private --force 

Hinweis:

Das Verschlüsselungs-Passwort bitte unbedingt sicher aufbewahren, dies ist die einzige Möglichkeit wieder an die Daten heran zu kommen, falls das System "beschädigt" wurde! Es wird empfohlen, alle Dateien aus dem relevanten Schlüssel-Verzeichnis extern zu sichern (siehe hierzu auch Systempfade der Schlüsseldateien).

Anschließend muss man sich neu einloggen und findet das Verzeichnis ~/Private vor. Dieses wird von nun an bei jedem Einloggen des Nutzers entschlüsselt, und beim Ausloggen wieder verschlüsselt.

Einrichtung Homeverzeichnis

Ab Jaunty Jackalope besteht die Möglichkeit, ein verschlüsseltes Homeverzeichnis gleich bei der Installation anzulegen.

Achtung!

Ab Karmic Koala wird gleich eine verschlüsselte Swap-Partition eingerichtet, sofern man bei der Installation diese angelegt hat. Diese verschlüsselte Swap-Partition ist für andere Linux-Systeme unbrauchbar. Bei Rechnern mit mehreren Linux-Distributionen muss man ggf. eine weitere offene Swap-Partition einrichten oder die anderen Systeme auf die verschlüsselte Swap umstellen.

Installation mit Alternate-CD/DVD

Um ein verschlüsseltes Homeverzeichnis von Anfang an zu erhalten, sollte man unter Jaunty die Alternate-CD/DVD benutzen oder die Installation über Downloads/Netzwerkinstallation ausführen, da man bei dieser Art der Installation dieses Feature gleich direkt auswählen kann. Danach steht für den ersten Benutzer, also den der bei der Installation direkt angelegt wird, gleich ein verschlüsseltes Homeverzeichnis zur Verfügung.

Installation mit Desktop-CD/DVD

Experten-Info:

Dieser Hinweis ist bei Jaunty Jackalope nur für Ubuntu-Desktop und XFCE-Desktop anwendbar, ab Karmic auch für Kubuntu-Desktop.

Um diese Möglichkeit auch bei einer Installation mit einer Desktop-CD nutzen zu können, muss man dieses beim Start gezielt anfordern. Dazu ruft man mit F6 im Startmenü die Eingabezeile auf (löscht mit Esc die eingeblendeten Vorgaben) und gibt am Ende der Zeile zusätzlich user-setup/encrypt-home=true vor den -- mit Leerzeichen ein , dann wird dieses beim Desktop-Installer gleich mit angeboten.

Frische Installation nachbearbeiten

Bei allen anderen Installation mit einer Desktop-CD bzw. -DVD oder wenn man obigen Hinweis nicht umsetzen konnte, muss man die Installation nachbearbeiten.

Hinweis:

Bei einer "frischen Installation" sollte man diese erst einmal überprüfen, ob alles einwandfrei startet (Grafikkarte, Netzwerk und was sonst noch schief laufen kann), bevor man nun anfängt, Weiteres zu verändern/hinzuzufügen.

Überall wo nachfolgend <Benutzername> steht, ist der relevante Benutzername einzusetzen

Nachfolgende Prozedur löscht alle Dateien und Einstellungen des entsprechenden Anwenders. Bei einem frischen System ist das natürlich unproblematisch. Man ruft das System im Recovery Modus auf, wählt "root" um eine root-Konsole zu starten und gibt dort ein:

deluser --remove-home <Benutzername>
adduser --encrypt-home <Benutzername> 

Die Abfrage nach dem Passwort ist nun neu einzugeben - die restlichen Fragen nach Name usw. kann auch später noch nachgeholt werden. Ist dieser Benutzer auch derjenige, der administrative Tätigkeiten (sudo) durchführen soll, so muß diesem dieses Recht wieder zugewiesen werden:

adduser <Benutzername> admin 

Nun kann man mit Strg + D in das das Auswahlmenü zurück, und via "resume" zum Einloggen weitergehen. Nach dem Einloggen als Benutzer kann mit dem Befehl "startx" die grafische Oberfläche gestartet werden.

Zusätzlicher Benutzer

Für jeden zusätzlichen Benutzer kann man mit Root-Rechten im Terminal [3] ein neues, verschlüsseltes Homeverzeichnis anlegen:

sudo adduser --encrypt-home <Benutzername> 

Hinweis:

Ab Lucid Lynx (10.04 LTS) kann das über die Menü-Option erfolgen:
GNOME-Dektop = "System → Systemverwaltung → Benutzer und Gruppen"

Bestehendes Homeverzeichnis

Bei einer bestehenden Installation gestaltet sich die "Umwandlung" in ein verschlüsseltes Homeverzeichnis etwas komplexer, aber stellt sich auch für einen ungeübten Nutzer als durchaus machbar dar.

Hinweis:

Vorab ein Backup vom Homeverzeichnis anfertigen! Es ist angeraten, auch gleich Bleistift und Papier für die Systemausgaben bereit zu legen. Der Ablauf sieht dabei wie folgt aus (bitte die Reihenfolge einhalten).

Man startet das System im Recovery Modus, wählt im Auswahlmenü "root" um eine root-Konsole zu starten und gibt dort ein:

Vorbereitungen

Zuerst muss die Datei /etc/adduser.conf angepasst werden. Diese Datei gibt u.a. die Inhalte vor, die kopiert / übernommen werden sollen. Dazu ruft man diese Datei mit einem Editor auf [6] (am einfachsten ist Nano) und kommentiert die vorhandene Zeile mit

SKEL=/etc/skel

durch Voransetzen von # aus und schreibt direkt darunter

SKEL=/home/backup

Danach die Datei sichern.

Homeverzeichnis umstellen

Man gibt jetzt nacheinander nachfolgende Befehle ein und achte auf die Rückmeldungen aus dem System (Rückmeldung zum Schlüssel bitte notieren - siehe Hinweis oben).

deluser <Benutzername>
mv /home/<Benutzername> /home/backup
adduser --encrypt-home <Benutzername>
adduser <Benutzername> admin
rm -rf /home/backup 

und stellt in /etc/adduser.conf den alten Zustand mittels Editor wieder her (siehe oben!). Man kehrt mit Strg + D in den Auswahldialog des Recovery Modus zurück und startet das System nun via "resume". Nach dem Einloggen als Benutzer kann mit dem Befehl "startx" die grafische Oberfläche gestartet werden. Es sollte nun das Homeverzeichnis verschlüsselt - für den Nutzer les- und bearbeitbar sein.

Experten-Info:

Es kann vorkommen, dass Programme noch vor dem Einloggen bzw. gleich danach auf das Homeverzeichnis zugreifen wollen, aber weil die Dekodierung noch nicht abgeschlossen ist, einen Fehler melden. Dieses muss man gezielt behandeln und ggf. in den /etc/init.d/-Dateien die Startsequenz verändern oder die Programme aus den Diensten heraus nehmen bzw. neu orientieren!

Um das Volumen für die Codierung/Decodierung in Grenzen zu halten, sollte man auf Folgendes achten: Symbolische Links wirken nur von außen nach innen, d.h. Daten, die im codierbaren Bereichen liegen, können von außen mit einem symbolischen Link aufgerufen werden und werden codiert, Daten die außerhalb liegen und mit symbolischen Links vom inneren Bereich angesprochen werden, werden nicht codiert. Mit diesem Wissen kann man nun dafür sorgen, das Daten, die nicht unbedingt codiert werden müssen oder ein sehr großes Volumen darstellen (z.B. ISO's, Videos), via symbolischen Link nach außerhalb zu verlegen und somit die Rechenarbeit (-zeit) zu verringern.

Wechsel Login-Passwort

Soll das bestehende Login-Passwort eines Benutzers gewechselt werden, so ist es zwingend erforderlich, zeitnah auch die Datei .ecryptfs/wrapped-passphrase anzupassen. Damit dieses auch richtig ausgeführt wird, muss die Änderung des Login-Passwortes, nach dem Anmelden durch den Benutzer, von diesem selbst beim Ubuntu-Desktop über die Menü-Funktion:

beim Kubuntu-Desktop über die Funktion:

ausgeführt werden. Nach dem Aufrufen wird dort zur Legitimation das alte Login-Passwort eingegeben und danach dann das neue Login-Passwort (zweimal) eingegeben.

Nach dem erfolgreichen Wechsel des Login-Passwortes (Akzeptanz wird angezeigt) sollte man sich abmelden und erneut einloggen.

Nutzung

Die Verschlüsselung läuft transparent, das Verzeichnis wird beim Einloggen automatisch entschlüsselt und beim Ausloggen wieder verschlüsselt. In vielen Fällen reicht das für die Nutzung schon aus.

Hinweis:

Bei automatischen Login ist eine direkte Nutzung des Verzeichnisses nicht möglich, weil sonst der Aspekt der Daten-Sicherheit unterlaufen würde.

Um die Daten nach einem automatischen Login zugänglich zu machen, muss man das Homeverzeichnis des Benutzers oder das Verzeichnis ~/Private öffnen und auf die Datei Access Your Private Data klicken. Es öffnet sich daraufhin ein Terminal, in das man das Login-Passwort eingeben kann. Nach Schließen des Terminals und des Verzeichnisses sind die Daten wie oben beschrieben zugänglich.

Passphrase extern auslagern

Es ist grundsätzlich möglich, die Passphrase und zugehörige Dateien getrennt auf ein externes Medium (USB-Stick, Smartcard oder ähnlichen Medien) zu verlagern. Wichtig dabei ist nur, dass dieses Speichermedium beim Booten eingesteckt/verbunden ist, vom System erkannt wird und in der /etc/fstab eingetragen wurde z.B.:

UUID=xxxx /var/lib/ecryptfs ext2 defaults 0  0

Hinweise zum korrekten Pfad siehe Systempfade der Schlüsseldateien

Wurden die Benutzerdaten nun auf diesem Speichermedium abgelegt (durch Verschieben der jeweiligen Nutzerdaten), werden sie nun von dort beim Einloggen abgefragt.

Manuelles Sperren/Öffnen des Verzeichnis

Will man das Verzeichnis sperren, während man eingeloggt ist, kann man dies mit dem Befehl [3] erreichen.

ecryptfs-umount-private 

Umgekehrt kann man das Verzeichnis auch wieder manuell entschlüsseln

ecryptfs-mount-private 

Alternativ kann man sich diese Befehle auch auf einen "Starter" legen oder in ein Skript einfügen.

Mögliches Szenario

SSH-Keys oder GnuPG-Keys sollte man möglichst sicher aufbewahren, damit diese nicht in die falschen Hände geraten. Um dies zu verhindern, sollte man diese verschlüsselt auf der Festplatte ablegen. Dazu kann man die Festplatte komplett verschlüsseln, hat aber dann den Nachteil, dass sämtliche Schreib- und Lesezugriffe auf die Festplatte erstmal ver-/entschlüsselt werden müssen. Dies kann für manche Anwendungen einen massiven Geschwindigkeitsverlust bedeuten.

Mit verschlüsselten Verzeichnissen kann man diese Schlüssel alle in sein ~/Private verschieben. SSH sucht aber nach dem Schlüssel in ~/.ssh Dort kann man dann einfach einen Link ablegen.

Beispiel:

mv ~/.ssh/ ~/Private/
ln -s ~/Private/.ssh ~/.ssh  

Trash bereinigen

Dieser Hinweis gilt nur für das Verzeichnis ~/Private:

Will man Daten aus dem Verzeichnis ~/Private löschen, so muss man die Funktion "Löschen" im Kontext-Menü (rechte Maustaste-Klick auf dem zu löschenden Objekt) des eingesetzten Datei-Browsers wählen. Das Löschen mittels Kontext-Menü und der Option In den Müll verschieben belässt die Daten im versteckten Verzeichnis ~/Private/.Trash-<User-ID>, so dass sich derart gelöschte Dateien mit der Zeit ansammeln und ggf. zu Speicherplatz-Problemen führen können. Ist diese Funktion bei den relevanten Datei-Browsern nicht aktiviert, so kann man das einstellen - Informationen geben die jeweilige WIKI-Seite.

Achtung!

Dieses ist kein Fehler im Programm, sondern so vorgesehen, damit keine Daten nach außerhalb des Verzeichnisses gelangen.

Datenrettung

Daten extern auslesen

Sollte das System nicht mehr bis zum Desktop gelangen, so startet man mit einem Live-System (CD/DVD bzw. USB-Stick) gleicher Architektur (i386 bzw. amd64) - vorzugsweise mit Version Jaunty (>= 9.04). Will man den Zugriff über einen Dateimanager ausführen, so muss auch die Desktop-Version (GNOME, KDE bzw XFCE) berücksichtigt werden.

Achtung!

Ist die Partition mit dem Verzeichnis ~/.Private so defekt, dass diese wie nachfolgend beschrieben nicht mehr einzubinden ist, so muss man davon ausgehen, das die Daten mit einfachen Mitteln nicht mehr zu retten sind.

Man öffnet am Desktop ein Terminal [3] und bindet das "beschädigte" System in das Ubuntu-Live-System ein.

Integriertes Homeverzeichnis

Befindet sich das Verzeichnis /home/<Benutzername> auf der selben Partition wie das Wurzelverzeichnis (nachfolgend wird als Beispiel /dev/sda1 angenommen), dann gibt man ein:

ubuntu@ubuntu:~$ sudo mount /dev/sda1 /mnt 

Separates Homeverzeichnis

Befindet sich das Verzeichnis /<Benutzername> auf einer vom Wurzelverzeichnis getrennten Partition (als Beispiel root = /dev/sda1, home = /dev/sda5 ), so muss das System beginnend mit root ( / ) in der richtigen Reihenfolge vorab aufgebaut werden. Handelt es sich um ein Software-RAID oder vergleichbares System, so sind entsprechende Maßnahmen vorab zu ergreifen.

mit intakter Root-Partition

ubuntu@ubuntu:~$ sudo mount /dev/sda1 /mnt
ubuntu@ubuntu:~$ sudo mount /dev/sda5 /mnt/home 

Sollten noch andere Verzeichnisse (siehe /etc/fstab) erforderlich sein, so sind auch diese einzubinden.

Um die erforderlichen Kernel-Informationen für ecryptfs-utils vom Ubuntu-Live-System zu übertragen, wird in das Terminal eingegeben:

ubuntu@ubuntu:~$ sudo mount -o bind /dev  /mnt/dev
ubuntu@ubuntu:~$ sudo mount -o bind /proc /mnt/proc
ubuntu@ubuntu:~$ sudo mount -o bind /sys  /mnt/sys
ubuntu@ubuntu:~$ sudo mount -o bind /dev/shm  /mnt/dev/shm
ubuntu@ubuntu:~$ sudo chroot /mnt 

Weiter bei Benutzer aktivieren.

mit defekter Root-Partition

Für die Simulation der fehlenden Root-Partition sind folgende Schritte erforderlich:

ubuntu@ubuntu:~$ sudo mount /dev/sda5 /mnt 

Nun einen Nutzer mit <Benutzername> im Ubuntu-Live-System anlegen und diesem Root-Rechte geben, siehe dazu die Ausführungen unter: Datenzugriff vorbereiten. Anschließend löscht man den Inhalt des gerade angelegten home Verzeichnises und verlinkt es mit dem zu Rettenden.

ubuntu@ubuntu:~$ sudo rm -rf /home/<Benutzername>
ubuntu@ubuntu:~$ sudo ln -s /mnt/<Benutzername> /home/<Benutzername> 

Nun das Verzeichnis /var/lib/ecryptfs/<Benutzername> anlegen und die darin erforderlichen Dateien erstellen, siehe dazu die Ausführungen unter: Schlüsseldateien reparieren. Danach dauerhafte Rootrechte erwerben mit:

ubuntu@ubuntu:~$ sudo su
root@ubuntu:~$ 

Benutzer aktivieren

Man wechselt nun den Benutzer - dabei auf das Minus- und die Leer-Zeichen bei der Eingabe achten. Bei der Abfrage zum Passwort ist das <Login-Passwort> von <Benutzername> einzugeben. Die angezeigten Meldungen können ignoriert werden.

root@ubuntu:~$ su - <Benutzername> 

Mit den nächsten Eingaben logt man sich nun in sein "verschlüsseltes" Verzeichnis ein:

<Benutzername>@ubuntu:~$ ecryptfs-add-passphrase --fnek
Passphrase: < notierte Passphrase
<Benutzername>@ubuntu:~$ ecryptfs-mount-private 

Jetzt hat man Zugriff auf seine Daten, sowohl über den Dateimanager, als auch im Terminal, dazu noch folgende Eingabe

<Benutzername>@ubuntu:~$ cd ..
<Benutzername>@ubuntu:~$ cd <Benutzername> 

damit die Daten angezeigt, ausgelesen und auch extern gesichert werden können. Den Dateimanager aus dem Terminal heraus aufrufen., wenn man diesen direkt nutzen will.

Benutzer deaktivieren

Um keine Datenverluste zu erleiden, die eingebundenen Verzeichnisse richtig verlassen, dazu im Terminal eingeben:

<Benutzername>@ubuntu:~$ ecryptfs-umount-private
<Benutzername>@ubuntu:~$ exit
logout
root@ubuntu:~$ exit
ubuntu@ubuntu:~$ 

Achtung!

Ist das vorstehende nicht ohne Fehlermeldungen auszuführen, so sind aufgrund der Vielzahl der Möglichkeiten tieferes Basiswissen zu Linux und zu den aufgetretenen Fehlern erforderlich, die diese Beschreibung sprengen würde - wobei eine Wiederherstellung nicht grundsätzlich ausgeschlossen wird.

Daten wieder herstellen

Wenn das System nicht mehr starten will und die Dateien zur Verschlüsselung defekt sind oder fehlen, startet man mit einem Live-System (CD/DVD oder USB-Stick) - vorzugsweise mit Version Jaunty (>= 9.04), sowie mit gleicher Desktop-Version (GNOME, KDE bzw. XFCE) wie das defekte System. Zum Einbinden der relevanten Partition siehe die Ausführungen weiter oben unter Daten extern auslesen.

Datenzugriff vorbereiten

Für alle Varianten zuerst einen Benutzer im Ubuntu-Live-System mit adduser <Benutzername> anlegen:

ubuntu@ubuntu:~$ sudo adduser <Benutzername>
Geben Sie ein neues UNIX-Passwort ein: < Eingabe Login-Passwort >
Geben Sie ein neues UNIX-Passwort erneut ein: < Eingabe Login-Passwort >  

Die anderen Daten sind hier nicht relevant und können jeweils mit bestätigt werden. Nun sollte noch der Eintrag in die Gruppe admin mit:

ubuntu@ubuntu:~$ sudo adduser <Benutzername> admin  

vorgenommen werden.

Systempfade der Schlüsseldateien

Die für die Entschlüsselung erforderlichen Dateien befinden sich in einem für ecryptfs-utils reservierten Verzeichnis. Die Pfade dorthin unterscheiden sich abhängig vom gewählten Mount-Point (entsprechend voran setzen) und nach Variante:

Bei der Variante Einzelordner ~/Private :

/home/<Benutzername>/.ecryptfs

für die Variante verschlüsseltes Homeverzeichnis für Jaunty Jackalope :

/var/lib/ecryptfs/<Benutzername>

für die Variante verschlüsseltes Homeverzeichnis (bei Neuinstallation) Karmic Koala :

/home/.ecryptfs/<Benutzername>/.ecryptfs

Achtung!

Die beiden versteckten Verzeichnisse /home/<Benutzername>/.ecryptfs und /home/.ecryptfs/<Benutzername> unterscheiden sich grundlegend: Während im ersten "nur" die Schlüsseldaten liegen, sind im zweiten (bei Neuinstallation ab Karmic Koala) darin auch die verschlüsselten Daten des gesamten Home-Verzeichnisses des jeweiligen Nutzers gespeichert, falls dieser ein verschlüsseltes Home-Verzeichnis besitzt.

Bei allen Varianten sollten sich jeweils die folgenden Dateien befinden:

auto-mount  (Null-Byte Indikator-Datei)
auto-umount (Null-Byte Indikator-Datei)
Private.mnt (der relevante mount-point, in der Regel /home/<Benutzername>)
Private.sig (Hinweis auf Verschlüsselung von Ordnern und Files)
wrapped-passphrase (Verschlüsselungspasswort - encryptet)
.wrapped-passphrase.recorded (Null-Byte Indikator-Datei)

Überprüfung der Schlüsseldateien

Wenn man bei Prüfung erkennt, dass die Dateien nicht mehr brauchbar sind oder gar fehlen, so kann man diese reparieren. Dies setzt allerdings voraus, dass die Datei wrapped-passphrase entweder intakt ist, eine Kopie von ihr existiert oder das Passwort, mit dem der private Ordner bzw. das Home-Verzeichnis verschlüsselt wurde, bekannt sind. Ist alles dies nicht der Fall, ist eine Wiederherstellung der Daten nicht möglich. Die verschlüsselten Verzeichnisse können in diesem Fall nicht mehr entschlüsselt werden!

Um die Schlüsseldateien zu reparieren, wechselt man in das Verzeichnis .ecryptfs (siehe oben, nachfolgend wurde Variante zwei mit dem Mount-Point /mnt gewählt) und löscht vorab die relevante Datei, bevor man eine neue Datei erstellt. Die versteckte Datei .wrapped-passphrase.recorded kann man vernachlässigen.

Achtung!

Vor dem Löschen der Datei wrapped-passphrase muss unbedingt das Verschlüsselungspasswort ausgelesen und gesichert werden. Ohne dieses ist eine Entschlüsselung der Verzeichnisse unmöglich!

wrapped-passphrase auslesen

Zur Prüfung, ob das Verschlüsselungs-Passwort (nicht das Login-Passwort) stimmt und dieses unbeschädigt ist, kann man sich dieses mit dem folgenden Befehl anzeigen lassen.

Hinweis:

Bei dem Basis-System Intrepid Ibex (= 8.10) muss das Login-Passwort gleich im Klartext bei dem nachfolgenden Befehl mit eingegeben werden. Anschließend sollte man das Terminal mit history -c bereinigen, um unbefugtes Auslesen des Passwortes zu unterbinden.

Man wechselt in das Verzeichnis mit der Datei wrapped-passphrase (siehe oben) und gibt dort ein:

sudo ecryptfs-unwrap-passphrase  wrapped-passphrase [Intrepid Ibex siehe Hinweis]  

und schließt mit ab, die folgende Abfrage mit der Eingabe:

passphrase: < Eingabe Login-Passwort Benutzer >  

und abschließen. Danach dann den Schlüssel unbedingt notieren oder in eine Datei kopieren.

Schlüsseldateien reparieren

Falls es erforderlich wird, die Schlüsseldateien neu zu erstellen, so öffnet man ein Terminal [3] und bereitet die Eingabe wie folgt vor. Nachfolgend wurde als Beispielpfad /mnt/var/lib/ecryptfs genommen, dieser ist anzupassen (siehe oben)! Wichtig dabei, auf das Minuszeichen und die Leerzeichen bei der Eingabe des ersten Befehles achten !

ubuntu@ubuntu:~$ su - <Benutzername>
Passwort: < Login-Passwort von <Benutzername>
<Benutzername>@ubuntu:~$ sudo mkdir --parents --mode=777 /mnt/var/lib/ecryptfs/<Benutzername>
<Benutzername>@ubuntu:~$ cd /mnt/var/lib/ecryptfs/<Benutzername>
<Benutzername>@ubuntu:/mnt/var/lib/ecryptfs/<Benutzername>$ 

Man sollte das Terminal solange nicht verlassen, bis alle Dateien angelegt wurden. Mit dieser Maßnahme werden bei der Erstellung gleich die richtigen Rechte mit angelegt.

wrapped-passphrase erstellen

Ist das Verschlüsselungspasswort unbekannt, kann es (wie im Kapitel wrapped-passphrase auslesen beschrieben) aus einer intakten wrapped-passphrase-Datei ausgelesen werden. Ist es bekannt, kann die Datei wie folgt neu erstellt werden:

<Benutzername>@ubuntu:/mnt/var/lib/ecryptfs/<Benutzername>$ ecryptfs-wrap-passphrase wrapped-passphrase 

Die nachfolgenden Abfragen sind wie folgt zu beantworten (es erfolgt keine Anzeige, blinde Eingabe erforderlich):

Passphrase to wrap:  < Eingabe notierte Passphrase
Wrapping passphrase: < Eingabe Login-Passwort von <Benutzername> 

und schränkt die erforderlichen Zugriffs-Rechte dieser Datei ein mit:

<Benutzername>@ubuntu:/mnt/var/lib/ecryptfs/<Benutzername>$ chmod 700 wrapped-passphrase 
auto-mount erstellen

Man erstellt mit einem Editor [6], den man vom Terminal her aufruft, die leere Datei auto-mount und speichert diese ab. Danach den Editor wieder verlassen.

Alternativ kann die Datei auch mit folgendem Befehl erzeugt werden:

touch auto-mount 
auto-umount erstellen

Man erstellt mit einem Editor, den man vom Terminal her aufruft, die leere Datei auto-umount und speichert diese ab. Danach den Editor wieder verlassen.

Alternativ kann die Datei auch mit folgendem Befehl erzeugt werden:

touch auto-umount 
Private.mnt erstellen

Man erstellt mit einem Editor, den man vom Terminal her aufruft, die Datei Private.mnt und gibt dort ein:

/home/<Benutzername>

Dabei diese Zeile mit abschließen und danach abspeichern, den Editor wieder verlassen und schränkt die erforderlichen Zugriffs-Rechte dieser Datei ein mit:

<Benutzername>@ubuntu:/mnt/var/lib/ecryptfs/<Benutzername>$ chmod 700 Private.mnt 
Private.sig erstellen

Um die Daten für diese Datei zu erhalten, gibt man in das Terminal ein:

<Benutzername>@ubuntu:/mnt/var/lib/ecryptfs/<Benutzername>$ ecryptfs-add-passphrase --fnek
Passphrase: < Eingabe notierte Passphrase 

und erhält nun u.a. folgende Zeilen (hier beispielhaftes Ergebnis):

Inserted auth tok with sig [14140887552e0bec] into the user session keyring
Inserted auth tok with sig [de5d090606c60111] into the user session keyring

Man erstellt mit einem Editor, den man vom Terminal her aufruft, die Datei Private.sig, indem man die Schlüsselwerte zwischen den [ ] zeilenweise überträgt/kopiert, die Zeilen mit abschließt und abspeichert, den Editor wieder verlässt und schränkt die erforderlichen Zugriffs-Rechte dieser Datei ein mit:

<Benutzername>@ubuntu:/mnt/var/lib/ecryptfs/<Benutzername>$ chmod 700 Private.sig 

Bevor man das Terminal wieder verlässt, gibt man noch ein:

<Benutzername>@ubuntu:/mnt/var/lib/ecryptfs/<Benutzername>$ exit
logout
ubuntu@ubuntu:~$ 

Man sollte diese Daten jetzt auch extern sichern, versuchen, mit diesen Werten bei Daten extern auslesen weiter zu machen oder das System neu zu starten.

Deinstallation

Achtung!

Daran denken: wichtige Daten vorab aus dem Homeverzeichnis bzw. aus dem Verzeichnis ~/Private an einen anderen Ort sichern!

Verzeichnis Private entfernen

Um das Verzeichnis ~/Private zu löschen, führt man im Terminal [3] nacheinander folgende Befehle aus:

ecryptfs-umount-private
chmod 700 ~/Private
rm -rf ~/Private ~/.Private ~/.ecryptfs 

Homeverzeichnis uncodiert

Um das verschlüsselte Homeverzeichnis umzustellen (um unverschlüsselt zu arbeiten) muss man nachfolgende Schritte in der aufgeführten Reihenfolge ausführen.

Vorbereitungen

Der Benutzer muss sich einloggen und danach im Terminal [3] mit Root-Rechten seine Daten unverschlüsselt an eine andere Stelle kopieren:

cd /
sudo cp -a /home/<Benutzername> /home/backup 

Danach startet man das System im Recovery Modus neu, wechselt im "friendly-recovery" zum "root-prompt" und passt die Datei /etc/adduser.conf an, dazu ruft man diese Datei mit einem Editor auf [6] und kommentiert die vorhandene Zeile mit

SKEL=/etc/skel

durch Voransetzen von # aus und schreibt direkt darunter

SKEL=/home/backup

Danach die Datei sichern.

Verschlüsselung entfernen

Nun muss man nachfolgende Befehle eingeben, Reihenfolge einhalten!

deluser --remove-home <Benutzername>
adduser <Benutzername>
adduser <Benutzername> admin
rm -rf /home/backup
rm -f /home/<Benutzername>/.ecryptfs 

und stellt mit einem Editor den alten Zustand wieder her (siehe oben!). Man kehrt mit Strg + D in den friendly-recovery zurück und startet das System nun via resume durch - es sollte das Homeverzeichnis unverschlüsselt - für den Nutzer wieder les- und bearbeitbar sein.

Basis-Programme entfernen

Will man auch das Basispaket ecryptfs-utils endgültig entfernen, so sind in einem "Mehruser-System" erst obige Schritte von jedem Nutzer auszuführen, danach kann man im Terminal [3] mit

sudo apt-get remove ecryptfs-utils libecryptfs0 --purge 

die Anwendung deinstallieren.

Hinweis:

Sollte es nach dem Entfernen des Basis-Programmes zu Problemen beim Löschen der Verzeichnisse kommen, so kann man diese Verzeichnisse auch noch nachträglich im Recovery-Mode am Root-Prompt löschen.

Probleme behandeln

Ordner wird beim Einloggen nicht (mehr) automatisch gemountet

Eine mögliche Ursache für dieses Problem könnte sein, dass das Verschlüsselungspasswort nicht mehr im keyring des Benutzers vorhanden ist. Um es dort wieder einzutragen, kann folgender Befehl benutzt werden:

ecryptfs-insert-wrapped-passphrase-into-keyring ~/.ecryptfs/wrapped-passphrase <Login-Passwort> 

Dabei sind je nach System und Ubuntu-Version der Pfad zur Datei wrapped-passphrase anzupassen, siehe auch Systempfade der Schlüsseldateien

Fehlermeldung SWAP beim Booten

Es kann durch den Eintrag von cryptswap (verschlüsselte Swap-Partition) in der /etc/fstab beim Booten zu einer Fehlermeldung durch ein "timing-Problem" kommen.

Hinweis:

Man sollte dem Hinweis auf die Benutzung der angebotenen "recovery shell" nicht nachkommen, da damit der Bootvorgang nur unterbrochen wird, dass Problem als solches nicht gelöst wird!

Dieses ist unkritisch - nur sollte man anfangs prüfen, ob die Datei /dev/mapper/<meine_crypted_swap> richtig angelegt wurde. Unter GNOME-Desktop kann die einwandfreie Funktion mit dem Tool Palimpsest-Laufwerksverwaltung überprüft werden oder man gibt (bei den anderen Distributionen) im Terminal [3] ein:

sudo blkid /dev/mapper/<meine_crypted_swap> 

Die Ausgabe sollte in etwa so aussehen:

[sudo] password for laura: 
/dev/mapper/<meine_crypted_swap>: UUID="c82ad900-4fb0-4505-8612-557a884676b6" TYPE="swap" 

Die ausgegebene "UUID" ist zufällig und wechselt mit jeder Initialisierung!

Keine Initialisierung

Vor allem bei "leistungsschwachen" Rechnern kann es passieren, dass die verschlüsselte Swap beim Booten nicht initialisiert wurde. Dann sollte man die /etc/rc.local mit Rootrechten bearbeiten und folgendes vor exit0 eintragen:

blkid /dev/mapper/<meine_crypted_swap>  > /dev/null || /etc/init.d/cryptdisks restart;