Benutzeranmeldung mit Fingerabdruck

Fingerübung

Die Pluggable Authentication Modules, kurz PAM, erlauben auf vielfältige Weise die Authentifizierung am System – etwa per Fingerabdruck. Das Admin-Sonderheft gibt einen Einblick in das komplexe System.

Das neue Notebook mit dem schicken Fingerprint-Reader ist endlich da – doch wie benutzen Sie diese nützliche Hardware-Komponente unter Linux zum Authentifizieren von Benutzern? Hier helfen die Pluggable Authentication Modules (PAM) weiter. Sie ermöglichen es, Anwender über eine Vielzahl von unterschiedlichen Verfahren zu authentifizieren.

Standards

Die klassische Benutzerauthentifizierung erfolgt meist mithilfe der Dateien »/etc/passwd« und »/etc/shadow« . Für jeden bekannten Anwender steht in der Datei »/etc/passwd« ein Eintrag mit den Account-Informationen, wie etwa dessen User- und Gruppen-ID sowie Login-Shell und Heimatverzeichnis (Listing 1).

Bei jeder Anmeldung ermittelt PAM die Prüfsumme des vom Benutzer eingegebenen Passworts und vergleicht sie mit der in der Datei »/etc/shadow« hinterlegten. Stimmen beide überein, gilt der Benutzer als authentifiziert. Andernfalls erscheint eine Fehlermeldung, und die Anmeldung des Benutzers schlägt fehl.

Listing 1

<C>/etc/shadow<C>

 

Verschiedene Module

Für andere Arten der Authentifizierung, beispielsweise über einen LDAP-Server oder über eine Chipkarte, müssten viele existierende Anwendungen neu geschrieben werden. Das lässt sich freilich in der Praxis kaum realisieren. Hier hilft PAM als eine Art Framework zur Authentifizierung von Benutzern: Jede Anwendung, die mit PAM zusammenarbeitet, besitzt unterhalb das Verzeichnisses »/etc/pam.d/« eine eigene Konfigurationsdatei. Über diese ruft das Programm sogenannte PAM-Bibliotheken, auch Module genannt, aus dem Verzeichnis »/lib/security/« auf.

Jedes dieser Module übernimmt eine bestimmte Aufgabe. So dient »pam_unix.so« zur klassischen Benutzerauthentifizierung via »/etc/passwd« und NIS (Network Information Service). Das Modul »pam_ldap.so« ermöglicht das Authentifizieren über LDAP-Server, »pam_thinkfinger.so« unterstützt die Anmeldung via Fingerprint-Reader. Möchten Sie eine neue Art der Authentifizierung hinzufügen, so reicht es aus, die jeweilige PAM-Bibliothek in der passenden Konfigurationsdatei anzugeben. Anstatt für jede neue Art der Authentifizierung die Anwendung neu zu schreiben, müssen sie diese nur einmalig "pam-ifizieren", indem Sie beim Übersetzen aus den Quellen auf die Bibliothek »libpam.so« zurückgreifen.

Neben der Authentifizierung von Benutzern kümmert sich PAM auch um die Autorisierung. So lässt sich die Benutzeranmeldung etwa auf bestimmte Uhrzeiten einschränken. Mit anderen Modulen bestimmen Sie, wie viel CPU-Rechenzeit ein Benutzer für seine Login-Sitzung bekommt – gerade in Zeiten von SETI@home und ähnlichen Projekten ein interessantes Feature.

Schließlich kümmert sich PAM auch um die Qualität der Passwörter, indem es beim Erstellen oder Ändern definierte Komplexitätsregeln anwendet. So legen Sie via PAM zum Beispiel fest, wie viele Klein- oder Großbuchstaben ein neues Passwort enthalten muss, damit es das System als gültig anerkennt.

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 /2021