Jaunty und cryptsetup

geschrieben am 2009-04-14 12:48:08.887072 · getaggt unter Ubuntu, Linux, Verschlüsselung, Sicherheit

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