Im Rahmen der (Neu-)Installation von Ubuntu (Jaunty) hatte ich mit crypsetup zu kämpfen; GDM wollte das /home-Verzeichnis beim Login nicht automatisch entsperren. Von daher ein Quick'n'Dirty für die Einrichtung eines verschlüsselten Home-Verzeichnisses.
cryptsetup installieren und Partition erstellen
Cryptsetup muss natürlich drauf, für nachher brauchen wir auch noch pam_mount und das dm_crypt-Kernelmodul:
sudo apt-get install cryptsetup libpam_mount sudo modprobe dm_crypt
Es ist sinnvoll, /home auf eine separate Partition auszulagern. Diese sollte an erster Stelle der Partitionstabelle stehen, da sie später mit den meisten Anwendungen nicht mehr verschoben werden kann (GParted zum Beispiel). Nehmen wir also an die Partition ist /dev/sda1:
sudo crypsetup -c aes-xts-plain -y -s 512 luksFormat /dev/sda1
Wichtig: Das verwendete Passwort muss das Login-Passwort des Nutzers sein!
Dann öffnen wir das Ding:
sudo cryptsetup luksOpen /dev/sda1 home
worauf es in /dev/mapper/home gemappt wird. Jetzt kann man ein Dateisystem drauf erstellen:
sudo mkfs.ext3(4) /dev/mapper/home
Mounten und Dateien migrieren
Mounten wir das Ding:
sudo mount /dev/mapper/home /mnt
und kopieren die Dateien unseres alten Homes rüber (/home ggf ersetzen):
sudo cp -ar /home/* /mnt
PAM und GDM einrichten
Damit GDM die Partition beim Login entsperrt, muss in die Datei /etc/security/pam_mount.conf.xml folgendes eingetragen werden (ungefähr in Zeile 10, unter dem "Volume definitions"-Kommentar):
<volume user="deinbenutzername" fstype="crypt" path="/dev/sda1"
mountpoint="/home" options="fsck,relatime" />
Außerdem wird an die /etc/pam.d/common-session @include common-pammount angehängt:
sudo -s echo "@include common-pammount" >> /etc/pam.d/common-session
Das sollte es gewesen sein. Jetzt noch eine Test-Datei im verschlüsselten /mnt (wo unsere Partition gerade eingehängt ist) erstellen und nach einem Login überprüfen, ob diese auch da ist (dann hat alles geklappt):
touch /mnt/it_works