Authentisierung mittels PAM
Bewertung 2Die Kandidaten sollten in der Lage sein, PAM für die Unterstützung von Authentisierung über das traditionelle /etc/passwd, über Shadow-Paßwörter, NIS oder LDAP zu konfigurieren.
Schlüsseldateien, Begriffe und Hilfsmittel beinhalten:
- /etc/pam.d
- pam.conf
Syntax der PAM-Dateien:
Typ Kontrolle Modulpfad ParameterDie einzelnen Felder haben folgende Bedeutung:
- Typ
- Hier wird der Typ der Authentifizierung angegeben, der für das entsprechende Modul Verwendung finden soll. Module des selben Typs können hintereinander abgearbeitet werden, damit PAM Zugriff gewährt müssen dann alle angegebenen Bedingungen erfüllt sein. PAM unterstützt die vier folgenden Typen:
- account
- Entscheidet, ob der User auf einen Dienst zugreifen darf, ob sein Passwort abgelaufen ist usw.
- auth
- Entscheidet, ob der User derjenige ist, der er vorgibt zu sein. Üblicherweise wird das durch ein Passwort realisiert, es sind aber auch andere Methoden (Biometrie) denkbar.
- password
- Bietet Möglichkeiten an, mit denen User ihre Authentifizierung ändern können. Auch das wird üblicherweise ein Passwort sein.
- session
- Dinge, die vor oder nach der Authentifizierung eines Users ablaufen müssen. Das kann z.B. das Mounten des Homeverzeichnisses sein, oder die Einstellungen für das Logbuch oder ähnliches.
- In der Konfigurationsdatei, die den Login steuert, gibt es mindestens einen Eintrag jeden dieser Typen.
- Kontrolle
- Diese Einstellung legt fest, was PAM tun soll, wenn ein Modul der Authentifizierung fehlschlägt. Es gibt auch hier wiederum vier verschiedene Möglichkeiten:
- requisite
- Wenn die Authentifizierung mit diesem Modul fehlschlägt, wird sofort jeder weitere Versuch unterbunden und der Zugriff auf den entsprechenden Dienst verweigert.
- required
- Auch hier führt eine fehlgeschlagene Authentifizierung zu einer Weigerung des Zugriffs, es werden aber eventuell existierende weitere Module noch abgearbeitet. Trotzdem gilt der Zugriff als verweigert, wenn auch nur ein mit required markierter Test fehlschlug.
- sufficient
- Wenn die Authentifizierung mit diesem Modul erfolgreich war, dann wird Zugriff sofort gewährt, wenn alle anderen vorher abgelaufenen und mit required markierten Module erfolgreich waren. Weitere Module werden nicht mehr abgearbeitet.
- optional
- Ob dieses Modul erfolgreich abgearbeitet wurde oder fehlschlägt ist nur dann relevant, wenn es das einzige Modul eines Typs für einen Service ist.
- In der Konfigurationsdatei, die den Login steuert, gibt es für fast alle dieser Kontrolltypen Beispiele. Die meisten Module mit dem Kontrolltyp required beziehen sich auf pam_unix.so, dem Haupt Authentifizierungsmodul. Das einzige Modul mit dem Kontrolltyp requisite ist pam_securetty.so, das überprüft, ob der Login auf einem sicheren Terminal stattfindet und das einzig optionale Modul ist das, was sich mit der Information über den letzten Login beschäftigt, also pam_lastlogin.so.
- Modulpfad
- Der Name (und optional der Pfad) des Moduls, das die entsprechende Aufgabe übernehmen soll. Wird der Pfad weggelassen, so wird davon ausgegangen, dass sich die Module in /usr/lib/security oder /lib/security befinden. Der FileSystemStandard legt die zweite Lokalität fest, damit die Module auch existieren, wenn nur das Wurzelverzeichnis gemountet ist.
- Parameter
- Die Parameter, die dem Modul mitgegeben werden sollen. Jedes Modul kennt eigene Parameter. Der Parameter nullok (Null OK) den das Modul pam_unix.so mitbekommen kann, bedeutet, dass es OK ist, wenn ein User kein Passwort (bzw. ein leeres Passwort) benutzt.
Sind die Anweisungen von PAM statt im Verzeichnis /etc/pam.d alle zusammen in der Datei /etc/pam.conf, dann steht vor den vier oben beschriebenen Feldern noch der Name des Dienstes, um den es geht.
Entweder ist also in der Datei /etc/pam.d/login die Zeile
auth required pam_unix.so nullokoder in der Datei /etc/pam.conf stehtlogin auth required pam_unix.so nullok
Die other-Datei
Jede Datei in /etc/pam.d bezieht sich auf einen bestimmten Dienst. Die einzige Ausnahme ist die Datei /etc/pam.d/other. Diese Datei enthält die Konfiguration für all diejenigen Dienste, die keine eigene Konfigurationsdatei haben. Wenn ein bestimmter Dienst gestartet werden soll, dann sucht PAM zunächst nach einer Datei in /etc/pam.d, die den Namen des Dienstes trägt. Findet PAM diese Datei nicht, dann wird die Datei others im Verzeichnis /etc/pam.d abgearbeitet. Da diese Datei sozusagen als Rückgriff für alle nicht spezifizierten Dienste fungiert, muss sie besonders sicher sein.Um z.B. grundsätzlich alles zu verbieten, was nicht explizit in einer eigenen Datei erlaubt ist, kann in die Datei /etc/pam.d/other folgendes eingetragen werden:
auth required pam_deny.so auth required pam_warn.so account required pam_deny.so account required pam_warn.so password required pam_deny.so password required pam_warn.so session required pam_deny.so session required pam_warn.soDamit wären alle vier denkbaren Möglichkeiten abgelehnt (pam_deny.so) und im Syslog protokolliert (pam_warn.so).
Wichtige PAM-Module
Die gesammte Funktionalität von PAM wird über Module bereitgestellt. Für jede Aufgabe, die PAM erledigen soll, gibt es ein entsprechendes Modul, das diese Aufgabe löst. Dieses Prinzip ermöglicht die einfache und schnelle Erweiterung der Programme, die eine Authentifizierung erfordern, ohne dass an diesen irgend etwas am Quellcode verändert werden müsste.Wichtige Module von PAM sind
- pam_access.so
- Ermöglicht eine Einstellungen, welche User (lokal oder netzweit) sich auf welchem Terminal einloggen dürfen. Hiermit kann z.B. festgelegt werden, dass sich ein User hans zwar vom Rechner1 aber nicht vom Rechner2 oder nicht auf Terminal3 einloggen darf. Konfigurierbar in /etc/security/access.conf oder der Datei, die als Parameter accessfile=Datei angegeben wurde.
- pam_chroot.so
- Ermöglicht den Betrieb verschiedener chroot-Umgebungen für verschiedene User.
- pam_cracklib.so
- Überprüfung, ob sichere Passwörter verwendet werden. Benötigt eine installierte libcrack-Library. Das Modul ermöglicht eine feine Einstellung der Anforderungen von Passwörtern über Parameter wie minlen=...
- pam_deny.so
- Verbietet einen beliebigen Dienst. Geeignet für die other Datei.
- pam_env.so
- Ermöglicht das Setzen und Entfernen von Umgebungsvariablen. Konfigurierbar über /etc/security/pam_env.conf.
- pam_filter.so
- Ermöglicht den Einsatz von Filterprogrammen, die alle Ein- und Ausgaben eines Terminals filtern. Einzige mitgelieferte Variante ist ein Programm, das Klein- in Großbuchstaben verwandelt...
- pam_ftp.so
- Ermöglicht anonymes Login für FTP-Logins mit eMail Adresse als Passwort.
- pam_group.so
- Steuert die Gruppenzugehörigkeit einzelner User. Konfigurierbar über /etc/security/groups.conf.
- pam_issue.so Ersetzt die Funktionalität des login/getty-Programmes, die Datei /etc/issue vor dem Login auf dem Terminal darzustellen.
- pam_krb4.so
- Bietet die Nutzung von Kerberos4 Authentifizierung an.
- pam_lastlog.so
- Dieses Modul verwaltet die /var/log/lastlog Datei.
- pam_limits.so
- Übernimmt Einstellungen hinsichtlich der Beschränkung von Ressourcen aus der Datei /etc/security/limits.conf.
- pam_listfile.so
- Ermöglicht es, bestimmten Usern den Zugriff zu verweigern oder zu erlauben, wenn sie in bestimmten Dateien aufgelistet sind. (/etc/ftpusers wäre ein typisches Beispiel).
- pam_mail.so
- Überprüft nach dem Einloggen eines Users, ob neue Mail für ihn da ist und meldet es ihm gegebenenfalls.
- pam_mkhomedir
- Legt Homeverzeichnisse für User an, die noch keine haben.
- pam_motd.so
- Gibt die motd-Datei nach dem Login aus.
- pam_nologin.so
- Wenn die Datei /etc/nologin existiert, werden alle Versuche des Logins - außer die von root - abgewiesen.
- pam_permit.so
- Das Gegenteil von pam_deny.so. Erlaubt alles. Sehr gefährlich!!!
- pam_pwdb.so
- Unix-artiges Passwort Management und Authentifizierung.
- pam_rhosts_auth.so
- Steuert die Verwendung von .rhosts Dateien
- pam_rootok.so
- Gibt Dienste frei, wenn sie von root (echte UID, nicht effektive UID) aufgerufen werden.
- pam_securetty.so
- Arbeitet die Datei /etc/securetty ab, um festzulegen, ob sich root auf einem bestimmten Terminal einloggen darf.
- pam_tally.so
- Zählt fehlgeschlagene Login-Versuche mit und kann optional nach einer bestimmten Anzahl einen Account sperren.
- pam_time.so
- Ermöglicht über die Konfiguration in /etc/security/time.conf die Einstellung, zu welcher Zeit welche Dienste zur Verfügung stehen.
- pam_unix.so
- Stellt die normale Unix-Funktionalität zum Umgang mit den Dateien passwd und shadow zur Verfügung. Über den Parameter nis wird auch NIS unterstützt.
- pam_userdb.so
- Ermöglicht die Userauthentifizierung über eine Berkley (db) Datenbank.
- pam_warn.so
- Gibt Meldungen über syslog aus.
- pam_wheel.so
- Verschafft den Mitgliedern der Gruppe wheel (GID 0) Root-Privilegien.
Es existieren auch weitere Module, so etwa das Modul pam_ldap.so, mit dem Authentifizierung über LDAP-Server möglich ist.
[ Zurück zur Startseite LPI 201 ] [ Zurück zur LPI-Seite ] [ Zurück zur Hauptseite von Linux-Praxis ] [ Guestbook ] [ Kontakt ]
Diese und die darunterliegenden Seiten wurden erstellt von F. Kalhammer
© 2001 by F.Kalhammer -
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License..