OpenLDAP/PAM: Gruppen Autorisierung

From: O. Hartmann <ohartman(at)mail.zedat.fu-berlin.de>
Date: Fri, 01 May 2009 13:00:21 +0200

Hallo.
Ich habe ein paar essentielle Probleme, deren Ursache ich nicht ganz zu
kennen scheine.

Zuerst einmal die Motivation:
In meiner Arbeitsgruppe habe ich eine weitgehende FreeBSD Client-Server
Infrastruktur, die an Linux-Server gekoppelt sind. Die Benutzer meiner
Einrichtung sind weitgehend in einem OpenLDAP 2.4.16 Serversystem
gespeichert. Ich würde nun gerne abhängig von der Gruppenzugehörigkeit
Benutzer auf bestimmte Maschinen eonloggen lassen oder blockieren. Nach
Installation der Ports 'pam_ldap' und 'nss_ldap' kann ich nun in der
gemeinsamen Konfigurationsdatei /usr/local/etc/ldap.conf folgende LDAP
Parameter angeben, um, laut dreier(!) Literaturreferenzen eine
Einschränkung auf die Gruppe machen zu können:

pam_groupdn
pam_member_attribute

pam_groudn verweist bei mir auf das Objekt, das die Gruppenmitglieder
enthält, Attribute sind Multi-Value-Attribute vom Typ 'MemberUid':

pam_groupdn cn=myGroup,ou=groups,dc=foo,dc=bar?sub
pam_member_attribute memberUid

Das klappt nicht! Sobald ein Benutzer sich via SSH einloggt, erhält er
eine Meldung der Gestalt

You must be a memberUid of cn=myGroup,ou=goups,dc=foo,dc=bar?sub to login.

Und der Benutzer kann sich dennoch einloggen, obwohl er nicht Mitglied
dieser gruppe ist!
Ich habe drei Bücher inkl. Der OpenLDAP Doku, die strikt erklären, daß
dieser Mechanismus funktionieren soll. Nun weiß ich natürlich nicht, ob
soweit alles ordentlich konfiguriert ist. SSHD ist mit "UsePAM YES"
konfiguriert, weiter nichts.
Eine Idee war, PAM generell zu benutzen, es gibt ja das Modul
pam_group.so. Leider klappt das nicht ganz so, wie ich möchte, denn ist
dieses Modul im Stack der Module VOR pam_ldap.so, wird die Gruppe nicht
erkannt (wie auch), kommt es direkt danach, kann sich keiner mehr
anmelden, egal ob pam_ldap.so required/requisite oder optional ist.

Theoretisch müßte man lokal einige LDAP Mitglieder in eine Gruppe packen
können, um eine Anmeldung erfolgreich für Nichtmitglieder zu verbieten,
allerdings ist die Idee, dies über LDAP zentral zu steuern. Also ganz
einfach und primitiv, ohne GSSAPI-Systeme wie KerberosV/Heimdal.

Ich werde seit nunmehr einigen Monaten das Gefühl nicht los, daß mit PAM
und NSS (nss_ldap) einiges bezgl. FreeBSD im Argen liegt, zum Beispiel
ist für die Funktion der Anmeldung am LDAP essentiell, in welcher
Reihenfolge die Such-DB in /etc/nsswitch.conf 'files ldap' oder 'ldap
files' angegeben sind:

password: files ldap (klappt nicht)
password: ldap files (klappt)

Die Reihenfolge 'files' ldap' ist für mich/uns essentiell, weil wir
lokale Administrationskonten haben. Fällt der LDAP Server aus oder ich
habe kein Netz, kann mit 'ldap files' selbst root kaum mehr einloggen,
weil es unter Umständen zu einem Timeout kommt. Eine solche Situation
ist, selbst an der Konsole, inakzeptabel.
Bevor ich höher Wellen schlage, möchte ich ausschließen, daß die
Probleme auf meiner Inkompetenz fußen ...

Kann jemand helfen?

Danke,

Gruß
Oliver

To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Fri 01 May 2009 - 13:00:14 CEST

search this site