Sicheres automatisches Aktivieren des verschlüsselten Laufwerks bei der Benutzeranmeldung

18

Wenn ich mich anmelde, wird automatisch ein verschlüsseltes / Home-Verzeichnis angehängt. Ich habe eine zweite interne Festplatte, die ich mit dem Festplatten-Dienstprogramm formatiert und verschlüsselt habe. Ich möchte, dass es beim Anmelden automatisch eingehängt wird, genau wie mein verschlüsseltes / Home-Verzeichnis. Wie mache ich das?

Hier gibt es einige sehr ähnliche Fragen, aber die Antworten gelten nicht für meine Situation. Es ist vielleicht am besten, meine Frage hier zu schließen / zusammenzuführen und die zweite unten zu bearbeiten, aber ich denke, sie wurde abgebrochen (und sollte daher niemals als angenommen markiert werden).

Diese Lösung ist keine sichere Methode, sondern umgeht die Verschlüsselung.
Diese muss bearbeitet werden fstab, sodass beim Start ein zusätzliches Kennwort eingegeben werden muss. Es ist nicht automatisch wie Montage / Zuhause.
Diese Frage ist sehr ähnlich, gilt jedoch nicht für ein verschlüsseltes Laufwerk. Die Lösung wird für meine Bedürfnisse nicht funktionieren.
Hier ist eine, aber es ist für NTFS-Laufwerke, meine ist ext4.

Ich kann das zweite Laufwerk neu formatieren und verschlüsseln, wenn eine Lösung dies erfordert. Ich habe alle Daten an anderer Stelle gesichert.

Tom Brossman
quelle
Welchen FS verwenden Sie zur Verschlüsselung? LUKS oder Ecrytpfs?
Daisy
@AaronLewis Ich benutze nur Ubuntus Festplatten-Dienstprogramm, um das Laufwerk zu formatieren, und aktiviere dann das Kontrollkästchen "Dieses Laufwerk verschlüsseln". Wenn ich raten müsste, würde ich mit Ecryptfs gehen, da dies ist, wie / home standardmäßig verschlüsselt ist. Da es so einfach ist, habe ich mir das noch nie angesehen.
Tom Brossman

Antworten:

5

Sie brauchen die obigen Lösungen nicht mehr.

Voraussetzungen:

  • eine Ubuntu 14.04 LTS Installation
  • ein verschlüsseltes Home-Verzeichnis (siehe https://help.ubuntu.com/community/EncryptedHome )
  • der Wunsch, ein sekundäres verschlüsseltes Laufwerk automatisch bereitzustellen [Bearbeiten], wenn Sie sich anmelden.

Hinweis: Diese Methode ist weniger sicher als das manuelle Aktivieren eines verschlüsselten Laufwerks. Wenn jemand physischen Zugriff auf Ihren Computer hat, Sie Ihr Root-Kennwort nicht kennen oder Ihr Computer mehrere Benutzer / Gastkonten hat, ist diese Methode nicht sicher . Das sekundäre Laufwerk bleibt beim Abmelden aktiviert, fährt das System jedoch nicht herunter, sodass der Inhalt für andere Benutzer sichtbar ist.

Teil 1: Verschlüsseln Sie das sekundäre Laufwerk.

  1. Geben Sie im Unity-Strich "disks" ein und drücken Sie die Eingabetaste.
  2. Klicken Sie unter "Geräte" auf die Festplatte, die Sie verschlüsseln möchten.
  3. Klicken Sie unter "Volumes" auf die Schaltfläche "cog / more actions".
  4. Klicken Sie auf "Volume formatieren". Wählen Sie als Typ "Verschlüsselt, kompatibel mit Linux-Systemen". Benennen Sie Ihr Laufwerk und geben Sie ihm eine starke Passphrase.
  5. Klicken Sie auf "Format"

Teil 2: Hängen Sie die Festplatte beim Systemstart automatisch ein.

  1. Lassen Sie die Anwendung "Disks" geöffnet und klicken Sie auf das Zahnrad.
  2. Klicken Sie auf "Verschlüsselungsoptionen bearbeiten".
  3. "Automatische Verschlüsselungsoptionen" wird aktiviert und das Menü unten abgeblendet. Deaktivieren Sie die automatischen Verschlüsselungsoptionen.
  4. Geben Sie die Passphrase ein, die beim Formatieren der Festplatte verwendet wurde. OK klicken".

Sie haben jetzt eine verschlüsselte Festplatte, die beim Starten Ihres Computers automatisch aktiviert wird.

Versuch
quelle
1
Ich bin mir zwar sicher, dass jemand eine Verwendung dafür hat, aber es ist keine Antwort auf die gestellte Frage, die angibt, dass die sekundäre Bereitstellung bei der Benutzeranmeldung erfolgen soll, im Gegensatz zum Systemstart. Dies macht die anfängliche Behauptung "Sie brauchen die obigen Lösungen nicht mehr" unangemessen und ich fordere den Autor auf, die Antwort entsprechend neu zu formulieren.
mc0e
2
Ich denke du liegst hier falsch. Das heißt, die sekundäre Bereitstellung erfolgt bei der Benutzeranmeldung (nur für das Konto, für das der von mir erwähnte Vorgang ausgeführt wurde) und nicht eine Sekunde zuvor. Wenn sich meine Frau auf demselben Computer bei ihrem Ubuntu-Konto anmeldet, ist das Laufwerk nicht gemountet. Wenn sie versucht, es bereitzustellen, werden Sie nach dem Verschlüsselungsschlüssel gefragt. Ich behaupte, Sie brauchen die obigen Antworten nicht.
Versuch
1
Einverstanden, dies ist bei weitem der einfachste Weg, da ich der einzige Benutzer auf der Maschine bin. Es wird nicht für alle funktionieren, aber wenn Sie eine Ubuntu-Installation haben und der primäre / Administrator-Benutzer sind, ist dies der richtige Weg. Es sollte jetzt wirklich irgendwo ein großes Kontrollkästchen "Diese Funktion genau wie verschlüsselt / zu Hause ausführen" geben, es ist ein einfacher Anwendungsfall.
Tom Brossman
@tryion Die LUKS-Partition wird beim Systemstart entsperrt, jedoch nicht eingehängt. Sobald der Computer eingeschaltet ist, ist er so zugänglich wie eine unverschlüsselte Partition. Das Passwort wird im Klartext in gespeichert /etc/crypttab. Für den Zugriff auf die Partition ist kein Benutzerpasswort erforderlich. Diese Einstellung entspricht also überhaupt keiner Verschlüsselung und ist keine Antwort auf die Frage.
Victor
Gibt es Optionen zum Speichern an anderer Stelle mit libsecret, um die Verschlüsselung für einen bestimmten Benutzer aufzuheben, und gibt es eine CLI-Anleitung für Benutzer ohne grafische Benutzeroberfläche / ohne Kopf.
MrMesees
10

Als ich diese Antwort vor einigen Jahren schrieb, war dies der beste Weg, um die Lösung zu implementieren. Ich würde jetzt vorschlagen, dass Sie sich die nächste Antwort mit mount.ecryptfs_private ansehen.

Ich suchte auch nach einer Möglichkeit, ein zweites eCryptfs-Volume automatisch bereitzustellen. Die folgende Sammlung von Skripten und Konfigurationsänderungen stellt Ihr Volume beim Anmelden sicher und automatisch bereit, entweder auf der GUI oder der CLI.

Es gibt eine bessere Lösung, die gerade erstellt wird (obwohl ich der Meinung bin, dass sie noch nicht für die automatische Bereitstellung bei der Benutzeranmeldung bereit ist, da dieses Skript eine begrenzte Haltbarkeit hat.):

ecryptfs auf zu kleiner Festplatte - Wie füge ich Links zur Verschlüsselung hinzu?

Die Sicherheit der Skripte hängt davon ab, ob Ihr Basisverzeichnis mit eCryptfs verschlüsselt wird, sodass das Skript und die Dateien mit dem Kennwort zum Entpacken Ihrer Passphrase verschlüsselt werden. Wenn Sie Ihren Computer nach dem Anmelden mit einer geöffneten Root-Shell entsperrt lassen, können Sie auf die Kennwörter zugreifen. Die Verwendung von sudo NOPASSWD ermöglicht jedoch das sichere Mounten der Partition, ohne dass Sie ein Kennwort eingeben oder die Passphrase in einer vom Benutzer lesbaren Datei belassen müssen.

Ein bekanntes Manko dieser Skripte ist, dass Ihr zweites Volume beim Abmelden nicht abgemeldet wird. Daher ist es nicht besonders für Systeme mit mehreren Benutzern geeignet.

Meine Lösung besteht aus mehreren Teilen, zwei Shell-Skripten, von denen eines das eigentliche Mounten ausführt und das andere als Wrapper dafür dient.

Dies ist das Wrapper-Skript, das überprüft, ob das Verzeichnis bereits eingehängt ist. Ist dies nicht der Fall, wird das Einhänge-Skript mit sudo aufgerufen:

/ home / johnf / scripts / automount_ecryptfs

#!/bin/bash

MOUNT_POINT=/home/johnf/slow

grep -q $MOUNT_POINT /proc/mounts
if [ $? -eq 1 ]; then
  sudo /home/johnf/scripts/mount_other_ecryptfs
fi

Dieses Skript ruft / home / johnf / scripts / mount_other_ecryptfs wie folgt auf.

Beachten Sie, dass in diesem Skript davon ausgegangen wird, dass die Dateinamenverschlüsselung aktiviert ist. Wenn Sie dies nicht tun, müssen Sie entweder das Skript für die Erkennung ändern (siehe ecryptfs-recover-private) oder die Mount-Option ecryptfs_fnek_sig entfernen.

Folgendes ist das Skript / home / johnf / scripts / mount_other_ecryptfs:

#!/bin/bash

ENCRYPTED_VOLUME=/vol0/.ecryptfs/johnf/.Private/
MOUNT_POINT=/home/johnf/slow
PASSFILE=/home/johnf/scripts/ecryptfs_passphrase
MOUNT_PASSWORD=secret_passphrase
ECRYPTFS_SIG=`head -1 ${ENCRYPTED_VOLUME}//../.ecryptfs/Private.sig`
ECRYPTFS_FNEK_SIG=`tail -1 ${ENCRYPTED_VOLUME}//../.ecryptfs/Private.sig`

printf "%s" $MOUNT_PASSWORD | ecryptfs-insert-wrapped-passphrase-into-keyring ${ENCRYPTED_VOLUME}/../.ecryptfs/wrapped-passphrase
mount -t ecryptfs -o key=passphrase:passfile=${PASSFILE},ecryptfs_sig=${ECRYPTFS_SIG},ecryptfs_fnek_sig=${ECRYPTFS_FNEK_SIG},ecryptfs_cipher=aes,ecryptfs_key_bytes=16,ecryptfs_passthrough=n ${ENCRYPTED_VOLUME} ${MOUNT_POINT}

Sie müssen auch eine Datei mit Ihrem Kennwort erstellen. Diese Datei wird vom Befehl eCryptfs mount verwendet:

/ home / johnf / scripts / ecryptfs_passphrase:

passwd=secret_passphrase

Sie müssen die Berechtigungen für mehrere Dateien ändern:

chmod +x /home/johnf/scripts/automount_ecryptfs
sudo chown root:root /home/johnf/scripts/mount_other_ecryptfs /home/johnf/scripts/ecryptfs_passphrase
sudo chmod a=x /home/johnf/scripts/mount_other_ecryptfs
sudo chmod 400 /home/johnf/scripts/ecryptfs_passphrase

Bevor Sie die Skripte erstellen, müssen Sie eine sudoers-Konfiguration erstellen, um das Bereitstellungsskript mit sudo ausführen zu können, ohne Ihr sudo-Kennwort einzugeben.

Fügen Sie Folgendes zu / etc / sudoers hinzu (oder eine Datei in /etc/sudoers.d). Du wirst Johnf durch deinen Benutzernamen ersetzen wollen. Es ist erforderlich, einen absoluten Pfad zum Einhänge-Skript zu verwenden.

johnf   ALL = NOPASSWD: /home/johnf/scripts/mount_other_ecryptfs

Der letzte Schritt ist das Aufrufen des Skripts automount_ecryptfs beim Anmelden.

Verwenden Sie unter Ubuntu Unity (und wahrscheinlich gnome) das Applet Startup Applications, um ein neues Startprogramm zu erstellen, das / home / johnf / scripts / automount_ecryptfs aufruft.

Um das zweite eCryptfs-Volume beim Anmelden in einer Bash-Shell automatisch bereitzustellen, müssen Sie Ihre ~ / .bashrc-Datei ändern. Fügen Sie Folgendes hinzu:

/home/johnf/scripts/automount_ecryptfs

Mit dieser Konfiguration sollten Sie jetzt automatisch Ihr zweites eCryptfs-Volume bereitstellen.

Johnf
quelle
Wow, tolle Antwort! Upvoted und akzeptiert. Ich kann es noch nicht testen, aber es sieht sehr vollständig aus.
Tom Brossman
Der Autor mount.ecryptfs_privateempfiehlt jetzt die Verwendung ecryptfs-mount-private, auch von ihm, die ein Wrapper-Skript für ist mount.ecryptfs_private. Für die relativen Vorzüge von ecryptfs und LUKS ist thesimplecomputer.info/… möglicherweise eine Lektüre wert.
mc0e
9

Aufbauend auf @ johnfs Antwort, aber stattdessen mount.ecryptfs_private verwenden:

  • verschlüsselt /home/bob/(zB auf einer SSD), mit Ubuntus normalem verschlüsseltem Home-Verzeichnis.
  • verschlüsselt /media/hdd/bob_extra/(zB auf einer Festplatte), auf die gemountet werden soll /home/bob/extra. Dies sollte beim Anmelden automatisch aktiviert werden, genau wie das Home-Verzeichnis.
  • Verwenden Sie für beide dieselben Schlüssel / Anmeldeinformationen.

erstelle es

mkdir /media/hdd/bob_extra
cp /home/bob/.ecryptfs/Private.sig /home/bob/.ecryptfs/extra.sig
echo "/media/hdd/bob_extra /home/bob/extra ecryptfs none 0 0" > /home/bob/.ecryptfs/extra.conf

Probier es aus

mount.ecryptfs_private extra

Laufen mountsollten Sie sehen:

...
/media/hdd/bob_extra on /home/bob/extra type ecryptfs (ecryptfs_check_dev_ruid,ecryptfs_cipher=aes,ecryptfs_key_bytes=16,ecryptfs_unlink_sigs,ecryptfs_sig=12345678abcdef,ecryptfs_fnek_sig=abcdef12345678)

aussteigen:

sudo umount /media/hdd/bob_extra

automount einrichten

Create /home/bob/bin/automount_ecryptfs.extra, das es mounten wird, wenn es noch nicht gemountet wurde.

#!/bin/bash

MOUNT_POINT=/home/bob/extra

grep -q $MOUNT_POINT /proc/mounts
if [ $? -eq 1 ]; then
  mount.ecryptfs_private extra
fi

Mache es ausführbar ( chmod +x) und füge es hinzu in /home/bob/.bashrc:

...
/home/bob/bin/automount_ecryptfs.extra

Fügen Sie es dann ebenfalls zu Gnomes Startup-Anwendungen hinzu.

rcoup
quelle
+1 Danke für die Antwort. Ich habe jetzt ein weitaus komplizierteres Setup mit mehreren SSDs und Symlinks zu einem freigegebenen Laufwerk, daher kann ich dies nicht testen. Ich hoffe, dass das Verschlüsseln mehrerer Festplatten eines Tages so einfach sein wird wie das Verschlüsseln von / home.
Tom Brossman
Siehe auch, ecryptfs-mount-privatewas ähnlicher ist. ZB kann es automatisch einen Schlüssel aus dem Schlüsselbund des Benutzers verwenden.
mc0e
In dieser Antwort geht es um das Mounten eines privaten eCryptfs-Verzeichnisses. Die Frage betraf das Mounten einer LUKS-Partition, die mit dem Dienstprogramm Disks erstellt wurde .
Victor
1

Erstellen Sie ein Skript in Ihrem verschlüsselten Home-Verzeichnis ~/scripts/mount_storage.sh::

#!/bin/bash

sudo cryptsetup open --type luks UUID=12e26119-0ee2-4eb4-bd40-d8a3547ecf0c storage --key-file ~/keys/storage_keyfile
sudo mount /dev/mapper/storage /storage

Zu "Startup Applications" hinzufügen:

sh ~/scripts/mount_storage.sh

Hinzufügen zu /etc/sudoers:

%sudo   ALL= NOPASSWD: /sbin/cryptsetup open --type luks UUID=12e26119-0ee2-4eb4-bd40-d8a3547ecf0c storage --key-file *
%sudo   ALL= NOPASSWD: /bin/mount /dev/mapper/storage /storage

Sie müssen den /storageEinhängepunkt erstellt haben und die UUID im obigen Skript ändern (finden Sie sie mit blkid).

Raul Laasner
quelle
Gibt es eine einfache Möglichkeit, ein solches Skript immer dann auszuführen, wenn ein USB-Gerät angeschlossen ist?
naught101
Ich habe es nicht selbst ausprobiert, kann es also nicht genau sagen, aber ich verstehe nicht, warum nicht. Sie müssten eine udev-Regel erstellen, die auf ein bestimmtes USB-Gerät abzielt und das obige Skript ausführt. Dieser Beitrag könnte zum Beispiel ein Ausgangspunkt sein.
Raul Laasner
0

Ich befürchte, dass dies keine beliebte Antwort sein wird ...

Es wird nicht möglich sein, eine verschlüsselte Partition automatisch bereitzustellen, ohne die Sicherheit der Verschlüsselung selbst zu umgehen.

Überlegen Sie, was " automatisch " bedeutet, und verstehen Sie, dass dies automatisch bedeutet, dass auch Ihre Daten angezeigt werden.

Dustin Kirkland
quelle
Ich habe "Sicher" subjektiv verwendet, ich könnte es aus der Frage entfernen. Ich möchte nur, dass das verschlüsselte Laufwerk mit den Fotos gemountet wird, wenn ich mich anmelde, genau wie / home. Ich weiß, dass dies theoretisch möglich ist, da ich ein drittes (auch verschlüsseltes) Laufwerk als Ziel für Déjà Dup habe. Dieses Laufwerk wird erst gemountet, wenn das Sicherungsdienstprogramm gestartet wird. Vollautomatisch, ich habe den Schlüssel gespeichert, damit ich ihn nicht jedes Mal eingebe. Ich bin damit einverstanden, dass alle meine Schlüssel automatisch verarbeitet werden, nachdem ich mein Passwort auf dem Anmeldebildschirm eingegeben habe. Irgendeine Idee, wie dies geschehen kann? Vielen Dank.
Tom Brossman
3
Automatisch bedeutet in diesem Zusammenhang, dass es gemountet werden soll, nachdem Sie Ihr Login-Passwort eingegeben haben. Ihr Anmeldekennwort kann der Schlüssel zu Ihrer verschlüsselten Partition sein oder häufiger der Schlüssel zum Schlüssel. Dies ist angemessen sicher (mit einem guten Login-Passwort).
Javier Rivera
Es wird nicht automatisch auf einem anderen Computer bereitgestellt, weshalb die meisten von uns einige Datenträger verschlüsseln. In meinem Fall ist es eine Festplatte, die ich zum Erstellen von Backups verwende. Ich arbeite in einem gemeinsamen Raum und weiß, dass einer von euch mit viel Wissen alles umgehen kann, was ich mit dem physischen Zugriff auf meine Festplatte / meinen Computer tue: Ich möchte nur den Zugriff auf meine Dateien reduzieren, damit es jeder andere kann tu es nicht.
Ramon Suarez
Wäre es möglich, dass jemand, der Ihren Computer stiehlt, auf den Schlüssel Ihrer verschlüsselten Extra-HD zugreifen kann? (und dann natürlich montieren und auf diese HD zugreifen)
Miguelfg
Einfaches, offensichtliches Szenario: Ich schließe ein USB-Laufwerk an einen Server im Büro an, um Daten zu sichern. Ich nehme das USB-Laufwerk mit nach Hause, um externe Sicherungen für den Fall zu gewährleisten, dass auf dem Server etwas Schlimmes passiert. Jemand bricht in mein Auto ein und nimmt den USB-Stick mit, während ich auf dem Heimweg im Geschäft bin. Jetzt müssen sie 1) wissen, wo sich der Server gerade befindet, und 2) ins Büro einbrechen, um die Festplatte zu entschlüsseln. Dieser Teil ist viel schwieriger als "einfach zu Hause an den Computer anschließen".
Ernie
0

Die folgenden Schritte sollten sicher sein. Das Erfordernis der Passphrase verhindert, dass andere Benutzer auf das Volume zugreifen können, obwohl es aktiviert ist.

1.Öffnen Sie Disks, wählen Sie das Laufwerk aus und klicken Sie auf das LUKS-Volume. Klicken Sie auf die Zahnräder und wählen Sie "User Session Defaults" aus. Wählen Sie "Beim Systemstart entsperren" und "Zum Entsperren zusätzliche Berechtigung anfordern": Bildbeschreibung hier eingeben

2.Klicken Sie auf das Laufwerk (unterhalb des LUKS-Laufwerks). Klicken Sie auf die Zahnräder und wählen Sie "User Session Defaults" aus. Wählen Sie "Beim Systemstart bereitstellen" und "In Benutzeroberfläche anzeigen": Bildbeschreibung hier eingeben

Sie können auch festlegen, dass eine zusätzliche Authentifizierung erforderlich ist, um das Volume bereitzustellen. In diesem Fall erfolgt die Bereitstellung für den betreffenden Benutzer jedoch nicht automatisch.

ElToro1966
quelle