Generalschlüssel
Mit PAM-Mount beim Anmelden verschlüsselte Partitionen einhängen
Linux-PAM konfigurieren
Damit Linux-PAM das Modul PAM-Mount beim Anmelden abarbeitet, integrieren Sie es in die Linux-PAM-Konfiguration. Die Installation von PAM-Mount unter Ubuntu 8.10 installiert die Datei /etc/pam.d/common-pammount und erweitert damit die vier Aufgaben, die Linux-PAM beim Anmelden durcharbeitet, um eine fünfte. Darin findet sich der folgende Code:
auth optional pam_mount.so try_first_pass session optional pam_mount.so
Jetzt kommt es darauf an, in welchem Fall sie die verschlüsselte Partition einhängen möchten – danach richtet sich die jeweiligen Konfiguration. Möchten Sie beispielsweise, dass das System die verschlüsselte Partition nur beim grafischen Anmelden mountet, fügen Sie @include common-pammount in die Datei /etc/pam.d/gdm (Gnome) oder /etc/pam.d/kdm (KDE) ein. Ein Beispiel für das Anmelden mit PAM-Mount unter Kubuntu mit KDE findet sich in Listing 1.
# # /etc/pam.d/kdm - specify the PAM behaviour of kdm # auth required pam_nologin.so auth required pam_env.so readenv=1 auth required pam_env.so readenv=1 envfile=/etc/default/locale @include common-pammount @include common-auth session required pam_limits.so @include common-account @include common-password @include common-session
Achten Sie darauf, dass common-pammount immer vor common-auth steht. Findet sich in der Konfiguration oder einer der Include-Dateien ein Modul mit sufficient als Abbruchbedingung, stoppt Linux-PAM das Abarbeiten aller weiteren Module nach der Eingabe eines gültigen Passworts. Das führt dann unter Umständen dazu, dass PAM-Mount nicht mehr zum Einsatz kommt. Die Bedingung required hingegen arbeitet restriktiver. In der Tabelle "Abbruchbedingungen" finden Sie eine Liste der möglichen Abbruchoptionen.
Abbruchbedingungen
| Bedingung | Erklärung |
|---|---|
required
|
Hat Linux-PAM das Modul abgearbeitet, führt es zwar die folgenden noch aus. Allerdings haben diese keinen Einfluss mehr auf das Ergebnis – gleichgültig, ob erfolgreich oder nicht erfolgreich ausgeführt. |
requisite
|
Läuft das Modul erfolgreich durch, arbeitet Linux-PAM den Rest der Module ab. Der erfolgreiche Status bleibt solange bestehen, bis ein anderes Modul einen Fehler meldet. Bricht das Modul sofort erfolglos ab, endet das Anmelden an diesem Punkt mit einem Fehler. |
sufficient
|
Läuft das Modul erfolgreich durch, genügt das Linux-PAM, und es beendet das Verarbeiten aller weiteren Module. Für den Fall, dass das Modul fehlschlägt, fährt Linux-PAM mit den folgenden Modulen fort. |
optional
|
PAM verarbeitet das Modul zwar, ignoriert aber das Ergebnis. |
In aller Regel findet sich common-pammount als erstes Modul ganz gut zurecht, was am Parameter try_first_pass liegt. Dieser gehört zu den in Linux-PAM feststehenden Optionen; alle Module dürfen ihn verwenden. Er veranlasst Linux-PAM, das Passwort eines vorangegangenen Moduls wiederzuverwenden und zu prüfen, ob es auch für dieses Modul passt. Anders als die Option use_first_pass fragt try_first_pass bei einem ungültigen Passwort erneut nach.
Eigene Konfiguration
Wie bereits gezeigt, reicht das Auskommentieren einer Zeile in der Konfiguration von PAM-Mount, um eigene Konfigurationen im Home-Verzeichnis abzulegen. Eine solche Beispielkonfiguration für eine mit DM-Crypt und LUKS verschlüsselte Partition auf einem mobilen Datenträger findet sich in Listing 2. Das Format weist im wesentlichen zwei Elemente auf: In einem umschließenden Element <pam_mount></pam_mount> befinden sich Elemente mit dem Namen <volume />, deren Attribute enthalten die Werte zum Einbinden der Partition (user, fstype, path und mountpoint sowie options).
<?xml version="1.0" encoding="utf-8" ?> <!DOCTYPE pam_mount SYSTEM "pam_mount.conf.xml.dtd"> <pam_mount> <volume user="ruth" fstype="crypt" path="/dev/disk/by-uuid/0e9413a8-6370-4d69-980f-51dd594ae7ae" mountpoint="~/mnt/usbdrive" options="" /> </pam_mount>
Der Benutzername gibt an, wer dieses Volumen einhängen darf. Der Dateisystemtyp macht klar, um welche Art Partition es sich handelt. Der Gerätepfad schließlich enthält die Angaben für die einzubindende Quelle und den Mountpoint, unter dem Sie die Daten nach dem Einbinden erreichen. Mögliche Optionen stünden in options, was aber im konkreten Beispiel nicht der Fall ist. Der Dateisystemtyp crypt besagt, dass für diesen Typ der XML-Parameter cryptmount in der Konfigurationsdatei /etc/security/pam_mount.conf.xml beim Einhängen zum Einsatz kommt. Dahinter versteckt sich mit dem Befehl mount.crypt das Kommando, das Sie beim manuellen Einbinden von Partitionen verwenden, die mit DM-Crypt/LUKS verschlüsselt wurden.
Beim Quellpfad des einzuhängenden Gerätes kommt eine besondere Schreibweise zum Einsatz: Gerade bei mobilen Datenträgern, die Sie über einen USB-Port anschließen, ändert sich die Reihenfolge der Geräte gelegentlich: Was eben noch als /dev/sdc1 auftauchte, erscheint morgen unter Umständen als /dev/sdd1 im System.
Besser eignet sich zum Ansprechen einer solchen Partition dagegen der Universally Unique Identifier (UUID), den Udev als symbolischen Link auf das eigentliche Gerät in /dev ablegt. Sie lesen die UUID für die jeweilige Partition mit dem Befehl sudo /lib/udev/vol_id --uuid Partition
aus und nutzen sie dann zum Mounten der Partition, so wie in Listing 2 angegeben.



