lug-in.de
Linux User Group Ingolstadt e.V.
Startseite
Der Verein
Technikecke
Mailingliste
Kalender
Impressum

Login

PAM auf den Clients

Ausgangslage:

Client

Haruka

Xubuntu 10.04 auf Virtual Box

Server

Itoko

FreeBSD 8.2 auf SPARC

Hier nun die Schritte um von einem Ubuntu 10.x System aus die Authentifizierung durchzuführen:

Annahme: Wir haben eine funktionierenden getesteten LDAP-Server mit folgendem Parameter

Name

Wert

Servername

Itoko

IP

10.128.1.18

Base

dc=calmar,dc=net

Authentifizierungsverfahren

DIGEST-MD5

User

schoener

UID

10003

Group

user

UID

10000

Wir testen das Ganze mit dem Kommando:

ijin@misato:~$ ldapsearch -h itoko -Y DIGEST-MD5 -b dc=calmar,dc=net -U schoener -LLL

Zum Verständnis:

Das obige Kommando simuliert genau das was die PAM-Module nachfolgend treiben werden. Auch wir werden uns nach der Installation der PAM Module als user schoener am System anmelden. Der Unterschied wird dann nur sein, das uns der LDAP-Server lediglich die Informationen liefert, die er zur korrekten Anmeldung am System braucht (Name,uid, Homeverzeichnis etc).

Obiges Kommando liefert allerdings als Ausgabe den kompletten Inhalt des LDAP-Verzeichnisses. Wenn man es mit der Simulation ernst nimmt müsste man folgendes Kommando absetzten.

ijin@misato:~$ ldapsearch -h itoko -Y DIGEST-MD5 -b uid=schoener,ou=people,dc=calmar,dc=net -U schoener -LLL

Zum Verständnis: Der Parameter -b bezieht sich auf den zu durchsuchenden Teil der Verzeichnisdienstes

Parameter

Funktion

-b dc=calmar,dc=net

zeige den Inhalt von dc=calmar,dc=net (quasi alles)

-b uid=schoener,ou=people,dc=calmar,dc=net

zeige mir den User Schoener der Teil der Einheit (ou) People ist

Hier das Ergebnis einer funktionierenden Abfrage:

ijin@misato:~$ ldapsearch -h itoko -Y DIGEST-MD5 -b uid=schoener,ou=people,dc=calmar,dc=net -U schoener -LLL
SASL/DIGEST-MD5 authentication started
Please enter your password: 
SASL username: schoener
SASL SSF: 128
SASL data security layer installed.
dn: uid=schoener,ou=people,dc=calmar,dc=net
objectClass: account
objectClass: posixAccount
cn: schoener
uid: schoener
uidNumber: 10003
gidNumber: 10000
homeDirectory: /home/schoener
loginShell: /bin/bash
gecos: schoener
description: User account
userPassword:: ...............(ist doch geheim ;)

Noch eine Anmerkung zur Organisation der User Daten in diesem Beispiel. Hier sind die User Teil der Organisation (o) People. Alternativ könnten sie auch Teil der Einheit (ou) user sein. Ich verwende zum Einrichten der Strukturen den lam. Und dieser wiederum verwendet ou=people.

So jetzt werden die Module installiert die es dem Client erlauben sollen, seine Benutzerinformationen vom LDAP Server zu beziehen. Die Pakete sind getestet für Ubuntu 10.04-10.10.

Dafür braucht es unter Ubuntu reichlich Pakete. Da ich allerdings nicht genau verstehe was sie einzelnen Pakte steuern "klopfe" ich sie nach der Installation mit dem Kommando

dpkg-reconfigure paket

nach Konfigurationsmöglichkeiten ab. Nachfolgende Liste zeigt alle benötigten Pakte incl. der möglichen Rekonfigurationsmöglichkeiten.

Man braucht folgende Pakete:

Packet

Funktion

Konfiguration

libnss-ldapd

modifiert /etc/nssswitch.conf

group,passwd,shadow

libpam-ldapd

?

keine Rekonfiguration möglich

auth-client-config

?

keine Rekonfiguration möglich

ldap-auth-client

?

keine Rekonfiguration möglich

ldap-auth-config

zentrale Konfiguration des Ldap Clients

siehe seperaten Artikel

nslcd

Konfiguration des nscd

siehe seperaten Artikel

nscd

?

keine Rekonfiguration möglich

Diese werden installiert mit

sudo apt-get install libnss-ldapd libpam-ldapd auth-client-config ldap-auth-client ldap-auth-config nslcd nscd 

Bei der Installation ist zu beachten, daß der LDAP-Adresse des Server immer mit ldap://10.128.1.18/ angegeben wird. Hier führen Schreibfehler oder das Weglassen von Schrägstrichen etc. zur langwierigen Fehlersuche.

Danach noch ein

sudo auth-client-config -t nss -p lac_ldap 

und ein

sudo pam-auth-update 

die PAM-Konfiguration im Verzeichnis /etc/pam.d/. Nach Eingabe des Kommandos erscheint ein Dialog, in dem die zu aktivierenden PAM-Profile ausgewählt werden müssen. Zunächst sollten die Profile

Unix authentication und LDAP Authentication aktiviert werden.

Ist alles installiert und konfiguriert so wird das ganze getestet. Sollte man nach der Konfiguration noch in der Lage sein sich einzuloggen so testet man das Ganze mit nach folgendem Kommando

schoener@ritsuko:~$ getent passwd 
....................
schoener:*:10003:10000:schoener:/home/schoener:/bin/bash

und nochmal für die Gruppen

schoener@ritsuko:~$ getent group 
................
user:*:10000:

Damit ist der Beweis erbracht, daß pam seinen Dienst tut. Nun sollte ein Login möglich sein.

Achtung:

Es gibt auf den Client noch kein Home-Verzeichnis /home/schoener ! Als letzten Test legen wir es an und setzten die Berechtigungen richtig.

ijin@ritsuko:~$ sudo mkdir /home/schoener
[sudo] password for bic: 
bic@ritsuko:~$ sudo chown schoener:user /home/schoener/
bic@ritsuko:~$ 

Nachdem die Authentifizierung klappt, mache ich ein kleines Experiment. Ich fahre den LDAP Server herunter und schaue was passiert. Jetzt ist ein Einloggen per kdm nicht mehr möglich. Allerdings komme ich noch über die Textkonsole an das System heran.

Das Problem liegt in der Datei /etc/nsswitch.conf . Diese sagt dem Login-Dienst wo er die nötigen Informationen Informationen findet. Hier heißt es nach Installation der PAM-Module für ldap

......
passwd:         compat ldap
group:          compat ldap
shadow:         compat ldap
.......

Und hier setzte ich nun jeweils den Parameter files vor das compat. Heraus kommt:

passwd:         files compat ldap
group:          files compat ldap
shadow:         files compat ldap

Danach noch den Dienst nscd (Name Service Caching Daemon) neu starten mit:

sudo /etc/init.d/nscd restart

Und schon kann man sich wieder über den kdm einloggen. Danach folgt die Konfiguration der einzellenen Komponenten.

(V 1.04)