Studieren in Chemnitz. Wissen, was gut ist.






PAM: Konfiguration von Authentisierungsverfahren

Einführung

PAM: Plugable Authentication Modules

Distribution Linux-PAM-Version
RHEL 3 0.75  
RHEL 4 0.77  
Fedora Core 4 0.79  
Fedora Core 5 0.99.3

Funktionsweise

pam.png

Ziele

Komponenten

Konfiguration

Konfigurationsfiles

Aufbau der Einträge

jeder Eintrag auf einer Zeile

[service]  type  control  module-path  module-arguments

[service]
PAM-Service-Name (nur in /etc/pam.conf)
type
Modultyp, Funktion
auth
authentication / credential management - Verfikation der Identität des Benutzers und Zuweisen/Entziehen von credentials (Gruppenmitgliedschaft, Kerberos TGT, AFS Token, ...)
account
account management - Bedingungen für den Zugang zum System (nur über Konsole, nur zu bestimmten Tageszeiten, nutzerspezifisch)
password
password management - Aktualisierung der Authentisierungsdaten
session
session management - Einstellung für die Sitzung (limits, Zugriffsberechtigungen)
control
Einfluss von Erfolg/Misserfolg auf Gesamtergebnis (pro type kann es mehrere Einträge geben - stacking)
zwei Syntax-Varianten:
  • simple
    required
    Erfolg ist notwendig für Gesamtbewertung: Erfolg, Fehler führt zur Gesamtbewertung: Misserfolg, es werden trotzdem alle weiteren Module von diesem type ausgeführt
    requisite
    Erfolg ist notwendig für Gesamtbewertung: Erfolg, Fehler führt zur Gesamtbewertung: Misserfolg und termininiert den Authentisierungsprozess
    sufficient
    Erfolg ist ausreichend für Gesamtbewertung: Erfolg, Fehler beeinflusst Gesamtbewertung nicht, Erfolg terminiert den Authentisierungsprozess, Ergebnis vorheriger required Module wird berücksichtigt
    optional
    Erfolg oder Fehler hat nur Bedeutung, wenn es der einzige Module für diesen type ist
    include (nur neuere Versionen von Linux-PAM)
    alle Zeilen desselben type aus einem als Argument angegeben File einbeziehen
  • komplex
    [value=action ...]
    paarweise Angabe von Rückgabewert (value) und Verhalten (action)
    value
    Rückgabewert des Moduls (success, open_err, auth_err, ... - vollständige Liste in /usr/include/security/_pam_types.h)
    default: alle nicht genannten Werte
    action
    ausführende Aktion
    <N>
    die <N> folgenden Module im Stack überspringen
    ignore
    Ergebnis wird ignoriert
    bad
    Ergebnis fließt als Fehler in die Gesamtwertung ein
    die
    Ergebnis als Fehler werten und terminieren des Authentisierungsprozesses
    ok
    übernimmt den Rückkehrwert als Ergebnis und überschreibt bisheriges Ergebnis des Stacks, jedoch: Fehler werden nicht überschrieben
    done
    wie ok, zusätzlich: Authentisierungsprozess wird terminiert
    reset
    bisheriges Ergebnis zurücksetzen und neu beginnen mit nächstem Eintrag im Stack
  • Entsprechungen
    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]
module-path
voller Pfadname des PAM-Moduls oder Pfadname relativ zu /lib/security, der Verzeichnisname in der Pfadangabe /lib/security/$ISA verweist auf das Architektur-Verzeichnis der Maschine (/lib/security bzw. /lib64/security)
module-arguments
Argumente, die das Verhalten des Modules steuern (modulspezifisch)

Beispiel

# cat /etc/pam.d/login
auth       required     pam_securetty.so
auth       required     pam_env.so
auth       required     pam_nologin.so
auth       sufficient   pam_krb5.so
auth       sufficient   pam_unix.so likeauth nullok
auth       required     pam_deny.so

account    required     pam_unix.so
account    sufficient   pam_login_access.so
account    optional     pam_krb5.so

password   required     pam_deny.so

session    required     pam_limits.so
session    optional     pam_krb5.so
session    required     pam_unix.so
session    optional     pam_console.so

pam_securetty
Login als root nur an "sicheren" Terminals
definiert in /etc/securetty
pam_env
Setzen/Löschen von Umgebunsvariablen
definiert in /etc/security/pam_env.conf
pam_nologin
falls /etc/nologin existiert, nur noch Login als root erlauben
pam_krb5
Authentisierung via Kerberos V5
Konfiguration in /etc/krb5.conf
pam_unix
Authentisierung via traditioneller Unix-Mittel (Passwort-Hashes - md5/crypt)
beeinflusst durch /etc/nsswitch.conf
pam_deny
liefert immer Misserfolg
pam_login_access
Zugangsvoraussetzungen in /etc/login.access (auch pam_access)
pam_limits
Einstellen von Limits
definiert in /etc/security/limits.conf
pam_console
Übertragen/Entziehen von Berechtigungen des Konsole-Nutzers
definiert in etc/security/console.apps und /etc/security/console.perms

PAM-Module

Hinweise

pam_stack / include

 
# cat /etc/pam.d/system-auth
auth       required     pam_env.so
auth       required     pam_nologin.so
auth       sufficient   pam_krb5.so
auth       sufficient   pam_unix.so likeauth nullok
auth       required     pam_deny.so
account    required     pam_unix.so
account    sufficient   pam_login_access.so
account    optional     pam_krb5.so
password   required     pam_deny.so
session    required     pam_limits.so
session    optional     pam_krb5.so
session    required     pam_unix.so
session    optional     pam_console.so

# cat /etc/pam.d/login
auth       required     pam_securetty.so
auth       required     pam_stack.so service=system-auth
account    required     pam_stack.so service=system-auth
password   required     pam_stack.so service=system-auth
session    required     pam_stack.so service=system-auth

# cat /etc/pam.d/gdm
auth       required     pam_stack.so service=system-auth
account    required     pam_stack.so service=system-auth
password   required     pam_stack.so service=system-auth
session    required     pam_stack.so service=system-auth

# cat /etc/pam.d/login
auth       required     pam_securetty.so
auth       include      system-auth
account    include      system-auth
password   include      system-auth
session    include      system-auth

Fehlkonfigurationen

Sicherheit

Änderungen und Anpassungen

Links