Einrichten
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Dieser Artikel ist mit keiner aktuell unterstützten Ubuntu-Version getestet! Bitte teste diesen Artikel für eine Ubuntu-Version, welche aktuell unterstützt wird. Dazu sind die Hinweise zum Testen von Artikeln zu beachten.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
Das Paket ecryptfs-utils bietet eine sehr einfache Möglichkeit
einen einzelnen Ordner (~/Private) innerhalb eines unverschlüsselten Homeverzeichnisses zu verschlüsseln. Die Ent- bzw. Verschlüsselung geschieht dabei automatisch beim Ein-/Ausloggen des Benutzers.
oder
das gesamte Homeverzeichnis eines Benutzers zu verschlüsseln. Die Entschlüsselung geschieht dabei automatisch beim Einloggen des Benutzers, die Verschlüsselung jedoch erst beim Herunterfahren des Rechners!
Installation¶
Die Einrichtung eines "verschlüsselten" Homeverzeichnisses kann schon als Option bei der Installation mittels
Alternate-CD/DVD
Netz-Installation
ausgewählt werden. Hat man sich hierbei für ein verschlüsseltes Homeverzeichnis entschieden und auch die Einrichtung einer Swap-Partition mit vorgegeben, so wird diese Swap-Partition gleich verschlüsselt angelegt.
Allgemeine Hinweise¶
Wurde die Option "verschlüsseltes" Homeverzeichnis nicht schon bei der Installation ausgewählt, so muss das Paket ecryptfs-utils installiert werden[1]:
ecryptfs-utils (universe)
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, kann man dieses wie unter Teilverschlüsselung beschrieben einrichten.
Möchte man von den bei der oben erwähnten Standard-Installation abweichende Stärken der Verschlüsselung anwenden, so sind die "Experten-Info" unter LUKS zu beachten und die Datei /etc/crypttab entsprechend anzupassen.
Einrichtung Verzeichnis Private¶
Jeder Benutzer kann nach einer "normalen" Installation einfach ein 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 Login-Passwort vom Benutzer und die Passphrase zur Verschlüsselung abgefragt. Wird keine Passphrase angegeben, so generiert das Programm einen Zufallswert als Passphrase (dieses ist einem eigenen Schlüssel vorzuziehen).
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
Achtung!
Die Passphrase bitte danach auslesen (siehe Passphrase auslesen) und unbedingt sicher aufbewahren, dies ist die einzige Möglichkeit, wieder an die Daten 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.
Homeverzeichnis umstellen¶
Bei allen Installation, wenn man die entsprechenden Hinweise nicht umsetzen konnte (oder übersehen hatte), kann man eine fertige Installation auf ein verschlüsseltes Homeverzeichnis umstellen. Dabei werden aber alle Daten gelöscht! (Eine Methode zum migrieren bestehender Home-Verzeichnisse steht weiter unten)
Hinweis:
Bei einer "frischen Installation" sollte man diese erst einmal überprüfen, ob alles einwandfrei startet (Grafikkarte, Netzwerk und was sonst noch geprüft werden sollte), bevor man nun anfängt, spezielle Benutzerdaten zu verändern/hinzuzufügen.
Überall wo nachfolgend <Benutzername>
steht, ist der relevante Benutzername (ohne die Klammern) einzusetzen
Achtung!
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 im Auswahldialog ("friendly recovery"] die Option "root" um eine Root-Konsole zu starten. Als erstes sollte man sich für ein späteres Auslesen die Datei /etc/group in ein Backup kopieren mit:
cp -f /etc/group /etc/group.bak
Hinweis:
Ab Ubuntu 12.04 wird bei der Option "root" das Dateisystem nur lesend eingehängt. Siehe dazu die Hinweis-Box unter "Ab Ubuntu 12.04" im Artikel Recovery Modus (Abschnitt „In-den-Recovery-Modus-booten“)
oder die bestehenden Zuordnungen zu Benutzer und Gruppen zum Notieren anzeigen lassen. Diese Daten erhält man mit:
grep <Benutzername> /etc/group
Dann gibt man 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 eingegeben werden. Ist dieser Benutzer auch derjenige, der administrative Tätigkeiten (sudo) durchführen soll, so muss diesem Nutzer dieses spezielle Recht [3] schon hier zugewiesen werden:
adduser <Benutzername> sudo
Mit
Strg +
D kehrt man in das das Auswahlmenü zurück, und kann über die Option "resume" zum Einloggen weitergehen. Nach dem Einloggen als Benutzer kann mit dem Befehl startx
die grafische Oberfläche gestartet werden. Die alten Zuordnungen (siehe oben und ggf. weitere) werden am Desktop über die Eingabemaske "Benutzer und Gruppen" eingetragen.
Zusätzlicher Benutzer¶
Für jeden zusätzlichen Benutzer kann man mit Root-Rechten [3] im Terminal [2] ein neues, verschlüsseltes Homeverzeichnis anlegen:
sudo adduser --encrypt-home <Benutzername>
Hinweis:
Das sollte vorzugsweise über die Menü-Option erfolgen:
GNOME-Dektop = "System → Systemverwaltung → Benutzer und Gruppen"
KDE-Desktop = "Systemeinstellungen → Benutzerverwaltung → Benutzerkonten / Gruppen"
Auch bei den anderen Desktop-Varianten sind vergleichbare Einstellmöglichkeiten gegeben, doch können je nach Version und Übersetzung die Bezeichnung(en) abweichen.
Altes Homeverzeichnis verschlüsseln¶
Bei einer bereits länger bestehenden Installation gestaltet sich die "Umwandlung" in ein verschlüsseltes Homeverzeichnis etwas komplexer, ist aber auch für einen "ungeübten" Nutzer machbar.
Hinweis:
Vorab gilt zu beachten:
Falls die Option zum automatischen Login ausgewählt oder eine Gastsitzung eingerichtet wurde, sollte man beides unter Benutzer und Gruppen entfernen.
Man sollte vorab ein Backup vom Homeverzeichnis anfertigen!
Es muss ausreichender Platz auf dem Datenträger / Partition vorhanden sein, weil das Homeverzeichnis bei dem Vorgang auch kopiert wird!
Je nach Größe des Homeverzeichnisses kann der Vorgang einige Zeit dauern (hardwareabhängig).
Es ist angeraten, auch gleich Vorkehrungen für das Notieren der Systemausgaben zu treffen. Beim folgend beschriebenen Ablauf bitte die Reihenfolge einhalten!
Vorbereitungen¶
Als erstes sollte man sicherstellen, das neben dem umzustellenden Benutzer noch ein weiterer vorhanden ist, mit diesem muss man sich später anmelden.
Wenn kein weiterer Benutzer vorhanden sein sollte, muss man diesen mit folgendem Kommando anlegen:
sudo adduser <Weiterer_Benutzername> sudo adduser <Weiterer_Benutzername> sudo
Der Benutzername kann frei gewählt werden und wird nachher auch wieder entfernt. "sudo" ist eine Gruppe mit der man die Berechtigung erhält als Benutzer "root" zu agieren.
Nun muss man sich ausloggen und in ein globales Terminal wechseln.
Bei früheren Distributionen geht das durch: Strg + Alt + F1 und zurück kommt man mit Strg + Alt + F7 .
Bei Ubuntu 20.04 geht das oft mit anderen Funktionstasten: Strg + Alt + F3 und zurück mit Strg + Alt + F2
Welche Funktionstasten bei einer konkreten Installation den Wechsel in ein freies Terminal und wieder zurück bewirken, hängt von der konkreten Installation und der Anmeldesituation ab und muss ausprobiert werden.
Umstellung ausführen¶
Nun muss man sich mit dem neuen Benutzer <Weiterer_Benutzername> anmelden, danach wenn man dies gemacht hat, beendet man die grafische Oberfläche mit:
sudo systemctl stop display-manager
Dann verschlüsselt man das Home-Verzeichnis mit:
sudo ecryptfs-migrate-home -u <Umzustellender_Benutzername>
Als letztes muss man die grafische Oberfläche wieder starten,
sudo systemctl start display-manager
wieder mit z.B. Strg + Alt + F7 (alt) oder neuer Strg + Alt + F1 (Richtige Funktionstaste vorher ermitteln!) auf die grafische Oberfläche des Anmeldemanagers wechseln und sich als letztes mit dem eigenen Benutzernamen einloggen.
Deinstallation¶
Achtung!
Daran denken: wichtige Daten vorab aus dem Verzeichnis ~/Private bzw. aus dem unverschlüsselten Homeverzeichnis an einen anderen Ort sichern!
Verzeichnis Private entfernen¶
Um das Verzeichnis ~/Private zu löschen, führt man als angemeldeter Benutzer im Terminal [2] nacheinander folgende Befehle aus:
cd /home/<Benutzername> ecryptfs-umount-private chmod 700 ~/Private rm -rf ~/Private ~/.Private ~/.ecryptfs
Verschlüsselung des Homeverzeichnisses entfernen¶
Um die Verschlüsselung des Homeverzeichnisses zu entfernen und dieses auf ein fortan unverschlüsseltes Homeverzeichnis umzustellen, muss man nachfolgende Schritte in der aufgeführten Reihenfolge ausführen.
Hinweis:
Es muss für die folgende Maßnahme ausreichender Platz auf dem Ziel-Laufwerk vorhanden sein!
Vorbereitungen¶
Der Benutzer muss angemeldet sein. Dann in einem Terminal [2] mit Root-Rechten [3] die Daten unverschlüsselt an eine andere Stelle kopieren (nachfolgend wurde /home/backup gewählt):
cd / sudo mkdir /home/backup sudo rsync -ap /home/<Benutzername>/ /home/backup/
Danach startet man das System im Recovery Modus neu, und wählt im Auswahlmenü (friendly-recovery
) die Option "Zur root-Befehlszeile (Shell) wechseln". Nun hängt man zunächst die Systempartition mit Schreib- und Leserechten neu ein:
mount -o remount,rw /
Sollte das Homeverzeichnis eine eigene Partition sein, muss man diese ebenso einhängen:
mount /home/
Nun die Datei /etc/adduser.conf mit einem Konsolen-Editor [4] (z.B.: Nano) öffnen und darin die Zeile
SKEL=/etc/skel
durch Voransetzen von # auskommentieren. Direkt darunter fügt man folgende Zeile ein:
SKEL=/home/backup
Danach die Datei sichern.
Verschlüsselung entfernen¶
Zuerst wird der Nutzer mit bislang verschlüsseltem Homeverzeichnis gelöscht und anschließend neu angelegt:
deluser --remove-home <Benutzername> adduser <Benutzername>
Soll der Nutzer administrative Rechte erhalten, fügt man ihn der Administratorgruppe sudo
hinzu:
adduser <Benutzername> sudo
Wurde der Benutzer erfolgreich neu angelegt, können das Backupverzeichnis und das ehemals verschlüsselte Homeverzeichnis gelöscht werden:
rm -rf /home/backup rm -rf /home/.ecryptfs/<Benutzername>
Nun stellt man mit einem Editor [4] den alten Zustand der Datei /etc/adduser.conf wieder her (siehe oben!). Man kehrt mit
Strg +
D in das friendly-recovery
-Auswahlmenü zurück und startet das System nun via resume
. Nun sollte das Homeverzeichnis dem Nutzer unverschlüsselt zur Verfügung stehen. Es müssen nun noch die Einstellungen zu Benutzer und Gruppen überprüft werden.
Basis-Pakete 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 [2] mit
sudo apt-get purge ecryptfs-utils sudo apt-get autoremove --purge
die Anwendung deinstallieren.
Hinweis:
Sollte es nach dem Entfernen der Basis-Pakete 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.
Problembehebung¶
Benutzerverzeichnis beim Abmelden automatisch aushängen¶
Wie in der Übersicht beschrieben gibt es einen Bug 1734541, der mit einem Workaround 🇬🇧 behoben werden kann. Dazu muss man einen kleinen Eingriff mit erweiterten Rechten [5] vornehmen. In der Datei /etc/pam.d/common-session-noninteractive wird der Eintrag
session optional pam_ecryptfs.so unwrap
durch schlichtes Setzen eines # am Zeilenanfang auskommentiert und damit unwirksam.
# session optional pam_ecryptfs.so unwrap
bekanntes Problem mit dem Workaround¶
Bei einer Aktualisierung von PAM durch die Paketbetreuer werden diese nicht in das System übernommen. Man erhält u.a. die Meldung:
pam-auth-update: Local modifications to /etc/pam.d/common-*, not updating. pam-auth-update: Run pam-auth-update --force to override.
Führt man jedoch das vorgeschlagene sudo pam-auth-update --force
manuell aus, so ist die Änderung des Workarounds erneut vorzunehmen. Keinesfalls sollte man den Haken bei ecryptfs entfernen, weil dies nicht nur die nichtinteraktiven beträfe.
Links¶
ecryptfs Das Homeverzeichnis bzw. ein Verzeichnis darin verschlüsseln
Nutzung - wie man seine Daten bearbeiten und nutzen kann
Datenrettung - Struktur der Schlüsseldaten und Datenrettung