Der verschlüsselte Basisordner ist nach dem Abmelden weiterhin verfügbar

13

Wenn Sie ein Konto mit einem verschlüsselten Basisordner haben, können Sie nicht auf die Nur-Text-Daten des Benutzers in seinem Basisordner zugreifen, wenn sich dieser Benutzer seit dem letzten Systemstart noch nicht angemeldet hat. Dies habe ich erwartet, da es eigentlich praktisch nicht machbar sein sollte, auf den Home-Ordner eines Benutzers zuzugreifen, ohne dessen Passwort einzugeben.

Ich habe jedoch festgestellt, dass, wenn sich ein Benutzer mit einem verschlüsselten Basisordner anmeldet und sich dann abmeldet, die Klartextdaten in seinem Basisordner weiterhin für andere Benutzer zugänglich sind. Natürlich sind ausreichende Zugriffsrechte erforderlich.

wlistet den Benutzer nicht auf und die Ausgabe von sudo pgrep -u <username>ist leer, was darauf hinweist, dass der Benutzer keine laufenden Prozesse hat.

Was ist der Grund für dieses Verhalten? Warum nicht einfach den Home-Ordner des Benutzers sperren, nachdem er sich abgemeldet hat?

UTF-8
quelle
Könnten Sie bitte die Ausgabe grep -Fe ecryptfs /var/log/auth.logvon ungefähr dem Zeitpunkt angeben, zu dem sich der Benutzer abgemeldet hat?
David Foerster
Der Befehl liefert diese Ausgabe: pastebin.com/jZXdahbJ Laut Emacs sind die einzigen Zeilen, die die Zeichenfolge "ecryptfs" enthalten, die Zeilen, die beim Ausführen dieses Befehls erzeugt wurden.
UTF-8
Das Ergebnis ist wie erwartet nur die Zeilen, die Emacs mir bereits gezeigt hat: pastebin.com/VtV7iCDg
UTF-8
Okay. Es war einen Blick wert.
David Foerster
Ich habe diesen Fehler auch in persistenten Live-Systemen bemerkt (bei dem Versuch, einen zweiten Benutzer mit verschlüsseltem Home zu erstellen).
Sudodus

Antworten:

6

Bekannter Fehler

Wenn ich das richtig verstehe, ist dies ein bekannter Fehler.

Siehe diesen Link: wiki.archlinux.org/index.php/ECryptfs

Scrollen Sie nach unten zum rosa Absatz

Warnung: Leider kann das automatische Abhängen mit systemd brechen und es werden Fehler dagegen gemeldet ...

Umgehen

So wie es jetzt ist, sollten Sie besser herunterfahren oder neu starten , um die Spuren zu entfernen (es reicht nicht aus, sich abzumelden).

Sudodus
quelle
Was meinst du mit "Abmelden werden die Informationen zwischen den Benutzern verlieren"? Meinen Sie damit, dass etwas anderes passiert, als dass ein anderer Benutzer mit ausreichenden Berechtigungen auf die Nur-Text-Daten im Home-Verzeichnis des ersten Benutzers zugreifen kann? (Dies ist natürlich bereits vor dem Abmelden möglich.)
UTF-8
1
Der Versuch, es besser zu erklären: "Es reicht nicht aus, sich abzumelden". (Durch das Abmelden werden die Klartextinstanzen der Dateien nicht entfernt, die vom Benutzer mit verschlüsseltem Home verwendet wurden. Daher können Informationen von diesem Benutzer an einen anderen Benutzer weitergegeben werden, der sich anmeldet, zumindest wenn dieser andere Benutzer über Sudo-Berechtigungen verfügt. Aber wenn Sie herunterfahren oder neu
starten,
3

Ich kann dies nicht testen oder bestätigen, aber unter der Annahme, dass Sie ecryptfs(was Ubuntu während der Installation anbietet, IIRC) verwenden, werden die verschlüsselten Daten in einem versteckten Ordner gespeichert /home/.encryptfs/$USERund ecryptfsbeim Protokollieren mithilfe des Treibers an den Speicherort Ihres tatsächlichen Basisordners angehängt im.

Am wahrscheinlichsten ist es also, dass beim Abmelden das Verzeichnis nicht automatisch ausgehängt wird, sodass auf die Dateien weiterhin zugegriffen werden kann. Dies könnte verursacht werden durch ...

  • eine schlechte Konfiguration (vielleicht sollte sie so konfiguriert werden, dass sie beim Abmelden nicht gemountet wird, war es aber nicht)
  • unerwarteter Abmeldetyp (manchmal funktionieren diese Lösungen für die DM-An- / Abmeldung, aber ansonsten nicht gut)
  • Wenn das Aufheben der Bereitstellung von einem Abmeldeskript durchgeführt wird (was nicht unbedingt der Fall ist), kann etwas vor dem Befehl zum Aufheben der Bereitstellung fehlschlagen und dazu führen, dass das Skript vorzeitig beendet wird.

Eine Sache, die Ihnen dabei helfen kann, dies zu überprüfen, besteht darin, sudo mount | grep homevor dem Anmelden, nach dem Anmelden und nach dem Abmelden auszuführen , um festzustellen, ob etwas, homedas dies betrifft, bereitgestellt wird. Sie können auch nach /etc/fstabrelevanten Einträgen suchen . Schließlich gibt es einige Konfigurationen /home/.ecryptfs/$USER/.ecryptfs/mit relevanten Einstellungen für das automatische Ein- und Aushängen.

Nützliche Informationen ecryptfszu finden Sie in dieser Antwort und im stets hilfreichen ArchWiki .

krs013
quelle
Ich habe versucht, was Sie mir gesagt haben: pastebin.com/DrmEXQPV Ich melde mich nicht auf seltsame Weise ab, sondern auf die Standard-GUI-Art. Der FS ist immer noch montiert, wie Sie sehen können. Die von Ihnen erwähnten Konfigurationsdateien sind leer. In meinem /etc/fstabEintrag ist nichts enthalten, außer 1 Eintrag, der besagt, dass meine einzige Datenpartition gemountet werden soll, /und 1 Eintrag, der sich auf eine universitätsbezogene Netzwerkressource bezieht. Sollte ich versuchen, mich auf andere Weise abzumelden? Wenn das so ist, wie?
UTF-8
Das Abmelden auf eine andere Art und Weise war eine Vermutung - Desktop-Manager fügen zusätzlich zum Anmelden und Abmelden eine Menge hinzu, was die Vorstellung kompliziert und es schwierig macht zu sagen, welche Ereignisse ausgelöst werden. Ich habe mich gefragt, weil möglicherweise ein Skript oder Ereignis aufgetreten ist, das nicht ausgeführt wurde. Basierend auf den anderen Antworten ist es kein solches Problem, sondern etwas, das mit sich ecryptfsselbst zu tun hat. Verwenden sshoder melden Sie sich in diesem Sinne über die Textterminals an? Es ist möglicherweise möglich, ein Skript zu schreiben, das das Aufheben der Bereitstellung beim Abmelden übernimmt, wenn wir herausfinden, wo es abgelegt werden soll.
krs013
3

Bearbeiten /etc/systemd/logind.confund einstellenKillUserProcesses=yes

Beachten Sie, dass diese Pausen Hintergrundprogramme, screen, tmux, und ähnlich ...

Diese Frage wird hier ausführlicher behandelt. Ich finde es unnötig, einen neuen systemd-Dienst zu definieren (oder genauer gesagt nicht das gewünschte Verhalten, da er als Shutdown-Hook aufgerufen wird, nicht wenn die Benutzersitzung beendet wird).

/unix/251902/ecryptfs-auto-umount-does-not-work

Vierbeiner
quelle
Ich werde prüfen, ob Ihre Methode für ein beständiges Live-System mit einem zweiten Benutzer funktioniert, der zu Hause verschlüsselt hat.
Sudodus
Sorry, aber ich konnte nicht diese Methode Arbeit in einem persistenten Live - System machen mit einem zweiten Benutzer, die zu Hause verschlüsselt. (Ich habe Ihre Lösung nicht in einem installierten System getestet, das überlasse ich @ UTF-8, der die ursprüngliche Frage gestellt hat.)
Sudodus
Ich bin nicht daran interessiert, dies auf meinem eigenen Computer zu beheben. Ich bin der einzige, der es sowieso verwendet, aber 2 Konten mit verschlüsselten Home-Ordnern verwenden möchte, und niemand sonst kennt das Passwort für eines der beiden Konten. Ich bin daran interessiert, warum die verschlüsselten Volumes standardmäßig nicht automatisch ausgehängt werden . Könnte es nicht einfach nach aktiven Hintergrundprozessen suchen, die im Kontext des Benutzers ausgeführt werden, und die Bereitstellung aufheben, wenn keine vorhanden sind?
UTF-8
@ UTF-8, ich stimme Ihnen zu, dass es so funktionieren sollte , wie Sie es möchten. Wenn ich das richtig verstehe, ist dies ein bekannter Fehler. Siehe diesen Link, wiki.archlinux.org/index.php/ECryptfs . Scrollen Sie nach unten zum rosa Absatz "Warnung: Leider kann das automatische Aushängen leicht mit systemd brechen und Fehler werden abgelegt". - Wie es jetzt ist, sollten Sie besser herunterfahren oder neu
starten
@ UTF-8 Es ist ein Fehler in der Systemd / Session-Interaktion, da zumindest keuchend (ich fühle mich sehr wohl, wenn ich es nur an systemd hänge) - die Änderung /etc/systemd/logind.conf funktioniert für mich am 16.04 (getestet mit drei verschiedenen Benutzern , verschiedene Sitzungen, etc ...)
Quadruplebucky
3

Ich habe dieses Problem schon seit einiger Zeit untersucht, dh das unverschlüsselte Dateisystem bleibt nach der Benutzerabmeldung gemountet.

Ich habe "ecryptfs-migrate-home -u user" verwendet, um mount zu erstellen. Befolgen Sie die Anweisungen und alles funktioniert, außer dass beim Abmelden kein automatisches Aufheben der Bereitstellung erfolgt.

Ich habe die Konfigurationsdateien in /etc/pam.d/ mit der Dokumentation zu pam_ecryptfs verglichen und einige Unterschiede festgestellt. ecryptfs befand sich in 4 der Konfigurationsdateien von pam.d, während die Dokumente von pam_ecryptfs angeben, dass nur 2 Dateien ecryptfs benötigen / sollten / unterstützen, z.

   /etc/pam.d/common-auth:
              auth    required        pam_ecryptfs.so unwrap
   /etc/pam.d/common-session:
              session optional        pam_ecryptfs.so unwrap

Also habe ich die beiden anderen Instanzen auskommentiert, neu gestartet und alles hat funktioniert: Automatische Bereitstellung beim Anmelden und automatische Bereitstellung beim Abmelden für grafische Anmeldungen und Konsolenanmeldungen. (Ich habe alternative tty's verwendet, um vom Root-Konto aus zu überprüfen)

Dies ist am 18.04 Lubuntu auf Laptop, Desktop und Virtualbox Gast (Windows Host).

Ich interessiere mich für andere Erfahrungen.

edit_1: verbesserter Wortlaut. edit_2: Desktop- und VB-Testergebnisse hinzugefügt.

roter Stein
quelle
Hat das Deaktivieren / Auskommentieren einer dieser Zeilen Probleme verursacht? Wird durch Ändern Ihres Kennworts die eCryptfs-Schlüsseldatei immer noch neu verpackt?
Xen2050
Dies funktionierte für mich unter Linux Mint 19. Um weitere Details für andere hinzuzufügen: Die vier Konfigurationsdateien in /etc/pam.d, die sich auf ecryptfs beziehen, sind: common-auth, common-password, common-session, common-session- nicht interaktiv. Das Auskommentieren der Zeilen in common-password und common-session-noninteractive führte zu dem gewünschten Verhalten beim Aufheben der Bereitstellung beim Abmelden. Außerdem wurde der Eintrag in common-auth auf "optional" anstatt auf "erforderlich" gesetzt, wie es in der Dokumentation vorgesehen ist. Ich habe dies jedoch so belassen, wie es ist.
Evencoil
@ Xen2050, Entschuldigung für die verspätete Antwort. Ich habe nach Änderungen beim Auskommentieren von Zeilen keine Probleme festgestellt und noch nicht versucht, das Kennwort zu ändern.
Redrock
Das Ändern des Kennworts kann zum Testen wichtig sein. Es sollte den Verschlüsselungsschlüssel automatisch mit Ihrem neuen Kennwort umschließen, damit die Anmeldung beim nächsten Mal funktioniert. Wenn es nicht funktioniert, dann nur das Passwort zurück zum vorherigen Wechsel sollte funktionieren ... [es ist immer gut , eine Sicherungskopie zu haben , obwohl]
Xen2050
1
@ Xen2050, ich habe den Test zum Ändern des Passworts durchgeführt. es funktionierte.
Redrock
2

Ich mache es mit einem Skript in rclocal

#!/bin/sh
#

while true; do
    if [ ! -d /run/user/1000 ]; then
        if [ -f /home/momo/.mounted ]; then
            umount /home/harry
        fi      
    fi

    if [ ! -d /run/user/1001 ]; then
        if [ -f /home/vm/.mounted ]; then
            umount /home/maud
        fi
    fi

    sleep 10
done
exit 0
walter wunsch
quelle
Wie bekommst du die Benutzer-ID?
Avinash Raj
0

Wenn Sie keinen Zugriff von cron oder bei Jobs (nicht interaktive Aufgaben) auf JEDE Home-Verzeichnisse benötigen, müssen Sie nur die Zeile auskommentieren

session  optional        pam_ecryptfs.so unwrap

in /etc/pam.d/common-session-noninteractive.

Dadurch werden alle verschlüsselten Home-Verzeichnisse abgemeldet, wenn sich der Benutzer abmeldet.

Geoff Mulligan
quelle