[[Vorlage(Getestet,bionic,)]] {{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] [:Terminal: Ein Terminal öffnen] [:Rechte: Rechte für Dateien und Ordner ändern] [:Editor:Einen Editor nutzen] [:mit_Root-Rechten_arbeiten:] Mit [:adduser:] bzw. [:deluser:] Benutzer bearbeiten }}} [[Inhaltsverzeichnis]] Das Paket '''ecryptfs-utils''' bietet eine sehr einfache Möglichkeit * einen einzelnen Ordner ('''~/Private''') innerhalb eines ''unverschlüsselten'' [:Homeverzeichnis: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]: {{{#!vorlage Paketinstallation ecryptfs-utils, universe }}} Sofern die Einrichtung einer verschlüsselten swap nicht bereits bei der Installation erfolgte, kann man dieses wie unter [:Vorbereitung_Teilverschlüsselung#Swap: 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#Erstellen: 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: {{{#!vorlage Befehl 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 {{{#!vorlage Befehl ecryptfs-setup-private --force }}} {{{#!vorlage Warnung Die Passphrase bitte danach auslesen (siehe [:ecryptfs/Datenrettung#wrapped-passphrase-auslesen: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 [:ecryptfs/Datenrettung#Systempfade-der-Schluesseldateien: 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) {{{#!vorlage 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 `` steht, ist der relevante Benutzername (ohne die Klammern) einzusetzen }}} {{{#!vorlage Warnung 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: {{{#!vorlage Befehl cp -f /etc/group /etc/group.bak }}} {{{#!vorlage 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#In-den-Recovery-Modus-booten:] }}} oder die bestehenden Zuordnungen zu [:Benutzer_und_Gruppen#Benutzer:Benutzer] und [:Benutzer_und_Gruppen#Gruppen:Gruppen] zum Notieren anzeigen lassen. Diese Daten erhält man mit: {{{#!vorlage Befehl grep /etc/group }}} Dann gibt man ein: {{{#!vorlage Befehl deluser --remove-home adduser --encrypt-home }}} 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 [:Administrator:administrative] Tätigkeiten (sudo) durchführen soll, so muss diesem Nutzer dieses spezielle Recht [3] schon hier zugewiesen werden: {{{#!vorlage Befehl adduser sudo }}} Mit [[Vorlage(Tasten, 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 [:sudo: Root-Rechten] [3] im Terminal [2] ein neues, verschlüsseltes Homeverzeichnis anlegen: {{{#!vorlage Befehl sudo adduser --encrypt-home }}} {{{#!vorlage 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. {{{#!vorlage Hinweis Vorab gilt zu beachten: * Falls die Option zum [:ecryptfs/Nutzung#Automatisches-Login:automatischen Login] ausgewählt oder eine Gastsitzung eingerichtet wurde, sollte man beides unter [:Benutzer_und_Gruppen:] entfernen. * Man sollte vorab ein [:Sicherheit: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: {{{#!vorlage Befehl sudo adduser sudo adduser 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: [[Vorlage(Tasten, Strg+Alt+F1)]] und zurück kommt man mit [[Vorlage(Tasten, Strg+Alt+F7)]]. * Bei Ubuntu 20.04 geht das oft mit anderen Funktionstasten: [[Vorlage(Tasten, Strg+Alt+F3)]] und zurück mit [[Vorlage(Tasten, 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 anmelden, danach wenn man dies gemacht hat, beendet man die grafische Oberfläche mit: {{{#!vorlage Befehl sudo systemctl stop display-manager }}} Dann verschlüsselt man das Home-Verzeichnis mit: {{{#!vorlage Befehl sudo ecryptfs-migrate-home -u }}} Als letztes muss man die grafische Oberfläche wieder starten, {{{#!vorlage Befehl sudo systemctl start display-manager }}} wieder mit z.B. [[Vorlage(Tasten, Strg+Alt+F7)]] (alt) oder neuer [[Vorlage(Tasten, 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 = {{{#!vorlage Warnung 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: {{{#!vorlage Befehl cd /home/ ecryptfs-umount-private chmod 700 ~/Private rm -rf ~/Private ~/.Private ~/.ecryptfs }}} == Verschlüsselung des Homeverzeichnisses entfernen == Um die Verschlüsselung des [:Homeverzeichnis:Homeverzeichnisses] zu entfernen und dieses auf ein fortan unverschlüsseltes Homeverzeichnis umzustellen, muss man nachfolgende Schritte in der aufgeführten Reihenfolge ausführen. {{{#!vorlage 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 [:sudo:Root-Rechten] [3] die Daten unverschlüsselt an eine andere Stelle kopieren (nachfolgend wurde '''/home/backup''' gewählt): {{{#!vorlage Befehl cd / sudo mkdir /home/backup sudo rsync -ap /home// /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: {{{#!vorlage Befehl mount -o remount,rw / }}} Sollte das Homeverzeichnis eine eigene Partition sein, muss man diese ebenso einhängen: {{{#!vorlage Befehl 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 [[Vorlage(Tasten, #)]] 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: {{{#!vorlage Befehl deluser --remove-home adduser }}} Soll der Nutzer [:Administrator:administrative] Rechte erhalten, fügt man ihn der Administratorgruppe `sudo` hinzu: {{{#!vorlage Befehl adduser sudo }}} Wurde der Benutzer erfolgreich neu angelegt, können das Backupverzeichnis und das ehemals verschlüsselte Homeverzeichnis gelöscht werden: {{{#!vorlage Befehl rm -rf /home/backup rm -rf /home/.ecryptfs/ }}} Nun stellt man mit einem Editor [4] den alten Zustand der Datei '''/etc/adduser.conf''' wieder her (siehe oben!). Man kehrt mit [[Vorlage(Tasten, Strg)]] + [[Vorlage(Tasten, 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 {{{#!vorlage Befehl sudo apt-get purge ecryptfs-utils sudo apt-get autoremove --purge }}} die Anwendung deinstallieren. {{{#!vorlage 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 [bug:1734541:], der mit einem [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=765854#107 Workaround] {en} 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. {{{[mark]#[/mark] 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:] {Übersicht} Das [:Homeverzeichnis:] bzw. ein Verzeichnis darin verschlüsseln * [:ecryptfs/Nutzung:Nutzung] - wie man seine Daten bearbeiten und nutzen kann * [:ecryptfs/Datenrettung:Datenrettung] - Struktur der Schlüsseldaten und Datenrettung * [ubuntu_doc:community/EncryptedPrivateDirectory:Weitere Hinweise] {en} #tag: Sicherheit, Verschlüsselung