Strom sparender Computereinsatz hilft nicht zuletzt auch Kosten zu senken. ADMIN 02/2011 geht der Frage nach, was Administratoren tun können, damit ihre ... (mehr)

Aufwand

Leider bringt die Verschlüsselung per eCryptfs auch einige Umstände mit sich. So müssen Sie jedes Mal die Optionen angeben, wenn Sie das Verzeichnis mounten wollen:

sudo mount -t ecryptfs secret/ secret/ -o ecryptfs_cipher=aes,ecryptfs_key_bytes=16,ecryptfs_passthrough=n

Dummerweise gibt es für die Verschlüsselung von Dateinamen keine Kommandozeilenoption. Sie können ein Verzeichnis aber ohne Probleme einmal mit und einmal ohne diese Option mounten.

Der andere Nachteil ist, dass das obige Mount-Kommando Root-Rechte erfordert. Um das zu ändern, binden Sie als Administrator das Verzeichnis ein und sehen sich dann die Datei »/etc/mtab« an. Tragen Sie die entsprechende Zeile in »/etc/fstab« ein und fügen Sie noch die Option »user« hinzu. Das Ergebnis sieht dann etwa aus wie Listing 1.

Listing 1

/etc/fstab

 

Fügen Sie Ihren Schlüssel mit »ecryptfs-manager« dem User-Session-Keyring hinzu. Wählen Sie Option 1 (»add passphrase to keyring« ) und tippen Sie dann Ihre Passphrase ein. Mit Option 4 verlassen Sie das Programm. Wenn Sie nun »mount -i newsecret« eingeben, sollten Sie das verschlüsselte Verzeichnis verwenden können (»-i« verhindert den Aufruf des Mount-Hilfsprogramms). Unmounten Sie es wieder und löschen Sie mit »keyctl clear @u« den Session-Keyring.

Zwei weitere Schritte automatisieren diesen Vorgang für das Login. Fügen Sie als Erstes die Zeile »mount -i secret« der »~/.bashrc« hinzu. Tragen Sie dann noch als Administrator die folgende Zeile in »/etc/pam.d/login« ein:

auth required pam_ecryptfs.so

Loggen Sie sich aus und wieder ein, und »secret/« sollte automatisch gemountet werden. Das Gleiche können Sie mit weiteren Verzeichnisse machen, die Sie verschlüsseln möchten. Sie können auch das komplette Home-Verzeichnis mounten statt nur einzelner Verzeichnisse, aber das ist relativ kompliziert. Wie das geht, verrät ein Eintrag im Entwickler-Blog [2].

Die Passphrase zum Mounten von eCryptfs-Verzeichnissen ist in »~/.ecryptfs/wrapped-passphrase« gespeichert und symmetrisch mit dem Login-Passwort verschlüsselt. Per Default ist die Mount-Passphrase ein zufällig generierter 128-Bit-Schlüssel, der schwer zu merken, aber auch schwer zu knacken ist. Wenn Sie ein eCryptfs-Verzeichnis mounten, wird die Passphrase im Kernel-Keyring gespeichert.

Wenn Sie auch Dateinamen verschlüsseln, kommt ein zweiter Schlüssel zum Einsatz, der ebenfalls in den Kernel-Keyring geladen wird. Diese beiden Schlüssel werden dann immer verwendet, wenn Sie auf eine Datei im verschlüsselten Verzeichnis zugreifen.

Um die Sicherheit zu erhöhen, können Sie die Passphrase auf einem portablen Speichermedium wie einem USB-Stick speichern, das Sie an einem sicheren Ort verwahren, wenn Sie nicht eingeloggt sind. Legen Sie dann einen symbolischen Link von »~/.ecryptfs/wrapped-passphrase« zu Schlüsseldatei auf dem Stick an. Damit das auf Dauer zuverlässig funktioniert, müssen Sie den Stick noch in »/etc/fstab« eintragen, damit er immer im selben Verzeichnis eingebunden wird:

/dev/sdb1 /media/usbkey ext3 defaults 0 0

Besonders sauber erledigen Sie das Gleiche bei modernen Linux-Systemen über die Udev-Konfiguration, in der Sie beispielsweise abhängig von den USB-Vendor- und -Produkt-IDs den Stick ins passende Verzeichnis mounten. Wenn Sie den Schlüssel auf einem USB-Stick speichern, sollten Sie noch dringender an ein Backup denken, denn die kleinen Geräte gehen schnell einmal verloren.

Sie können auch die Option »-w« von »ecryptfs-setup-private« verwenden, die statt des Login-Passworts noch eine zweite Passphrase verwendet. Damit können Sie das Security-Level noch einmal steigern, aber das verschlüsselte Verzeichnis kann nicht mehr automatisch beim Einloggen gemountet werden.

Systemverzeichnisse

Denken Sie bei Ihren Sicherheitserwägungen auch daran, dass sensible Daten auch an anderen Stellen landen können, zum Beispiel im tmp-Verzeichnis. Deshalb wollen Sie vielleicht auch andere Verzeichnisse mit eCryptfs schützen. Das können Sie genauso machen wie weiter oben beschrieben, denken Sie nur daran, das entsprechende Verzeichnis in »/etc/fstab« einzutragen, damit Nicht-Root-Benutzer es auch mounten dürfen.

Wenn das fragliche Verzeichnis schon Daten enthält, verkompliziert sich die Prozedur etwas. Machen Sie als Erstes ein Backup der Daten und gehen Sie dann die folgenden Schritte durch:

  • Legen Sie ein neues Verzeichnis an und richten Sie es wie beschrieben als eCryptfs-Verzeichnis ein.
  • Mounten Sie es und kopieren Sie alle Dateien aus dem alten Verzeichnis hinein. Denken Sie dabei auch an die mit einem Punkt beginnenden Dot-Files.
  • Benennen Sie das alte Verzeichnis um und unmounten Sie das eCryptfs-Verzeichnis.
  • Geben Sie dem eCryptfs-Verzeichnis den vorigen Namen des alten Verzeichnisses, tragen Sie es in »/etc/fstab« ein und mounten Sie es wieder. Ihre Daten sind nun verschlüsselt.

Im Fall des tmp-Verzeichnisses ist es am besten, alle temporären Daten zu löschen und es als eCryptfs-Verzeichnis neu anzulegen.

Selbst die Swap-Partition lässt sich verschlüsseln, allerdings funktionieren dann die Schlaf-Modi (Hibernation/Sleep) nicht mehr. Damit ist jedenfalls sichergestellt, dass keine entschlüsselten Dateien im Swap-Bereich liegen. Um die Swap-Partition zu verschlüsseln, installieren Sie »cryptsetup« und führen dann als Administrator »ecryptfs-setup-swap« aus. Das Tool stoppt dann den Swap-Vorgang, verschlüsselt die Partition und startet das Swappen wieder. Zwar wird automatisch ein neuer Eintrag in »/etc/fstab« hinzugefügt, aber der alte bleibt dummerweise erhalten. Sie müssen also die Datei von Hand editieren und den alten Eintrag entfernen. Die verschlüsselte Swap-Partition heißt dann »/dev/mapper/cryptswap« .

comments powered by Disqus

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Google+

Ausgabe /2019