Pam Konzepte: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(11 dazwischenliegende Versionen von einem anderen Benutzer werden nicht angezeigt)
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.
 +
*success=n means "skip the next n rules",
 +
==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)
 +
==new_authtok_reqd==
 +
*Bei new_authok_reqd wird ein neues Passwort angefordert, wenn es leer oder veraltet ist.
 +
==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]
+
=actions=
Die aktion𝑖-Werte können wie folgt sein:
+
==ignore==
=ignore=
+
*Der Rückgabestatus des Moduls trägt nicht zum Rückgabecode des Stacks bei
*Der Rückgabewert des Moduls wird ignoriert
+
==bad==
=bad=
+
*uns selbst als gescheitert kennzeichnen (beendet nicht)
*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
 
  
 
+
==die==
 
+
*bad, und terminate
Die aktion𝑖-Werte können wie folgt sein:
+
==ok==
ignore Der Rückgabewert des Moduls wird ignoriert
+
*der Rückkehrcode dieses Moduls sollte berücksichtigt werden (...wenn es keine Fehler gibt)
bad Der Rückgabewert wird als Anzeichen dafür angesehen, dass der Authenti-
+
==done==
sierungsvorgang (später) fehlschlagen sollte (dies entspricht vage dem, was
+
*ok, and termination
bei required passieren soll – aber siehe unten!).
+
==n==
die Entspricht bad, aber liefert den Fehler sofort an das aufrufende Programm zu-
+
*(an integer ≥1) - ok, and skip the next n rules
rück (denken Sie an requisite).
+
==reset==
ok Gibt an, dass dieser Rückgabewert zum Rückgabewert des gesamten Authen-
+
*clear stack module state
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
 

Aktuelle Version vom 16. Januar 2023, 10:11 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.
  • success=n means "skip the next n rules",

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)

new_authtok_reqd

  • Bei new_authok_reqd wird ein neues Passwort angefordert, wenn es leer oder veraltet ist.

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

actions

ignore

  • Der Rückgabestatus des Moduls trägt nicht zum Rückgabecode des Stacks bei

bad

  • uns selbst als gescheitert kennzeichnen (beendet nicht)

die

  • bad, und terminate

ok

  • der Rückkehrcode dieses Moduls sollte berücksichtigt werden (...wenn es keine Fehler gibt)

done

  • ok, and termination

n

  • (an integer ≥1) - ok, and skip the next n rules

reset

  • clear stack module state