PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zentrale Benutzerauthentifizierung! Ldap oder co



patrick200K
14.08.06, 17:26
Hallo ng,

ich habe 4 Suse-Linux-Server auf denen ich eine zentrale Benutzerauthentifizierung haben will. Sprich ich möchte einen User anlegen können der auf alle 4 Server rechte haben soll und von dem ich das passwort nur an einer stelle ändern muss. Wenns geht soll das uch mit "root" möglich sein.

Ich habe dafür angefangen ldap aufzusetzen. Erstmal die Frage vorweg. Gibt es dafür eine andere leichtere Möglichkeit als ldap??

Wenn nich hier meine bisherige ldap konfiguration:
( nur die einkommentierten zeilen )

Problem was ich nun habe ist das ich nicht weiß wie ich nun einen einzelnen benutzer anlge und teste ob alles klappt und wie ich die 3 anderen linux server an den ldap server anbinde.

Über eine antwort wäre ich sehr verbunden.


ldap.conf

Host 127.0.0.1
BASE dc=servername, dc=anbieter, dc=net
TLS_REQUEST allow # <--- war schon drin

################################################## ################

sldap.conf

include /etc/openldap/schema/core.schema
include /etc/openldap/schema/nis.schema # neu hinzugefügt
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/rfc2307bis.schema
include /etc/openldap/schema/yast.schema

pidfile /var/run/slapd/.pid
argsfile /var/run/slapd/slapd.args

modulepath /usr/lib/openldap/modules

access to dn.base=""
by * read

access to dn.base="cn=Subschema"
by * read

access to attr=userPassword,userPKCS12
by self write
by * auth

access to attr=shadowLastChange
by self write
by * read

access to *
by * read


database bdb
checkpoint 1024 5
cachesize 10000
suffix "dc=servername,dc=anbieter,dc=net"
rootdn "cn=Manager,dc=servername,dc=anbieter,dc=net"
rootpw secret
directory /var/lib/ldap
index objectClass eq

################################################## ################

nsswitch.conf

passwd: files ldap
group: files ldap

################################################## ################

pam.d

common-auth:
auth [success=1 default=ignore] pam_unix2.so nullok_secure
auth required pam_ldap.so use_first_pass
auth required pam_permit.so

common-account:
account [success=1 default=ignore] pam_unix2.so
account required pam_ldap.so
account required pam_permit.so

common-password:
password required pam_pwcheck.so nullok
password sufficient pam_ldap.so use_first_pass use_authtok
password required pam_unix2.so nullok use_first_pass use_authtok

common-session:
session required pam_limits.so
session optional pam_ldap.so
session required pam_unix2.so

comrad
14.08.06, 17:59
Hi,

sowas würde ich auch gerne haben, in dem punkt kann ich dir aber leider nicht helfen. Root solltest du immer lokal anmelden. alleine für den fall, dass du keine verbindung mehr zum ldap bekommst (defekte netzwerkkarte, defekte kabel etc pp) solltest du immernoch lokal auf die maschine kommen können.

gruss,
comrad

bla!zilla
14.08.06, 18:12
Root und Systemuser sollten in der lokalen passwd bleiben, allein aus dem Grund das LDAP erst ab einem bestimmten Punkt des Bootvorgangs zur Verfügung steht (nämlich nachdem das Netzwerk läuft), vorher aber z.B. schon Daemons mit bestimmten Usern gestartet werden sollen (bei SUSE z.B. dbus). Ich habe die /etc/passwd samt aller User und die /etc/group samit aller Gruppen über ein Migrationstool in ein LDIF File überführt und das ins LDAP Verzeichnis gepumpt.

Thorashh
14.08.06, 18:16
Gibt es dafür eine andere leichtere Möglichkeit als ldap?? Andere ja (mysql), leichter nein.


Problem was ich nun habe ist das ich nicht weiß wie ich nun einen einzelnen benutzer anlge ... Wirf mal einen Blick auf die smbldap-tools. Damit bekommst Du alle von UNIX bekannten Tools für die Userverwaltung auf dem LDAP-Server.


... und wie ich die 3 anderen linux server an den ldap server anbinde. Entweder bringt deine Distri ein entsprechendes Tool mit um die Authentifizierung über LDAP zu aktivieren, oder du musst es selber im PAM einbinden (Stw.: pam_ldap). Ausserdem musst Du natürlich den LDAP-Server in der ldap.conf des Clients konfigurieren.

bla!zilla
15.08.06, 08:10
NIS ist natürlich eine Alternative und etwas einfacher zu implementieren als ein LDAP. Ich habe mir aber zu Hause auch für zwei User ein LDAP aufgesetzt, da ich darüber eine zentrale Userverwaltung für Linux, Samba, Apache und Cyrus / Squirrelmail habe.

patrick200K
15.08.06, 10:16
Ist den die Konfiguration von der slapd.conf und den pam configs so richtig?

Bzw wenn ich nur eine reine Userverwaltung haben will wie müsste dann so eine ldif Datei aussehen um erstmal den Stammbaum zu generieren bzw. um eine Gruppe anzulegen wo ich die Nutzer reinlege.
Oder kann ich die gruppen und den Stammbaum auch mit smbldap-tools anlegen??

Letze frage ist ob ich die nis.schema brauche. Den wenn ich die in der sldapd.conf eintrage bricht ldap beim starten ab. Fehler: "duplicate AttributeType 1.3.6.1.1.1.1.0 ....."

gruß
patrick

Thorashh
15.08.06, 16:58
Bzw wenn ich nur eine reine Userverwaltung haben will wie müsste dann so eine ldif Datei aussehen um erstmal den Stammbaum zu generieren bzw. um eine Gruppe anzulegen wo ich die Nutzer reinlege.
Oder kann ich die gruppen und den Stammbaum auch mit smbldap-tools anlegen?? Deswegen hatte ich die smbldap-tools vorgeschlagen. Damit musst Du dich nicht mit .ldif befassen, um eine funktionierende Userverwaltung zu haben. (Stw.: perldoc smbldap-populate)


Letze frage ist ob ich die nis.schema brauche. Eigentlich nicht.
Der Fehler liegt aber an der Reihenfolge. nis.schema basiert auf core.schema und cosine.schema. Beide müssen daher vor nis.schema geladen werden.

Der Rest sieht ganz ok aus.
Die Anpassungen für smbldap-tools, findest Du in der DOKU.

patrick200K
15.08.06, 17:26
Danke erstmal, werde mich morgen mal in die smbldap-tools einlesen und es damit testen.

patrick200K
18.08.06, 10:13
Ich kriege immer wenn ich smbldap-populate mache die meldung "Can't locate Unicode/MapUTF8.pm..." wollte es dann mit einer .ldif Datei probieren aber das klappt auch nicht.
Ich habe eine ou=Users und eine ou=Groups angelegt mit einer ldif Datei aber ich krieg keinen User angelegt.
Es kommt immer die Meldung:

/etc/openldap # ldapadd -x -D " cn=Manager,dc=server,dc=anbieter,dc=net" -w secret -f User.ldif
adding new entry "uid=hpr,ou=Users,dc=server,dc=anbieter,dc=net"
ldap_add: Object class violation (65)
additional info: attribute 'uid' not allowed



Hier die User.ldif
##################################
dn: uid=hpr,ou=Users,dc=server,dc=anbieter,dc=net
objectclass: person
objectclass: organizationalperson
uid: hpr
cn: Hans Peter
sn: Peter
userpassword: test
ou: Users

Mit dem Java ldapbrower\Editor krieg ich auch keinen Benutzer angelegt.
Hat da einer ne idee? Ich will doch nur 1-2 User anlegen und denen dann Rechte vergeben. :(

Thorashh
18.08.06, 20:15
additional info: attribute 'uid' not allowed Du brauchst natürlich ein passendes Schema.
Ich würde samba3 nehmen. Das musst Du für smbldap-tools sowieso haben.

include /etc/openldap/samba3.schema

mamue
20.08.06, 11:43
Du brauchst natürlich ein passendes Schema.
Ich würde samba3 nehmen. Das musst Du für smbldap-tools sowieso haben.

include /etc/openldap/samba3.schema
Das Attribut 'uid' ist nicht in samba3.schema definiert, sondern in cosine.schema. Schliesslich braucht nicht samba das (naja, halt indirekt), sondern Posix. 'uid' bezeichnet das, was der user als Anmeldenamen kennt.
Was fehlt, ist zunächst nicht das schema als include in der slapd.conf, sondern die richtige 'objectclass', also zum Beispiel posixAccount (Steht in nis.schema und rfc2307bis.schema). 'person' und 'organizationalperson' bieten das offenbar hingegen nicht.

mamue

hedsch
23.08.06, 05:33
hi, bin zwar nur ein windows-server-admin-auf linux umsteigender, aber mir scheint das problem in einem servergespeicherten userprofile zu liegen; da ich ja gerade im umlernen bin, kann ich dazu leider keine konkreten tipps geben. gibts sowas überhaupt in der linuxwelt? ich denke schon, bin aber noch nicht vorgedrungen, ldap wäre ja das richtige protokoll dafür, wie das in linux implemeniert und zu handeln ist, weiss ich leider noch nicht....ich weiss nur, ldap ist ja ursprünglich aus der unix-welt, natürlich wie so das meiste, von meigrosaft abgekupfert und propietärisiert worden, aber gibts da eigentlich gute docs über ldap???

hedsch
23.08.06, 06:01
http://linuxwiki.de/OpenLDAP scheint mir einige vernünftige ansätze zu bieten, bis ----pardonnez moi --- die unix-linux-welt, das einzig-vernünftige, das die windelmenschen in ihrem bisherigen leben zusammengestohlen haben, das acive-directory... ähnlich oder besser und natürlich auch sicherer in die unix-linux-serverwelt integriert, entwickelt haben werden

bla!zilla
23.08.06, 11:03
ActiveDirectory ist also zusammengeklaut? Aha... Okay, Novells eDirectory, ehemals NDS ist älter, dafür kann ADS deutlich mehr. Aber gut... egal. Ein LDAP zur zentralen Benutzerverwaltung ist keine schlechte Idee. Trotzdem solltest du Systemkonten und Root-Konto lokal vorhalten. Benutzerkonten können aus dem LDAP bezogen werden. Es macht keinen Sinn Systemkonten im LDAP zu pflegen, da manche Konten zum Starten von Daemons gebraucht werden. Das kann zu einem Zeitpunkt passieren, an dem noch kein Netzwerk, und damit kein Verzeichniszugriff besteht.