5.7    Konfiguration von PAM

In diesem Abschnitt werden wir etwas näher auf die Konfiguration von PAM eingehen. In Kapitel 17, »LDAP«, wird der LDAP-Client über PAM konfiguriert. Jetzt werfen wir einen genaueren Blick auf die Konfiguration.

Bei allen Distributionen finden Sie die Konfigurationsdateien immer im Verzeichnis /etc/pam.d. In diesem Verzeichnis finden Sie einzelne Dateien für die einzelnen Dienste. Mittlerweile nutzen alle Distributionen die Möglichkeit, durch Include-Einträge die Konfiguration von PAM zu vereinfachen.

In allen Distributionen gibt es zu jedem PAM-Typ eine eigene common-Datei, in der alle Module konfiguriert werden, die für sämtliche Anwendungen benötigt werden. Dadurch ist es möglich, durch die Änderung von nur vier Dateien alle Programme zu konfigurieren. Wenn Sie für einzelne Programme zusätzliche Module benötigen, können Sie diese in die entsprechenden Dateien optional eintragen.

Um die Konfiguration an einem Beispiel zu verdeutlichen, sehen Sie in Listing 5.35 bis Listing 5.37 die Einträge für einen LDAP-Client unter Ubuntu, SUSE und Debian, und zwar jeweils die Datei common-auth:

auth    [success=3 default=ignore]      pam_unix.so nullok_secure
auth [success=2 default=ignore] pam_winbind.so krb5_auth\
krb5_ccache_type=FILE cached_login try_first_pass
auth [success=1 default=ignore] pam_ldap.so use_first_pass
auth requisite pam_deny.so

Listing 5.35    Beispiel »common-auth« für Ubuntu

Hier sehen Sie, dass bei Ubuntu gleich mehrere Authentifizierungsmethoden eingebunden sind. Die Informationen können hier sowohl aus der lokalen passwd kommen als auch aus LDAP oder einem Windows-ADS. Am Ende der Liste steht das Modul pam_deny.

Dieses Modul sorgt dafür, dass für den Fall, dass keine der anderen Methoden den Benutzer authentifizieren konnte, der Zugriff auf jeden Fall verhindert wird.

Hier sehen Sie auch die neuere Schreibweise der Kontrollflags: In den eckigen Klammern können unterschiedliche Flags angegeben werden. Je nachdem, welche der Authentifizierungsquellen den Benutzer authentifiziert hat, wird ein unterschiedlicher Returncode [success=3 default=ignore] zurückgegeben.

Zum Vergleich sehen Sie in Listing 5.36 die Datei common-auth für SUSE:

auth    required        pam_env.so
auth sufficient pam_unix2.so
auth required pam_ldap.so use_first_pass

Listing 5.36    Beispiel »common-auth« für SUSE

Wie Sie sehen, wird hier die ältere Schreibweise der Kontrollflags verwendet. Aber auch hier findet die Option use_first_pass Verwendung, um die Eingaben des Benutzers an die nächste Authentifizierungsmethode zu übergeben.

Jetzt fehlt uns nur noch die Datei common-auth von einem Debian-System mit einem konfigurierten LDAP-Client. Diese Konfiguration sehen Sie in Listing 5.37:

auth sufficient pam_unix.so
auth sufficient pam_ldap.so use_first_pass
auth required pam_deny.so

Listing 5.37    Beispiel »common-auth« für Debian

Da hier bei den Modulen pam_unix und pam_ldap jeweils das Kontrollflag sufficient verwendet wird, folgt im Anschluss noch das Modul pam_deny, um den Authentifizierungsprozess auf jeden Fall definiert abzuschließen.

Eine sehr ausführliche Beschreibung aller Module und ihrer Optionen finden Sie unter folgender URL:

www.kernel.org/pub/linux/libs/pam/Linux-PAM-html