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:

 

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 .

Listing 1

<C>/etc/pam.d/kdm<C>

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 3 finden Sie eine Liste der möglichen Abbruchoptionen.

Tabelle 3

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« ).

Listing 2

Verschlüsseln mit PAM-Mount

<?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.

comments powered by Disqus

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2022