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