authentifizierung und autorisierung unter linux/solaris ... · motivation pluggable authentication...

26
Motivation Pluggable Authentication Modules Name Service Switch Abschluss Authentifizierung und Autorisierung unter Linux/Solaris: PAM und NSS Vortrag im Proseminar Konzepte von Betriebssystemkomponenten“ Clemens Lang [email protected] 09. Juni 2010 Clemens Lang [email protected] Authentifizierung & Autorisierung unter Linux/Solaris: PAM und NSS 1/22

Upload: others

Post on 27-Sep-2019

10 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Authentifizierung und Autorisierung unter Linux/Solaris ... · Motivation Pluggable Authentication ModulesName Service Switch Abschluss Authenti zierung und Autorisierung unter Linux/Solaris:

Motivation Pluggable Authentication Modules Name Service Switch Abschluss

Authentifizierung und Autorisierung unterLinux/Solaris: PAM und NSS

Vortrag im Proseminar”Konzepte von Betriebssystemkomponenten“

Clemens Lang

[email protected]

09. Juni 2010

Clemens Lang [email protected]

Authentifizierung & Autorisierung unter Linux/Solaris: PAM und NSS 1/22

Page 2: Authentifizierung und Autorisierung unter Linux/Solaris ... · Motivation Pluggable Authentication ModulesName Service Switch Abschluss Authenti zierung und Autorisierung unter Linux/Solaris:

Motivation Pluggable Authentication Modules Name Service Switch Abschluss

Motivation

Problem

Linux: Benutzer in der Datei /etc/passwd

Setup mit mehreren Rechnern:Authentifizierung von Benutzern ohne Anpassungvon /etc/passwd auf jedem Rechner?

Herangehensweise

Wie funktioniert die Authentifizierung unter Linux?

Clemens Lang [email protected]

Authentifizierung & Autorisierung unter Linux/Solaris: PAM und NSS 2/22

Page 3: Authentifizierung und Autorisierung unter Linux/Solaris ... · Motivation Pluggable Authentication ModulesName Service Switch Abschluss Authenti zierung und Autorisierung unter Linux/Solaris:

Motivation Pluggable Authentication Modules Name Service Switch Abschluss

Motivation

Problem

Linux: Benutzer in der Datei /etc/passwd

Setup mit mehreren Rechnern:Authentifizierung von Benutzern ohne Anpassungvon /etc/passwd auf jedem Rechner?

Herangehensweise

Wie funktioniert die Authentifizierung unter Linux?

Clemens Lang [email protected]

Authentifizierung & Autorisierung unter Linux/Solaris: PAM und NSS 2/22

Page 4: Authentifizierung und Autorisierung unter Linux/Solaris ... · Motivation Pluggable Authentication ModulesName Service Switch Abschluss Authenti zierung und Autorisierung unter Linux/Solaris:

Motivation Pluggable Authentication Modules Name Service Switch Abschluss

Gliederung

1 Motivation

2 Pluggable Authentication ModulesGeschichteAufbauKonfigurationFunktionsweiseErweiterungen in Linux-PAM

3 Name Service Switch

4 AbschlussZusammenfassungQuellenEnde

Clemens Lang [email protected]

Authentifizierung & Autorisierung unter Linux/Solaris: PAM und NSS 3/22

Page 5: Authentifizierung und Autorisierung unter Linux/Solaris ... · Motivation Pluggable Authentication ModulesName Service Switch Abschluss Authenti zierung und Autorisierung unter Linux/Solaris:

Motivation Pluggable Authentication Modules Name Service Switch Abschluss

Gliederung

1 Motivation

2 Pluggable Authentication ModulesGeschichteAufbauKonfigurationFunktionsweiseErweiterungen in Linux-PAM

3 Name Service Switch

4 AbschlussZusammenfassungQuellenEnde

Clemens Lang [email protected]

Authentifizierung & Autorisierung unter Linux/Solaris: PAM und NSS 4/22

Page 6: Authentifizierung und Autorisierung unter Linux/Solaris ... · Motivation Pluggable Authentication ModulesName Service Switch Abschluss Authenti zierung und Autorisierung unter Linux/Solaris:

Motivation Pluggable Authentication Modules Name Service Switch Abschluss

Problem

Problem

Services (z.B. ssh, login, gdm, ftp, screensaver . . . ) mussenBenutzer authentifizieren

Services bestimmen zunachst selbst, welcheAuthentifizierungsmethoden sie nutzen

Neue Authentifizierungsmethoden oder Bugfixes mussen injedem Programm implementiert werden

Losung

Abstrahierung der Authentifizierungsmethoden von den Services

Clemens Lang [email protected]

Authentifizierung & Autorisierung unter Linux/Solaris: PAM und NSS 5/22

Page 7: Authentifizierung und Autorisierung unter Linux/Solaris ... · Motivation Pluggable Authentication ModulesName Service Switch Abschluss Authenti zierung und Autorisierung unter Linux/Solaris:

Motivation Pluggable Authentication Modules Name Service Switch Abschluss

Problem

Problem

Services (z.B. ssh, login, gdm, ftp, screensaver . . . ) mussenBenutzer authentifizieren

Services bestimmen zunachst selbst, welcheAuthentifizierungsmethoden sie nutzen

Neue Authentifizierungsmethoden oder Bugfixes mussen injedem Programm implementiert werden

Losung

Abstrahierung der Authentifizierungsmethoden von den Services

Clemens Lang [email protected]

Authentifizierung & Autorisierung unter Linux/Solaris: PAM und NSS 5/22

Page 8: Authentifizierung und Autorisierung unter Linux/Solaris ... · Motivation Pluggable Authentication ModulesName Service Switch Abschluss Authenti zierung und Autorisierung unter Linux/Solaris:

Motivation Pluggable Authentication Modules Name Service Switch Abschluss

PAM abstrahiert Authentifizierungsmethoden

Was ist PAM?

PAM steht fur Pluggable Authentication Modules

Abstraktionsebene zwischen sog.”system-entry services“

und Authentifizierungsmethoden

PAM erlaubt Administratoren Authentifizierungsmethodenzu wahlen

Entstehungsgeschichte

Entwickelt von Sun als interne Komponente von Solaris

1996 durch Samar spezifiziert und publiziert [Sam96]

Spezifikation in Linux implementiert

Clemens Lang [email protected]

Authentifizierung & Autorisierung unter Linux/Solaris: PAM und NSS 6/22

Page 9: Authentifizierung und Autorisierung unter Linux/Solaris ... · Motivation Pluggable Authentication ModulesName Service Switch Abschluss Authenti zierung und Autorisierung unter Linux/Solaris:

Motivation Pluggable Authentication Modules Name Service Switch Abschluss

PAM abstrahiert Authentifizierungsmethoden

Was ist PAM?

PAM steht fur Pluggable Authentication Modules

Abstraktionsebene zwischen sog.”system-entry services“

und Authentifizierungsmethoden

PAM erlaubt Administratoren Authentifizierungsmethodenzu wahlen

Entstehungsgeschichte

Entwickelt von Sun als interne Komponente von Solaris

1996 durch Samar spezifiziert und publiziert [Sam96]

Spezifikation in Linux implementiert

Clemens Lang [email protected]

Authentifizierung & Autorisierung unter Linux/Solaris: PAM und NSS 6/22

Page 10: Authentifizierung und Autorisierung unter Linux/Solaris ... · Motivation Pluggable Authentication ModulesName Service Switch Abschluss Authenti zierung und Autorisierung unter Linux/Solaris:

Motivation Pluggable Authentication Modules Name Service Switch Abschluss

Schematischer Aufbau

login gdm ssh ftp . . .

Application Programming Interface

Configuration (pam.conf)

Service Provider Interface

pam unix.so

/etc/passwd

pam ldap.so

LDAP

pam pkcs11.so

Certificate Storage

. . .

. . .

system-entry services

PAM

password databases

Clemens Lang [email protected]

Authentifizierung & Autorisierung unter Linux/Solaris: PAM und NSS 7/22

Page 11: Authentifizierung und Autorisierung unter Linux/Solaris ... · Motivation Pluggable Authentication ModulesName Service Switch Abschluss Authenti zierung und Autorisierung unter Linux/Solaris:

Motivation Pluggable Authentication Modules Name Service Switch Abschluss

Logischer Aufbau

Logischer Aufbau

Authentifizierung Ist der Benutzer, wer er vorgibt zu sein?Kontoverwaltung Ist der Account abgelaufen oder gesperrt?

Sitzungsverwaltung Ist der Benutzer bereits eingeloggt?Wie lange ist der Benutzer eingeloggt?

Passwortverwaltung Anderung des Passworts

Unabhangig voneinander konfigurierbar

Nutzung durch Services optional

Clemens Lang [email protected]

Authentifizierung & Autorisierung unter Linux/Solaris: PAM und NSS 8/22

Page 12: Authentifizierung und Autorisierung unter Linux/Solaris ... · Motivation Pluggable Authentication ModulesName Service Switch Abschluss Authenti zierung und Autorisierung unter Linux/Solaris:

Motivation Pluggable Authentication Modules Name Service Switch Abschluss

Stapeln von Modulen

session stack auth stack account stack

system-entry service

PAM Framework

Auth

pam kerberos auth.so

pam unix auth.so

pam rsa auth.so

Session

pam unix session.so

Account

pam unix account.so

vgl. [Sam96, Fig.2]

Clemens Lang [email protected]

Authentifizierung & Autorisierung unter Linux/Solaris: PAM und NSS 9/22

Page 13: Authentifizierung und Autorisierung unter Linux/Solaris ... · Motivation Pluggable Authentication ModulesName Service Switch Abschluss Authenti zierung und Autorisierung unter Linux/Solaris:

Motivation Pluggable Authentication Modules Name Service Switch Abschluss

Konfiguration: pam.conf bzw. pam.d/

Beispielkonfiguration von PAM

Service Type Flags Module Path Options

login auth required pam kerb auth.so debuglogin auth required pam unix auth.so use mapped passlogin auth optional pam rsa auth.so try first pass

[Sam96]

Clemens Lang [email protected]

Authentifizierung & Autorisierung unter Linux/Solaris: PAM und NSS 10/22

Page 14: Authentifizierung und Autorisierung unter Linux/Solaris ... · Motivation Pluggable Authentication ModulesName Service Switch Abschluss Authenti zierung und Autorisierung unter Linux/Solaris:

Motivation Pluggable Authentication Modules Name Service Switch Abschluss

Funktionsweise aus Anwendungssicht

Beispielhafter Ablauf einer Authentifizierungsanforderung

pam start() Erzeugen eines PAM Handlespam authenticate() Authentifizierung des Nutzers

pam acct mgmt() Prufen das Kontos des Nutzerspam open session() Benachrichtigung uber neue Session

pam setcred() Setzen von Eigenschaften,z.B. Starten eines ssh-agent

pam end() Beenden des Authentifizierungsprozesses

Clemens Lang [email protected]

Authentifizierung & Autorisierung unter Linux/Solaris: PAM und NSS 11/22

Page 15: Authentifizierung und Autorisierung unter Linux/Solaris ... · Motivation Pluggable Authentication ModulesName Service Switch Abschluss Authenti zierung und Autorisierung unter Linux/Solaris:

Motivation Pluggable Authentication Modules Name Service Switch Abschluss

Schnittstelle zum User: Conversation Function

Schnittstelle zum User

Benutzerinteraktion durch Callback-Funktion

4 Nachrichten moglich:

Eingabeaufforderung (versteckt oder sichtbar)Fehlermeldunginformative Meldung

Authentifizierung (nach dem Standard) nur durch Eingaben

⇒ z.B. Token/Fingerabdruck nur lokal nutzbar

Clemens Lang [email protected]

Authentifizierung & Autorisierung unter Linux/Solaris: PAM und NSS 12/22

Page 16: Authentifizierung und Autorisierung unter Linux/Solaris ... · Motivation Pluggable Authentication ModulesName Service Switch Abschluss Authenti zierung und Autorisierung unter Linux/Solaris:

Motivation Pluggable Authentication Modules Name Service Switch Abschluss

Erweiterungen in Linux-PAMau

then

ticating

mach

ine

client

mach

ine

user libpamc

client

agent

server

libpam

module

[Mor01]

//

Clemens Lang [email protected]

Authentifizierung & Autorisierung unter Linux/Solaris: PAM und NSS 13/22

Page 17: Authentifizierung und Autorisierung unter Linux/Solaris ... · Motivation Pluggable Authentication ModulesName Service Switch Abschluss Authenti zierung und Autorisierung unter Linux/Solaris:

Motivation Pluggable Authentication Modules Name Service Switch Abschluss

Erweiterungen in Linux-PAM: libpamc

client-side support fur PAM

libpamc: Client-seitige Unterstutzung fur PAM [Mor01]

Theoretisch: Token/Fingerabdruck/. . . durch sog. Agent amClient auch entfernt nutzbar

Praktisch: Keine Implementierung

Clemens Lang [email protected]

Authentifizierung & Autorisierung unter Linux/Solaris: PAM und NSS 14/22

Page 18: Authentifizierung und Autorisierung unter Linux/Solaris ... · Motivation Pluggable Authentication ModulesName Service Switch Abschluss Authenti zierung und Autorisierung unter Linux/Solaris:

Motivation Pluggable Authentication Modules Name Service Switch Abschluss

Gliederung

1 Motivation

2 Pluggable Authentication ModulesGeschichteAufbauKonfigurationFunktionsweiseErweiterungen in Linux-PAM

3 Name Service Switch

4 AbschlussZusammenfassungQuellenEnde

Clemens Lang [email protected]

Authentifizierung & Autorisierung unter Linux/Solaris: PAM und NSS 15/22

Page 19: Authentifizierung und Autorisierung unter Linux/Solaris ... · Motivation Pluggable Authentication ModulesName Service Switch Abschluss Authenti zierung und Autorisierung unter Linux/Solaris:

Motivation Pluggable Authentication Modules Name Service Switch Abschluss

Name Service Switch

Benutzerdatenbank jenseits der Authentifizierung

Wie zeigt z.B. ls -l Benutzernamen an?

GNU C Library pwd.h

⇒ libc muss Zugriff auf die Benutzerdatenbank haben

Name Service Switch [lib]

Konfigurierbare Schnittstelle

Leitet Datenbankabfragen an Module weiter

Module sind Shared Libraries, z.B. libnss ldap.so

Clemens Lang [email protected]

Authentifizierung & Autorisierung unter Linux/Solaris: PAM und NSS 16/22

Page 20: Authentifizierung und Autorisierung unter Linux/Solaris ... · Motivation Pluggable Authentication ModulesName Service Switch Abschluss Authenti zierung und Autorisierung unter Linux/Solaris:

Motivation Pluggable Authentication Modules Name Service Switch Abschluss

Name Service Switch

Benutzerdatenbank jenseits der Authentifizierung

Wie zeigt z.B. ls -l Benutzernamen an?

GNU C Library pwd.h

⇒ libc muss Zugriff auf die Benutzerdatenbank haben

Name Service Switch [lib]

Konfigurierbare Schnittstelle

Leitet Datenbankabfragen an Module weiter

Module sind Shared Libraries, z.B. libnss ldap.so

Clemens Lang [email protected]

Authentifizierung & Autorisierung unter Linux/Solaris: PAM und NSS 16/22

Page 21: Authentifizierung und Autorisierung unter Linux/Solaris ... · Motivation Pluggable Authentication ModulesName Service Switch Abschluss Authenti zierung und Autorisierung unter Linux/Solaris:

Motivation Pluggable Authentication Modules Name Service Switch Abschluss

Funktionsweise

getpwnam()

Name Service Switch (nsswitch.conf)

libnss ldap.so libnss files.solibnss mysql.so

MySQL /etc/passwdLDAP

application

name service switch

user databases

Clemens Lang [email protected]

Authentifizierung & Autorisierung unter Linux/Solaris: PAM und NSS 17/22

Page 22: Authentifizierung und Autorisierung unter Linux/Solaris ... · Motivation Pluggable Authentication ModulesName Service Switch Abschluss Authenti zierung und Autorisierung unter Linux/Solaris:

Motivation Pluggable Authentication Modules Name Service Switch Abschluss

Gliederung

1 Motivation

2 Pluggable Authentication ModulesGeschichteAufbauKonfigurationFunktionsweiseErweiterungen in Linux-PAM

3 Name Service Switch

4 AbschlussZusammenfassungQuellenEnde

Clemens Lang [email protected]

Authentifizierung & Autorisierung unter Linux/Solaris: PAM und NSS 18/22

Page 23: Authentifizierung und Autorisierung unter Linux/Solaris ... · Motivation Pluggable Authentication ModulesName Service Switch Abschluss Authenti zierung und Autorisierung unter Linux/Solaris:

Motivation Pluggable Authentication Modules Name Service Switch Abschluss

Zusammenfassung

AusgangspunktMehrbenutzerumgebung

Authentifizierung mit PAMAbstrahierung der Authentifizierung von

”system-entry services“,

Aufbau, Modul-Stacking, Schnittstelle zum Benutzer, libpamc

Name Service SwitchKonfigurierbare Datenbankschnittstelle der libc, Funktionsweise

Zuruck zum AusgangspunktUmsetzung von Mehrbenutzersystemen moglich

Clemens Lang [email protected]

Authentifizierung & Autorisierung unter Linux/Solaris: PAM und NSS 19/22

Page 24: Authentifizierung und Autorisierung unter Linux/Solaris ... · Motivation Pluggable Authentication ModulesName Service Switch Abschluss Authenti zierung und Autorisierung unter Linux/Solaris:

Motivation Pluggable Authentication Modules Name Service Switch Abschluss

Quellen I

The Open Group.X/open single sign-on service (xsso) – pluggableauthentication modules.X/open preliminary specification, The Open Group, Mar 1997.

Charlie Lai.Making login services independent of authenticationtechnologies.Presentation published by Linux-PAM on kernel.org, Nov 1996.

The GNU C Library Manual.Section 28 System Databases and Name Service Switch.

Clemens Lang [email protected]

Authentifizierung & Autorisierung unter Linux/Solaris: PAM und NSS 20/22

Page 25: Authentifizierung und Autorisierung unter Linux/Solaris ... · Motivation Pluggable Authentication ModulesName Service Switch Abschluss Authenti zierung und Autorisierung unter Linux/Solaris:

Motivation Pluggable Authentication Modules Name Service Switch Abschluss

Quellen II

Andrew G. Morgan and Thorsten Kukuk.The Linux-PAM Guides, 1.1.1 edition, Dec 2009.Manuals for Linux-PAM.

Andrew G. Morgan.Pluggable Authentication Modules (PAM), Dec 2001.Draft for the Open-PAM working group PAM standard.

Vipin Samar.Unified login with pluggable authentication modules (pam).In CCS ’96: Proceedings of the 3rd ACM conference onComputer and communications security, pages 1–10, NewYork, NY, USA, 1996. ACM.

Clemens Lang [email protected]

Authentifizierung & Autorisierung unter Linux/Solaris: PAM und NSS 21/22

Page 26: Authentifizierung und Autorisierung unter Linux/Solaris ... · Motivation Pluggable Authentication ModulesName Service Switch Abschluss Authenti zierung und Autorisierung unter Linux/Solaris:

Motivation Pluggable Authentication Modules Name Service Switch Abschluss

Q&A

Danke fur die Aufmerksamkeit

Questions & Answers

Clemens Lang [email protected]

Authentifizierung & Autorisierung unter Linux/Solaris: PAM und NSS 22/22