Pam Konzepte: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 60: Zeile 60:
  
 
  [wert1 = aktion1 wert_2 = aktion_2 ...]
 
  [wert1 = aktion1 wert_2 = aktion_2 ...]
 +
=Werte=
 +
==success==
 +
*Das Modul sagt das es ok ist.
 +
==ignore=
 +
*Modul signalisiert, dass sein Rückgabewert ignoriert werden soll
 +
=abort=
 +
*Modul sagt Stopp jetzt
 +
=default=
 +
*alle Rückgabewerte, die nicht explizit in diesem [Satz] erwähnt werden', oft verwendet, um alle Fehler/Ausfälle abzufangen (weil es eine Menge davon gibt)
 +
=errors/failures include=
 +
open_err, symbol_err, service_err, system_err, buf_err, auth_err, session_err, cred_err, conv_err, authtok_err, authtok_recover_err
 +
user_unknown, perm_denied, cred_insufficient, authinfo_unavail, new_authtok_reqd, authtok_lock_busy, authtok_disable_aging, authtok_expired, acct_expired, maxtries, cred_unavail, cred_expired, try_again, module_unknown, bad_item, conv_again, incomplete, no_module_data
  
[success=ok new_authtok_reqd=ok ignore=ignore default=bad]
+
action is one of
Die aktion𝑖-Werte können wie folgt sein:
 
=ignore=
 
*Der Rückgabewert des Moduls wird ignoriert
 
=bad=
 
*Der Rückgabewert wird als Anzeichen dafür angesehen, dass der Authenti-
 
sierungsvorgang (später) fehlschlagen sollte (dies entspricht vage dem, was
 
bei required passieren soll – aber siehe unten!).
 
=die=
 
*Entspricht bad, aber liefert den Fehler sofort an das aufrufende Programm zu-
 
rück (denken Sie an requisite).
 
=ok=
 
*Gibt an, dass dieser Rückgabewert zum Rückgabewert des gesamten Authen-
 
tisierungsvorgangs beitragen sollte. Das heißt, wenn bis hierher Erfolg zu-
 
rückgemeldet werden würde, dann überschreibt dieser Rückgabewert das,
 
aber wenn bis hierher ein Fehlschlag zurückgemeldet werden würde, wird
 
er ignoriert.
 
=done=
 
Entspricht ok, aber liefert den Erfolg (oder früheren Fehlschlag) sofort an das
 
aufrufende Programm zurück (denken Sie an sufficient).
 
𝑛 (eine positive ganze Zahl) Entspricht ok, aber überspringt die folgenden 𝑛 Kon-
 
figurationszeilen. (𝑛 = 0 ist verboten.)
 
=reset=
 
Alles Bisherige soll vergessen und mit der nächsten Zeile von vorne weiter-
 
gemacht werden.
 
Tabelle 2.1 zeigt die Korrespondenz zwischen den »traditionellen« Schlüssel-
 
wörtern und ihren »modernen« Äquivalenten. Sie können ungeniert weiter die
 
Schlüsselwörter verwenden; sie werden nicht verschwinden.
 
In der dritten Spalte steht ein Modulname – entweder als absoluter Pfad oder
 
als Dateiname relativ zu /lib/security – gefolgt von allfälligen (modulspezifischen)
 
Argumenten. (Bei include und substack enthält die dritte Spalte den Namen – ab-
 
solut oder relativ zu /etc/pam.d – der einzulesenden Datei.)
 
B Grundsätzlich können Sie auch die komplette PAM-Konfiguration Ihres
 
Systems in der Datei /etc/pam.conf ablegen – Sie müssen dann nur den Na-
 
men des Programms an den Zeilenanfang stellen: Die Zeile
 
login auth required pam_unix.so shadow nullok
 
entspricht der Zeile
 
  
 
+
ignore - module's return status will not contribute to the stack's return code
 
+
bad - flag ourselves as having failed (doesn't terminate)
Die aktion𝑖-Werte können wie folgt sein:
+
die - bad, and terminate
ignore Der Rückgabewert des Moduls wird ignoriert
+
ok - this module's return code should be considered (...if there are no errors)
bad Der Rückgabewert wird als Anzeichen dafür angesehen, dass der Authenti-
+
done - ok, and termination
sierungsvorgang (später) fehlschlagen sollte (dies entspricht vage dem, was
+
n (an integer ≥1) - ok, and skip the next n rules
bei required passieren soll – aber siehe unten!).
+
reset - clear stack module state
die Entspricht bad, aber liefert den Fehler sofort an das aufrufende Programm zu-
 
rück (denken Sie an requisite).
 
ok Gibt an, dass dieser Rückgabewert zum Rückgabewert des gesamten Authen-
 
tisierungsvorgangs beitragen sollte. Das heißt, wenn bis hierher Erfolg zu-
 
rückgemeldet werden würde, dann überschreibt dieser Rückgabewert das,
 
aber wenn bis hierher ein Fehlschlag zurückgemeldet werden würde, wird
 
er ignoriert.
 
done Entspricht ok, aber liefert den Erfolg (oder früheren Fehlschlag) sofort an das
 
aufrufende Programm zurück (denken Sie an sufficient).
 
𝑛 (eine positive ganze Zahl) Entspricht ok, aber überspringt die folgenden 𝑛 Kon-
 
figurationszeilen. (𝑛 = 0 ist verboten.)
 
reset Alles Bisherige soll vergessen und mit der nächsten Zeile von vorne weiter-
 
gemacht werden.
 
Tabelle 2.1 zeigt die Korrespondenz zwischen den »traditionellen« Schlüssel-
 
wörtern und ihren »modernen« Äquivalenten. Sie können ungeniert weiter die
 
Schlüsselwörter verwenden; sie werden nicht verschwinden.
 
In der dritten Spalte steht ein Modulname – entweder als absoluter Pfad oder
 
als Dateiname relativ zu /lib/security – gefolgt von allfälligen (modulspezifischen)
 
Argumenten. (Bei include und substack enthält die dritte Spalte den Namen – ab-
 
solut oder relativ zu /etc/pam.d – der einzulesenden Datei.)
 
B Grundsätzlich können Sie auch die komplette PAM-Konfiguration Ihres
 
Systems in der Datei /etc/pam.conf ablegen – Sie müssen dann nur den Na-
 
men des Programms an den Zeilenanfang stellen: Die Zeile
 
login auth required pam_unix.so shadow nullok
 
entspricht der Zeile
 

Version vom 11. Januar 2023, 14:40 Uhr

Modultype

  • Die verschiedenen Funktionen, die PAM ausführt, sind in vier Gruppen einteilen.
  • Jedes PAM-Modul ist mindestens einer dieser Gruppen zuzuordnen,
  • Wobei viele Module in mehreren der Gruppen Funktionen erbringen.

account

  • Überprüfen ob der Benutzer berechtigt ist den angefragten Dienst zu benutzen. ("Gibt es diesen Benutzer im System und darf er sich anmelden?")
  • Steht der angestrebte Benutzerkonto für eine Authentisierung zur Verfügung?.
  • Dies kann von Kriterien abhängen.
  • Die Möglichkeiten sind vielfälltig

auth

  • Benutzeridentifizierung und -authentifizierung. z.B. Passwortabfrage oder Smartcards. ("Zeig mir deinen Ausweis!")
  • Die Identität des Benutzers wird hier geprüft.
  • Dazu können sie zum Beispiel ein geheimes Kennwort erfragen
  • Dies wird dann gegen eine Benutzerdatenbank gecheckt.
  • LDAP, Datenbank, lokaler Account usw.
  • Die Mechanismen wie gecheckt wird sind genauso vielfältig.
  • Biometrisch, OTP, Password.
  • Hier kann man aber auch über /etc/group User besonderen Gruppen zuweisen.

password

  • Es kann hier unabhängig von dem dahinterliegenden Auth Dienst das Passwort geändert werden.
  • Also egal ob das Passwort dann in einer LDAP oder SQL Datenbank oder sonst wo liegt.
  • Des weiteren kann man die Passwortsicherheit hier sehr feingranuliert einstellen.

session

  • Verwaltung und Konfiguration der Benutzer Sitzung. Limits, Berechtigungen ... während des Zugriffs.
  • Die Module werden vor und nach der Authentifizierung gestartet um etwas zu protokolieren und dem Benutzer seine eigene Umgebung zuzuweisen.
  • (z.B. Homeverzeichnis)

Modulsteuerung

requisite

  • Modul muss mit Erfolg enden. Bei Fehler werden keine weiteren Module abgearbeitet. (notwendige Vorbedingung)

required

  • Modul muss mit Erfolg enden. Bei Fehler werden weitere Module abgearbeitet. (notwendige Bedingung)

sufficient

  • Wenn das Modul erfolgreich endet, reicht das für den Erfolg der Kette.
  • Keine weiteren Module werden abgearbeitet. (hinreichende Bedingung)

optional

  • Das Ergebnis dieses Moduls findet keine Beachtung. (Es sei denn es ist das einzige für einen Typ)

Alternativ zu den »traditionellen« Schlüsselwörtern

  • Sie können auch eine weitaus differenziertere Methode verwenden.
  • Diese gestattet, genau festzulegen, wie PAM mit den verschiedenen Rückgabewerten von Modulen umgehen soll.
  • Dabei hat der Eintrag in der zweiten Spalte die Form
Traditionell Modern
required [success=ok new_authtok_reqd=ok ignore=ignore default=bad]
requisite [success=ok new_authtok_reqd=ok ignore=ignore default=die]
sufficient [success=done new_authtok_reqd=done default=ignore]
optional [success=ok new_authtok_reqd=ok default=ignore]
[wert1 = aktion1 wert_2 = aktion_2 ...]

Werte

success

  • Das Modul sagt das es ok ist.

=ignore

  • Modul signalisiert, dass sein Rückgabewert ignoriert werden soll

abort

  • Modul sagt Stopp jetzt

default

  • alle Rückgabewerte, die nicht explizit in diesem [Satz] erwähnt werden', oft verwendet, um alle Fehler/Ausfälle abzufangen (weil es eine Menge davon gibt)

errors/failures include

open_err, symbol_err, service_err, system_err, buf_err, auth_err, session_err, cred_err, conv_err, authtok_err, authtok_recover_err user_unknown, perm_denied, cred_insufficient, authinfo_unavail, new_authtok_reqd, authtok_lock_busy, authtok_disable_aging, authtok_expired, acct_expired, maxtries, cred_unavail, cred_expired, try_again, module_unknown, bad_item, conv_again, incomplete, no_module_data

action is one of

ignore - module's return status will not contribute to the stack's return code bad - flag ourselves as having failed (doesn't terminate) die - bad, and terminate ok - this module's return code should be considered (...if there are no errors) done - ok, and termination n (an integer ≥1) - ok, and skip the next n rules reset - clear stack module state