« Archives in October, 2011

Verschlüsseltes Home Verzeichnis in Arch Linux mit eCryptFS [UPDATE]

Matrix eCryptFS

Ich arbeite schon länger daran, das ganze in Verbindung mit PAM-Mount hinzubekommen, allerdings scheint es, als ob
die Anleitung  im ArchWiki nicht mehr funktioniert bzw. essentielle Schritte fehlen. Ich habs wirklich Stunden versucht – ohne Erfolg.
Daraufhin fand ich aber einen wesentlich einfacheren Weg, das ganze hinzubekommen, den ich kurz erklären möchte.

Zu aller erst, zur Vorbereitung wäre es ratsam, folgende zwei Artikel zu lesen:

System Encryption with eCryptfs im Archwiki und eCryptfs and $HOME von anrxc (Thx man!)

Das klappt möglicherweise auch auf anderes Distributionen genauso, es ist immerhin exakt der Weg, den Ubuntu für eCryptFS nimmt ;)

Also, fangen wir an:

1.) Installiere keyutils, and ecryptfs-utils and pam_mount from AUR

yaourt -S keyutils ecryptfs-utils pam_mount

[Alle folgenden Schritte als root!]

2.) Erzeuge eine Gruppe namens ecryptfs

groupadd ecryptfs

3.) Füge den User, dessen $HOME verschlüsselt werden soll, der oben erstellten Gruppe hinzu

usermod -aG ecryptfs user

4.) Lade das eCryptFS Modul

modprobe ecryptfs

5.) Editiere /etc/pam.d/login, so dass es wie folgt aussieht:

#%PAM-1.0
auth            required        pam_securetty.so
auth            requisite       pam_nologin.so
auth            required        pam_unix.so nullok
auth            optional        pam_ecryptfs.so unwrap
auth            required        pam_tally.so onerr=succeed file=/var/log/faillog
# use this to lockout accounts for 10 minutes after 3 failed attempts
#auth           required        pam_tally.so deny=2 unlock_time=600 onerr=succeed file=/var/log/faillog
account         required        pam_access.so
account         required        pam_time.so
account         required        pam_unix.so
#password       required        pam_cracklib.so difok=2 minlen=8 dcredit=2 ocredit=2 retry=3
password        optional        pam_ecryptfs.so
#password       required        pam_unix.so md5 shadow use_authtok
session         required        pam_unix.so
session         optional        pam_ecryptfs.so unwrap
session         required        pam_env.so
session         required        pam_motd.so
session         required        pam_limits.so
session         optional        pam_mail.so dir=/var/spool/mail standard
session         optional        pam_lastlog.so

6.) Für Gnome < 3.2 (gdm < 3.2) Anschließend auch /etc/pam.d/gdm: (sofern du gdm benutzt .. ansonsten selber rausfinden ;))

#%PAM-1.0
auth            requisite       pam_nologin.so
auth            required        pam_env.so
auth            required        pam_unix.so
auth            optional        pam_ecryptfs.so unwrap
auth            optional        pam_gnome_keyring.so
account         required        pam_unix.so
session         required        pam_limits.so
session         required        pam_unix.so
session         optional        pam_ecryptfs.so unwrap
session         optional        pam_gnome_keyring.so auto_start
password        required        pam_unix.so
password        optional        pam_ecryptfs.so

Für Gnome >= 3.2 (gdm >= 3.2) muss man stattdessen /etc/pam.d/gdm-password editieren:

#%PAM-1.0
auth            requisite       pam_nologin.so
auth            required        pam_env.so
auth            requisite       pam_unix.so nullok
auth		optional	pam_ecryptfs.so unwrap
auth            optional        pam_gnome_keyring.so
auth            sufficient      pam_succeed_if.so uid >= 1000 quiet
auth            required        pam_deny.so
account         required        pam_unix.so
password        required        pam_unix.so
password        optional        pam_ecryptfs.so
session         required        pam_loginuid.so
-session        optional        pam_systemd.so
session         optional        pam_keyinit.so force revoke
session         required        pam_limits.so
session         required        pam_unix.so
session         optional        pam_ecryptfs.so unwrap
session         optional        pam_gnome_keyring.so auto_start

7.) Führe folgenden Befehl aus: (Es kann lange dauern, da er das gesamte $HOME verschlüsselt. Folge den Bildschirmanweisungen!)

ecryptfs-migrate-home -u user

Beachte abschließend unbedingt die Bildschirmanweisungen und führe sie nach Schritt 8.) aus! (Lösche das unverschlüsselte Backup danach (/home/user.XXXXX) / Notier dir die Passphrase, welche von ecryptfs generiert wurde mit Hilfe von ecryptfs-unwrap-passphrase / …)

8.) Log dich ein, und prüfe ob alles in Ordnung war.

Diese Vorgehensweise ist recht einfach und führt schnell ans Ziel und wird genau so von Ubuntu (10.04/10.10) benutzt. Ausserdem hat es nun den Vorteil, dass man User mit verschlüsseltem $HOME und ohne verschlüsseltes $HOME haben kann und dass $HOME automatisch nach logout “geschlossen” wird, was anrxc’s Lösung nicht macht.

Man kann außerdem auch den Swap-Space mit einem eCryptFS Tool verschlüsseln, einfach mal ecryptfs-setup-swap probieren ;)

Ich hoffe das hilft jemand, ich hab das auch ins Archwiki eingestellt.

Weiterhin 1000 mal Danke an jomen für die Vorstellung dieser super Lösung im Arch-Forum!

Edit am 02.10.2011: Gnome 3.2/gdm 3.2 hat probleme mit der bisherigen Methode, das funktioniert irgendwie nicht.
Dank