Manche Verschlüsselungsysteme fragen zum Entschlüsseln ein Passwort ab. Allerdings trägt gerade die gehäufte Eingabe von Passwörtern dazu bei, dass diese Methoden als unkomfortabel gelten und nicht zum Einsatz kommen. Das gilt besonders, wenn es sich um viele verschiedene Passwörter handelt, wie für Mailkonto, Arbeitsplatz-PC und Notebook sowie die verschlüsselte Partition auf der mobilen Festplatte.
Als Kompromiss aus Sicherheit und Komfort bietet es sich an, bei einer klar definierten Umgebung das gleiche Passwort für zwei verschiedene Anmeldevorgänge zu nutzen – zum Beispiel das Anmelden am System sowie als Passphrase zum Entschlüsseln einer Partition oder eines Verzeichnisses. Genau diese Möglichkeit bietet das bereits seit 1995 existente Linux-PAM[1]. Nahezu alle Distributionen enthalten diese Software.
Modul-Baukasten
Linux-PAM funktioniert nach einem einfachen Prinzip: Meldet Sie sich am System an, arbeitet PAM die einzelnen Module wie Glieder einer Kette in der Reihenfolge ab, wie es sie in einer entsprechenden Konfigurationsdatei unterhalb von /etc/pam.d findet. Bei Ubuntu liegen dort bereits Dateien wie beispielsweise gdm oder kdm, die einen Login-Vorgang beschreiben. Sie steuern das grafische Anmelden für Gnome und KDE.
Des weiteren finden sich dort login für die Terminals und sshd für das Anmelden von entfernten Rechnern. Linux-PAM unterteilt die Anmeldeprozedur in vier Schritte. Jeder Schritt hat eine eigene Konfiguration, die mit common- beginnt, auf das ein Bezeichner für den jeweiligen Abschnitt (siehe Tabelle "Aufgabenteilung") folgt.
Aufgabenteilung
| Bezeichner | Funktion |
|---|---|
account
|
überprüft, ob der Benutzer berechtigt ist sich anzumelden – abhängig von beispielsweise der Tageszeit oder der Systemlast |
auth
|
authentifiziert den Benutzer und erzeugt die notwendigen Daten wie die User- und die Group-ID |
password
|
überprüft das Benutzerpasswort |
session
|
Aufgaben, die PAM am Ende der Anmeldung abarbeitet (Beispiel: Mounten von Verzeichnissen) |
Die Programmierschnittstelle von Linux-PAM ermöglicht es, die Module den jeweiligen Anforderungen anzupassen. Das bereits im PAM-Paket enthaltene Modul pam_cracklib.so findet sich in der Konfiguration common-password und definiert, wieviele Anmeldeversuche erlaubt sind, wie lang das Passwort sein muss und welcher Komplexität es entsprechen soll. Näheres zu einzelnen Beispiel-Modulen finden Sie in der Tabelle "Beispielmodule" und in den jeweiligen Manpages.
Beispielmodule
| Modul | Aufgabe |
|---|---|
pam_unix.so
|
prüft den Benutzer gegen die Datei /etc/passwd.
|
pam_nologin
|
existiert die Datei /etc/nologin, gibt PAM den Inhalt der Datei aus und erlaubt ausschließlich root das Anmelden.
|
pam_env.so
|
setzt und erlaubt das Setzen von Umgebungsvariablen. |
pam_limits.so
|
erlaubt es, für Benutzer und Gruppen bestimmte Maximalwerte in Bezug auf die Systemlast in der Datei /etc/security/limits.conf zu definieren (Beispiel: Anzahl der Prozesse für einen Benutzer oder Anzahl der offenen Dateien).
|
PAM-Mount
PAM-Mount [2] gehört zu den Spezialisten unter den Modulen für Linux-PAM. Das aus einem freien Projekt entwickelte Modul ermöglicht es, verschiedene Dateisysteme automatisch beim Anmelden einzuhängen. Dabei dürfen auch Netzwerkprotokolle wie SMB/CIFS oder NFS zum Einsatz kommen. Darüber hinaus unterstützt PAM-Mount alle gängigen lokalen Dateisysteme, solche im Userspace mit FUSE[3] und verschlüsselte mit DM-Crypt/LUKS[4] oder EncFS [5] via FUSE.
Da die Konfiguration etwas mehr umfasst, als nur Kommandozeilenoptionen an ein Skript in der PAM-Konfiguration zu übergeben, hält PAM-Mount eine eigene Konfigurationsdatei parat. Die Arbeit mit dieser /etc/security/pam_mount.conf.xml erscheint zunächst gewöhnungsbedürftig, da es sich um eine XML-Datei handelt. Hatten Sie aber bereits einmal mit HTML-Dateien zu tun, dürfte Ihnen auch der Umgang mit XML keine Probleme bereiten.
Die Installation von PAM-Mount auf erledigen Sie unter den gängigen Distributionen bequem per Paketmanager. Auf Debian-basierten Systemen genügt ein schlichtes sudo apt-get install libpam-mount im Terminal.
Danach schalten Sie als erstes in der Konfigurationsdatei den Debug-Modus ein. Das hilft bei ersten Tests, da der Modus mögliche Probleme deutlich beschreibt. Haben Sie eine funktionierende Konfiguration, deaktivieren Sie den Debug-Modus wieder, in dem Sie das Attribute enable auf 0 zurücksetzen. In /etc/security/pam_mount.conf.xml sieht das Einschalten des Debug-Modus folgendermaßen aus:
<debug enable="1" />
Um beim Anmeldevorgang gleichzeitig die Ausgabe des Debug-Modus sehen zu können, müssen Sie die Datei /etc/pam.d/login für PAM-Mount vorbereiten, indem Sie die Datei um die Zeile @include common-pammount erweitern. Beim grafischem Login erscheint die Ausgabe allerdings nur in /var/log/auth.log. Das macht erste Tests mit dem Modul äußerst umständlich. Einfacher geht es, wenn Sie mit [Strg]+[Alt]+[F3] zu einem Terminal wechseln und sich dort anmelden.
Es empfiehlt sich auch, ein Terminal mit einer Benutzer-Session offen zu halten, die es erlaubt, mit Sudo zu arbeiten. Sollte sich ein Fehler in die Konfiguration einschleichen, funktioniert unter Umständen das gesamte Anmelden nicht mehr. Da hilft dann nur noch eine Rescue-CD weiter, um Linux-PAM wieder in den Ausgangszustand zu versetzen.
Mit einer simplem Anweisung in der Konfigurationsdatei PAM-Mount erlauben Sie benutzereigene Konfigurationen im Home-Verzeichnis. Dazu kommentieren Sie folgende Zeile aus:
<!-- <luserconf name=".pam_mount.conf.xml" /> -->
Als Kommentarzeichen fungieren dabei, wie bei HTML, das führende <!-- sowie --> als Abschluss. Haben Sie diese entfernt, darf jeder Benutzer im System eine eigene Konfigurationsdatei in der Datei ~/.pam_mount.conf.xml in seinem Home-Verzeichnis erstellen. Diese liest das Modul beim Anmelden.
Die anderen Einstellungen in der Konfigurationsdatei beschreiben Befehle zum Einhängen verschiedener Dateisysteme, die Sie in aller Regel nicht benötigen. Möchten Sie trotzdem Hand anlegen, helfen Ihnen die ausführlichen Kommentare und Beispiele in der Datei bei Schreiben der gewünschten Regel. Eine Manpage existiert ebenfalls.



