Ubuntu bietet während der Installation nicht mehr die Möglichkeit, Home-Verzeichnisse zu verschlüsseln. Wenn man dies nachträglich tun möchte, reichen ein paar Befehle dazu aus.

Es wird fscrypt für die Verschlüsselung verwendet. Beim Einloggen wird das Home-Verzeichnis automatisch mit seinem Passwort entschlüsselt.

Beginn

Zu Beginn wird die Partition definiert, auf der das /home Verzeichnis liegt - dies könnte /dev/sda1 sein - prüfen mit df -h (wenn es keine /home Partition gibt, ist es vermutlich die / Partition)

export DEVICE=/dev/sda1

Damit die Verschlüsselung auf dem Dateisystem aktiviert werden kann, muss zuerst geprüft werden ob die Blockgröße gleich der Seitengröße ist. Wenn dies nicht der Fall ist NICHT DIE VERSCHLÜSSELUNG AKTIVIEREN!

getconf PAGE_SIZE
4096
sudo tune2fs -l $DEVICE | grep 'Block size'
Block size:               4096

Wenn die beiden Werte gleich sind (hier 4096) kann die Verschlüsselung aktiviert werden:

tune2fs -O encrypt $DEVICE

Nun wird fscrypt installiert

sudo apt install fscrypt libpam-fscrypt

PAM einrichten

Erstellen der Datei /usr/share/pam-configs/keyinit-fix (benötigt sudo Rechte) und befüllen:

Name: keyinit fix
Default: yes
Priority: 0
Session-Type: Additional
Session:
	optional	pam_keyinit.so force revoke

Danach wird konfiguriert, dass fscrypt PAM verwenden kann

sudo pam-auth-update

Nun aus- und einloggen, damit die neuen PAM-Dateien geladen werden.

Verschlüsselung des Home-Verzeichnisses

Der folgende Befehl muss in einem Terminal als root-Benutzer oder einem anderen Benutzer erfolgen, dessen /home Verzeichnis verschlüsselt werden soll (<user> durch den gewünschten Benutzernamen ersetzen):

sudo su -
export USERNAME=<user>
mv /home/$USERNAME /home/$USERNAME.bak
mkdir /home/$USERNAME
chown $USERNAME:$USERNAME /home/$USERNAME
fscrypt encrypt /home/$USERNAME --user=$USERNAME
rsync -avH --info=progress2 --info=name0 /home/$USERNAME.bak/ /home/$USERNAME/
rm -rf /home/$USERNAME.bak