[[Vorlage (archiviert, "Jetzt in [:ecryptfs:] und Unterartikeln zu finden")]] ## [[Vorlage(getestet maverick, lucid, karmic, jaunty)]] {{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] [:Paketquellen freischalten: Bearbeiten von Paketquellen] [:Terminal: Ein Terminal öffnen] [:Programme starten: Ein Programm starten] [:Rechte: Rechte für Dateien und Ordner ändern] [:Editor:Einen Editor nutzen] }}} {{{#!vorlage 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]] [http://ecryptfs.sourceforge.net/ ecryptfs-utils] {en} 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. {{{#!vorlage Warnung Bitte vorab die Hinweise unter [#Wechsel-Login-Passwort Ä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]: {{{#!vorlage Paketinstallation 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 [:Vorbereitung_Teilverschlüsselung#Swap: Teilverschlüsselung] beschrieben einrichten. Möchte man andere Grade der Verschlüsselung anwenden, so sind die "Experten-Info" bei [:LUKS#Erstellen: 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: {{{#!vorlage Befehl 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 {{{#!vorlage Befehl ecryptfs-setup-private --force }}} {{{#!vorlage 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-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. == Einrichtung Homeverzeichnis == Ab Jaunty Jackalope besteht die Möglichkeit, ein verschlüsseltes [:Homeverzeichnis:] gleich bei der Installation anzulegen. {{{#!vorlage Warnung Ab Karmic Koala wird gleich eine verschlüsselte [:Swap: 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 [:Vorbereitung_Teilverschlüsselung#Swap: 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 === {{{#!vorlage Experten 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 [[Vorlage (Tasten, F6)]] im Startmenü die Eingabezeile auf (löscht mit [[Vorlage (Tasten, 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. {{{#!vorlage 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 `` 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: {{{#!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 nachgeholt werden. Ist dieser Benutzer auch derjenige, der administrative Tätigkeiten (sudo) durchführen soll, so muß diesem dieses Recht wieder zugewiesen werden: {{{#!vorlage Befehl adduser admin }}} Nun kann man mit [[Vorlage(Tasten, 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 [:sudo: Root-Rechten] im Terminal [3] ein neues, verschlüsseltes Homeverzeichnis anlegen: {{{#!vorlage Befehl sudo adduser --encrypt-home }}} {{{#!vorlage 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. {{{#!vorlage Hinweis Vorab ein [:Sicherheit: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 [[Vorlage(Tasten, #)]] 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). {{{#!vorlage Befehl deluser mv /home/ /home/backup adduser --encrypt-home adduser admin rm -rf /home/backup }}} und stellt in '''/etc/adduser.conf''' den alten Zustand mittels Editor wieder her (siehe oben!). Man kehrt mit [[Vorlage(Tasten, 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. {{{#!vorlage Experten 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: * System -> Einstellungen -> Persönliche Angaben -> Passwort ändern beim Kubuntu-Desktop über die Funktion: * Systemeinstellungen -> Persönliche Informationen -> Passwort ändern 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. {{{#!vorlage Hinweis Bei [:GDM#Benutzer-ohne-Passwort-einloggen: 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-Schluesseldateien 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. {{{#!vorlage Befehl ecryptfs-umount-private }}} Umgekehrt kann man das Verzeichnis auch wieder manuell entschlüsseln {{{#!vorlage Befehl 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: {{{#!vorlage Befehl 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ü ([[Vorlage(Tasten, rmt)]]-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-''', 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. {{{#!vorlage Warnung 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. {{{#!vorlage Warnung 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/''' auf der __selben__ Partition wie das Wurzelverzeichnis (nachfolgend wird als Beispiel '''/dev/sda1''' angenommen), dann gibt man ein: {{{#!vorlage Befehl ubuntu@ubuntu:~$ sudo mount /dev/sda1 /mnt }}} === Separates Homeverzeichnis === Befindet sich das Verzeichnis '''/''' 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 ==== {{{#!vorlage Befehl 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: {{{#!vorlage Befehl 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 Benutzer aktivieren]. ==== mit defekter Root-Partition ==== Für die Simulation der __fehlenden__ Root-Partition sind folgende Schritte erforderlich: {{{#!vorlage Befehl ubuntu@ubuntu:~$ sudo mount /dev/sda5 /mnt }}} Nun einen Nutzer mit `` im Ubuntu-Live-System anlegen und diesem Root-Rechte geben, siehe dazu die Ausführungen unter: [#Datenzugriff-vorbereiten Datenzugriff vorbereiten]. Anschließend löscht man den Inhalt des gerade angelegten home Verzeichnises und verlinkt es mit dem zu Rettenden. {{{#!vorlage Befehl ubuntu@ubuntu:~$ sudo rm -rf /home/ ubuntu@ubuntu:~$ sudo ln -s /mnt/ /home/ }}} Nun das Verzeichnis '''/var/lib/ecryptfs/''' anlegen und die darin erforderlichen Dateien erstellen, siehe dazu die Ausführungen unter: [#Schluesseldateien-reparieren Schlüsseldateien reparieren]. Danach dauerhafte Rootrechte erwerben mit: {{{#!vorlage Befehl 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 `` von `` einzugeben. Die angezeigten Meldungen können ignoriert werden. {{{#!vorlage Befehl root@ubuntu:~$ su - }}} Mit den nächsten Eingaben logt man sich nun in sein "verschlüsseltes" Verzeichnis ein: {{{#!vorlage Befehl @ubuntu:~$ ecryptfs-add-passphrase --fnek Passphrase: < notierte Passphrase @ubuntu:~$ ecryptfs-mount-private }}} Jetzt hat man Zugriff auf seine Daten, sowohl über den [:Dateimanager:], als auch im Terminal, dazu noch folgende Eingabe {{{#!vorlage Befehl @ubuntu:~$ cd .. @ubuntu:~$ cd }}} 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: {{{#!vorlage Befehl @ubuntu:~$ ecryptfs-umount-private @ubuntu:~$ exit logout root@ubuntu:~$ exit ubuntu@ubuntu:~$ }}} {{{#!vorlage Warnung 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 Daten extern auslesen]. === Datenzugriff vorbereiten === Für alle Varianten zuerst einen Benutzer im Ubuntu-Live-System mit [:Shell/adduser: adduser] anlegen: {{{#!vorlage Befehl ubuntu@ubuntu:~$ sudo adduser 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 [[Vorlage(Tasten, Enter)]] bestätigt werden. Nun sollte noch der Eintrag in die [:Benutzer_und_Gruppen#Gruppen: Gruppe admin] mit: {{{#!vorlage Befehl ubuntu@ubuntu:~$ sudo adduser 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//.ecryptfs }}} für die Variante verschlüsseltes Homeverzeichnis für Jaunty Jackalope : {{{ /var/lib/ecryptfs/ }}} für die Variante verschlüsseltes Homeverzeichnis (bei Neuinstallation) Karmic Koala : {{{ /home/.ecryptfs//.ecryptfs }}} {{{#!vorlage Warnung Die beiden versteckten Verzeichnisse /home//.ecryptfs und /home/.ecryptfs/ 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/) 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. {{{#!vorlage Warnung 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. {{{#!vorlage 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: {{{#!vorlage Befehl sudo ecryptfs-unwrap-passphrase wrapped-passphrase [Intrepid Ibex siehe Hinweis] }}} und schließt mit [[Vorlage(Tasten, Enter)]] ab, die folgende Abfrage mit der Eingabe: {{{#!vorlage Befehl passphrase: < Eingabe Login-Passwort Benutzer > }}} und [[Vorlage(Tasten, Enter)]] 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 ! {{{#!vorlage Befehl ubuntu@ubuntu:~$ su - Passwort: < Login-Passwort von @ubuntu:~$ sudo mkdir --parents --mode=777 /mnt/var/lib/ecryptfs/ @ubuntu:~$ cd /mnt/var/lib/ecryptfs/ @ubuntu:/mnt/var/lib/ecryptfs/$ }}} 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 wrapped-passphrase auslesen] beschrieben) aus einer intakten '''wrapped-passphrase'''-Datei ausgelesen werden. Ist es bekannt, kann die Datei wie folgt neu erstellt werden: {{{#!vorlage Befehl @ubuntu:/mnt/var/lib/ecryptfs/$ ecryptfs-wrap-passphrase wrapped-passphrase }}} Die nachfolgenden Abfragen sind wie folgt zu beantworten (es erfolgt keine Anzeige, __blinde__ Eingabe erforderlich): {{{#!vorlage Befehl Passphrase to wrap: < Eingabe notierte Passphrase Wrapping passphrase: < Eingabe Login-Passwort von }}} und schränkt die erforderlichen Zugriffs-Rechte dieser Datei ein mit: {{{#!vorlage Befehl @ubuntu:/mnt/var/lib/ecryptfs/$ 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: {{{#!vorlage Befehl 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: {{{#!vorlage Befehl 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/ }}} Dabei diese Zeile mit [[Vorlage(Tasten, Enter)]] abschließen und danach abspeichern, den Editor wieder verlassen und schränkt die erforderlichen Zugriffs-Rechte dieser Datei ein mit: {{{#!vorlage Befehl @ubuntu:/mnt/var/lib/ecryptfs/$ chmod 700 Private.mnt }}} ==== Private.sig erstellen ==== Um die Daten für diese Datei zu erhalten, gibt man in das Terminal ein: {{{#!vorlage Befehl @ubuntu:/mnt/var/lib/ecryptfs/$ 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 [[Vorlage(Tasten, Enter)]] abschließt und abspeichert, den Editor wieder verlässt und schränkt die erforderlichen Zugriffs-Rechte dieser Datei ein mit: {{{#!vorlage Befehl @ubuntu:/mnt/var/lib/ecryptfs/$ chmod 700 Private.sig }}} Bevor man das Terminal wieder verlässt, gibt man noch ein: {{{#!vorlage Befehl @ubuntu:/mnt/var/lib/ecryptfs/$ exit logout ubuntu@ubuntu:~$ }}} Man sollte diese Daten jetzt __auch__ extern sichern, versuchen, mit diesen Werten bei [#Daten-extern-auslesen Daten extern auslesen] weiter zu machen oder das System neu zu starten. = Deinstallation = {{{#!vorlage Warnung 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: {{{#!vorlage Befehl 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 [:sudo:Root-Rechten] seine Daten unverschlüsselt an eine andere Stelle kopieren: {{{#!vorlage Befehl cd / sudo cp -a /home/ /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 [[Vorlage(Tasten, #)]] aus und schreibt direkt darunter {{{ SKEL=/home/backup }}} Danach die Datei sichern. === Verschlüsselung entfernen === Nun muss man nachfolgende Befehle eingeben, __Reihenfolge einhalten__! {{{#!vorlage Befehl deluser --remove-home adduser adduser admin rm -rf /home/backup rm -f /home//.ecryptfs}}} und stellt mit einem Editor den alten Zustand wieder her (siehe oben!). Man kehrt mit [[Vorlage(Tasten, Strg)]] + [[Vorlage(Tasten, 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 {{{#!vorlage Befehl sudo apt-get remove ecryptfs-utils libecryptfs0 --purge }}} die Anwendung deinstallieren. {{{#!vorlage 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: {{{#!vorlage Befehl ecryptfs-insert-wrapped-passphrase-into-keyring ~/.ecryptfs/wrapped-passphrase }}} Dabei sind je nach System und Ubuntu-Version der Pfad zur Datei '''wrapped-passphrase''' anzupassen, siehe auch [#Systempfade-der-Schluesseldateien Systempfade der Schlüsseldateien] == Fehlermeldung SWAP beim Booten == Es kann durch den Eintrag von `cryptswap` (verschlüsselte [:Swap: Swap-Partition]) in der '''/etc/fstab''' beim Booten zu einer Fehlermeldung durch ein "timing-Problem" kommen. {{{#!vorlage 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/''' 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: {{{#!vorlage Befehl sudo blkid /dev/mapper/ }}} Die Ausgabe sollte in etwa so aussehen: {{{ [sudo] password for laura: /dev/mapper/: 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/ > /dev/null || /etc/init.d/cryptdisks restart; }}} = Links = * [https://help.ubuntu.com/community/EncryptedPrivateDirectory Weitere Hinweise] {en} ---- #tag: Sicherheit