Ubuntu 12.10 „Quantal Quetzal“
Ubuntu 12.04 „Precise Pangolin“
Ubuntu 11.10 „Oneiric Ocelot“
Ubuntu 10.04 „Lucid Lynx“
Das Paket ecryptfs-utils bietet eine sehr einfache Möglichkeit
einen einzelnen Ordner (~/Private)
innerhalb eines "unverschlüsselten" Homeverzeichnisses, bzw.
das gesamte Homeverzeichnis
eines Benutzers zu verschlüsseln. Die Ent- bzw. Verschlüsselung geschieht dabei automatisch beim Ein-/Ausloggen des Benutzers.
Die Einrichtung eines "verschlüsselten" Homeverzeichnisses kann schon als Option bei der Installation mittels
Live-CD (Desktop-Installer)
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 angegeben, so wird auch diese swap-Partition gleich verschlüsselt angelegt.
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 eine verschlüsselte swap umstellen.
Wurde die Option "verschlüsseltes" Homeverzeichnis nicht schon bei der Installation ausgewählt, so muss das folgende Paket entweder im Terminal [2] mit
sudo apt-get install ecryptfs-utils
oder durch Anklicken des folgenden Button (sofern man sich im relevanten System befindet) nachinstalliert werden [1]:
ecryptfs-utils
mit apturl
Paketliste zum Kopieren:
sudo apt-get install ecryptfs-utils
sudo aptitude install 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.
Da die Varianten aber unterschiedliche Vorgehensweisen erfordern, wird die Einrichtung nachfolgend getrennt beschrieben.
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
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.
Bei allen Installation, wenn man die entsprechenden Hinweise nicht umsetzen konnte (oder übersehen hatte), oder wie bei Wubi nicht angeboten wird, kann man eine fertige Installation auf ein verschlüsseltes Homeverzeichnis umstellen.
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
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
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
bzw. vor 12.04:
adduser <Benutzername> admin
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.
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>
Ab Lucid Lynx (10.04 LTS) sollte das 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.
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.
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!
Man startet das System im Recovery Modus, wählt im Auswahldialog (friendly recovery
) "root" aus, 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
oder die bestehenden Zuordnungen zu Benutzer und Gruppen zum Notieren anzeigen lassen. Diese Daten erhält man mit:
grep <Benutzername> /etc/group
Es 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 Konsolen-Editor [4] (z.B.: Nano) auf und kommentiert die vorhandene Zeile mit
SKEL=/etc/skel
durch Voransetzen von # aus und schreibt direkt darunter
SKEL=/home/backup
und speichert die Veränderungen ab.
Man gibt jetzt nacheinander nachfolgende Befehle ein und achtet auf die Rückmeldungen aus dem System (Rückmeldung zum Schlüssel bitte notieren - siehe Hinweis oben).
mv /home/<Benutzername> /home/backup deluser <Benutzername> adduser --encrypt-home <Benutzername>
Nun erteilt man dem Nutzer administrative Rechte indem man ihn der Gruppe sudo
(bzw. vor 12.04 admin
) hinzufügt:
adduser <Benutzername> sudo
bzw. vor 12.04:
adduser <Benutzername> admin
Wurde der Benutzer erfolgreich neu angelegt, kann das Backup-Verzeichnis gelöscht werden:
rm -rf /home/backup
Nun stellt man in /etc/adduser.conf den alten Zustand mittels Editor [4] 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. Die alten Zuordnungen (siehe oben und ggf. weitere) werden am Desktop über die Eingabemaske "Benutzer und Gruppen" eingetragen.
Daran denken: wichtige Daten vorab aus dem Verzeichnis ~/Private bzw. aus dem unverschlüsselten Homeverzeichnis an einen anderen Ort sichern!
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
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.
Es muss für die folgende Maßnahme ausreichender Platz auf dem Ziel-Laufwerk vorhanden sein!
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.
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 admin
(vor 12.04) bzw. sudo
(seit 12.04) hinzu:
Vor 12.04:
adduser <Benutzername> admin
Seit 12.04:
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.
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.
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.