PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : LDAP - Konfigurationsproblem



merenda
08.06.05, 12:38
Hi @all,

ich hab mir nun ein LDAP Buch gekauft. Um genau zu sein: "LDAP verstehen - OpenLDAP einsetzen".
Ich bin gerade dabei ein Paar beispiele die in dem Buch beschrieben sind auszutesten, doch leider komme ich nicht weiter.
Jetzt weiß nicht ob das an mir liegt oder am Buch, mir ist jetzt schon mehr mals aufgefallen, dass in dem Buch Fehler vorhanden sind.
Ich post hier mal meine Konfigdateien + LDIF + Fehlermeldung, vielleicht kann mir jemand weiter helfen.


/etc/openldap/slapd.conf

include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/misc.schema

access to * by * read

database bdb
suffix "o=avci,c=de"
rootdn "cn=admin,o=avci,c=de"
rootpw test

directory /var/lib/ldap
index default pres,eq
index objectClass eq


init.ldif
dn: o=avci,c=de
objectclass: top
objectclass: organization
o: Advanced Virtual Cottage Industries
o: avci
l: Hammburg
description: Test Firma

dn: cn=admin,o=avci,c=de
objectclass: top
objectclass: person
cn: admin
sn: admin
telephonenumber: 7654321
description: LDAP Administrator

dn: ou=root,o=avci,c=de
objectclass: top
objectclass: posixGroup
cn: root
gidNumber: 0

dn: uid=root,ou=root,o=avci,c=de
objectclass: top
objectclass: person
objectclass: posixAccount
uid: root
uidNumber: 0
gidNumber: 0
homeDirectory: /root
cn: root
sn: root

dn: cn=Rostlaube,o=avci,c=de
objectclass: top
objectclass: device
cn: Rostlaube
serialNumber HH-DY-501
description: Firmenwagen

dn: ou=users,o=avci,c=de
objectclass: top
objectclass: posixGroup
cn: users
gidNumber: 100

dn: ou=Partner,ou=users,o=avci,c=de
objectclass: top
objectclass: organizationalUnit
ou: Partner

dn: cn=Dieter Kluenter,ou=Partner,ou=users,o=avci,c=de
objectclass: top
objectclass: person
objectclass: inetOrgPerson
objectclass: organizationalPerson
objectclass: krb5Principal
krb5PrincipalName:dieter@AVCI.DE
cn: Dieter Kluenster
sn: Kluenter
uid: dieter
uidNumber: 500
gidNumber: 100
userPassword: {KERBEROS}dieter@AVCI.DE
homeDirectory: /home/dieter
mail: dkluenter@avci.de
telephoneNumber: +49.40.1234567
description: Chef

dn: uid=rosi,ou=Mitarbeiter,ou=users,o=avci,c=de
objectclass: top
objectclass: person
objectclass: inetorgPerson
objectclass: posixAccount
objectclass: organizationalPerson
cn: Rosemarie Hein
sn: Hein
uid: rosi
uidNumber: 501
gidNumber: 100
homeDirectory: /home/rosi
mail: rosi@avci.de
telephoneNumber: +49.40.9876543
description: die Seele



Fehlermeldung

ldapadd -xc -D "cn=admin,o=avci,c=de" -W -f init.ldif
adding new entry "o=avci,c=de"
ldapadd: update failed: o=avci,c=de
ldap_add: Already exists (68)

adding new entry "cn=admin,o=avci,c=de"
ldapadd: update failed: cn=admin,o=avci,c=de
ldap_add: Already exists (68)

adding new entry "ou=root,o=avci,c=de"
ldapadd: update failed: ou=root,o=avci,c=de
ldap_add: Undefined attribute type (17)
additional info: gidNumber: attribute type undefined

adding new entry "uid=root,ou=root,o=avci,c=de"
ldapadd: update failed: uid=root,ou=root,o=avci,c=de
ldap_add: Undefined attribute type (17)
additional info: uidNumber: attribute type undefined

ldapadd: invalid format (line 5) entry: "cn=Rostlaube,o=avci,c=de"
adding new entry "ou=users,o=avci,c=de"
ldapadd: update failed: ou=users,o=avci,c=de
ldap_add: Undefined attribute type (17)
additional info: gidNumber: attribute type undefined

adding new entry "ou=Partner,ou=users,o=avci,c=de"
ldapadd: update failed: ou=Partner,ou=users,o=avci,c=de
ldap_add: No such object (32)
matched DN: o=avci,c=de

adding new entry "cn=Dieter Kluenter,ou=Partner,ou=users,o=avci,c=de"
ldapadd: update failed: cn=Dieter Kluenter,ou=Partner,ou=users,o=avci,c=de
ldap_add: Undefined attribute type (17)
additional info: krb5PrincipalName: attribute type undefined

adding new entry "uid=rosi,ou=Mitarbeiter,ou=users,o=avci,c=de"
ldapadd: update failed: uid=rosi,ou=Mitarbeiter,ou=users,o=avci,c=de
ldap_add: Undefined attribute type (17)
additional info: uidNumber: attribute type undefined

mkahle
08.06.05, 12:56
ldapadd: update failed: o=avci,c=de
ldap_add: Already exists (68)
ldapadd: update failed: cn=admin,o=avci,c=de
ldap_add: Already exists (68)
ldapadd: update failed: ou=root,o=avci,c=de
Die Fehlermeldung besagt, daß die Objekte mit den angegebenen DN's schon existieren. Wahrscheinlich sind sie bei einem vorhering ldapadd-Lauf schon hinzugefügt worden.

Hinsichtlich der Fehlermeldungen mit "additional info: gidNumber: attribute type undefined", mußt Du in der slapd.conf das richtige schema mit einbinden:

include /etc/openldap/schema/nis.schema


ldapadd: update failed: ou=Partner,ou=users,o=avci,c=de
ldap_add: No such object (32)
matched DN: o=avci,c=de
Dies ist ein Sekundärfehler, da die DN für die ou "users" nicht angelegt werden konnte. Dies sollte automatisch behoben sein, wenn Du das vorgenannte Schema aktiviert hast (Restart von slapd nicht vergessen nach Änderungen an der slapd.conf.

merenda
08.06.05, 13:15
Hallo mkahle,

danke erst mal für dein Post. Also das Buch ist ja voll gespickt mit Fehlern :(
Ich muss mal den Verlag anschreiben.
Ich hab deine Änderungen vorgenommen, aber ich bekomme trotzdem noch Fehlermeldungen:
ldapadd -xc -D "cn=admin,o=avci,c=de" -W -f init.ldif
Enter LDAP Password:
adding new entry "o=avci,c=de"
ldapadd: update failed: o=avci,c=de
ldap_add: Already exists (68)

adding new entry "cn=admin,o=avci,c=de"
ldapadd: update failed: cn=admin,o=avci,c=de
ldap_add: Already exists (68)

adding new entry "ou=root,o=avci,c=de"
ldapadd: update failed: ou=root,o=avci,c=de
ldap_add: Already exists (68)

adding new entry "uid=root,ou=root,o=avci,c=de"
ldapadd: update failed: uid=root,ou=root,o=avci,c=de
ldap_add: Already exists (68)

ldapadd: invalid format (line 5) entry: "cn=Rostlaube,o=avci,c=de"
adding new entry "ou=users,o=avci,c=de"
ldapadd: update failed: ou=users,o=avci,c=de
ldap_add: Already exists (68)

adding new entry "ou=Partner,ou=users,o=avci,c=de"
ldapadd: update failed: ou=Partner,ou=users,o=avci,c=de
ldap_add: Already exists (68)

adding new entry "cn=Dieter Kluenter,ou=Partner,ou=users,o=avci,c=de"
ldapadd: update failed: cn=Dieter Kluenter,ou=Partner,ou=users,o=avci,c=de
ldap_add: Undefined attribute type (17)
additional info: krb5PrincipalName: attribute type undefined

adding new entry "uid=rosi,ou=Mitarbeiter,ou=users,o=avci,c=de"
ldapadd: update failed: uid=rosi,ou=Mitarbeiter,ou=users,o=avci,c=de
ldap_add: No such object (32)
matched DN: ou=users,o=avci,c=de


Gibt es eine Möglichekeit die Vorhandenen Einträge zu löschen so das die Meldungen: Already exists nicht mehr kommt ? Wenn ja wie ?

mkahle
09.06.05, 06:23
additional info: krb5PrincipalName: attribute type undefined
Den habe ich wohl beim ersten Mal übersehen, da fehlt noch ein weiteres Schema. Folgendes muß zur slapd.conf hinzugefügt werden:

include /etc/openldap/schema/krb5-kdc.schema
Da dieses Schema aber i.d.R. nicht per Default installiert ist, mußt Du Dir es erst holen: Siehe hier (http://www.bayour.com/openldap/schemas/)

adding new entry "uid=rosi,ou=Mitarbeiter,ou=users,o=avci,c=de"
Dieser Eintrag bedingt, daß die ou=Mitarbeiter unterhalb von ou=users,o=avci,c=de erst einmal engelegt ist. Dafür brauchts Du folgendes im ldif-File:

dn: ou=Mitarbeiter,ou=users,o=avci,c=de
objectclass: top
objectclass: organizationalUnit
ou: Mitarbeiter
und zwar irgendwo vor "Rosi" aber nach "ou=users" ...
Und falls Du alle Einträge, die im init.ldif sind löschen möchtest:

grep "^dn: " init.ldif | cut -d" " -f2 | while read entry; do ldapdelete -x -D "cn=admin,o=avci,c=de" $entry ; done
Für Einträge aus dem ldif-File, die noch nicht im Baum sind erhälst Du zwar eine Fehlermeldung, aber die kannst Du ignorieren.

merenda
09.06.05, 08:23
Hi, danke erst mal du hast mir wirklich sehr weiter geholfen. Ein paar Probs bzw. Fragen habe ich aber immer noch :D

Du hattest volkommenrecht mit dem
include /etc/openldap/schema/krb5-kdc.schemaWas ich mich jetzt aber Frage, wie ist es mit der reihen Folge ? Also ich hab jetzt mal folgendermasen gegliedert:
/etc/openldap/slapd.conf
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/nis.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/misc.schema
include /etc/openldap/schema/krb5-kdc.schema
.
.
.

Stimmt das so ? Oder muss das krb5-kdc.schema wo anders hin ? Wie finde ich raus welche reinfolge welches Schema hat ?! DAs habe ich noch nicht so ganz verstanden :confused:

Also er hat alles eingefügt wie du es gesagt hast, aber eine Fehlermeldung habe ich noch:
adding new entry "cn=Dieter Kluenter,ou=Partner,ou=users,o=avci,c=de"
ldapadd: update failed: cn=Dieter Kluenter,ou=Partner,ou=users,o=avci,c=de
ldap_add: Object class violation (65)
additional info: attribute 'uidNumber' not allowed

Kann man diese Fehlercodes irgendwo nachschlagen ?

Und irgendwie hat das mit dem ldapdelete nicht funkioniert, bekomm immer folgende Fehlermeldung:
grep "^dn: " init.ldif.bak | cut -d" " -f2 | while read entry; do ldapdelete -x -D "cn=admin,o=avci,c=de" $entry ; done
ldap_bind: Server is unwilling to perform (53)
additional info: unwilling to allow anonymous bind with non-empty DN
ldap_bind: Server is unwilling to perform (53)
additional info: unwilling to allow anonymous bind with non-empty DN
ldap_bind: Server is unwilling to perform (53)
additional info: unwilling to allow anonymous bind with non-empty DN
ldap_bind: Server is unwilling to perform (53)
additional info: unwilling to allow anonymous bind with non-empty DN
ldap_bind: Server is unwilling to perform (53)
additional info: unwilling to allow anonymous bind with non-empty DN
ldap_bind: Server is unwilling to perform (53)
additional info: unwilling to allow anonymous bind with non-empty DN
ldap_bind: Server is unwilling to perform (53)
additional info: unwilling to allow anonymous bind with non-empty DN
ldap_bind: Server is unwilling to perform (53)
additional info: unwilling to allow anonymous bind with non-empty DN
ldap_bind: Server is unwilling to perform (53)
additional info: unwilling to allow anonymous bind with non-empty DN
ldap_bind: Server is unwilling to perform (53)
additional info: unwilling to allow anonymous bind with non-empty DN


Gruß

Merenda

mkahle
09.06.05, 08:37
Ups, mein Fehler, habe es einfach von einem meiner Server kopiert. Da fehlt eigentlich noch das "-W", aber ich weiß nicht, ob Du Lust hast ständig das Paßwort einzutippen.
Vorschlag:

alias ldapdelete='ldapdelete -x -D "cn=admin,o=avci,c=de" -y ~/.ldap-passwd'
echo -n "DEIN PASSWORT" >~/.ldap-passwd
chmod 600 ~/.ldap-passwd
und danach die Schleife laufen lassen, die ich in meinem letzten Posting hatte.

mkahle
09.06.05, 08:44
Ich vergaß, auf die anderen Fragen einzugehen:
- Die Einsortierung von krb5-kdc.schema ist vollkommen in Ordnung, die Schemata werden in der Reihenfolge gelesen, wie Du sie im slapd.conf einträgst.

additional info: attribute 'uidNumber' not allowed
Dies bedeutet, daß dem Eintrag noch eine ObjectClass fehlt, und zwar eine, bei der dieses Attribut erlaubt ist (beispielsweise posixAccount). Ich denke, Du wirst diesen Eintrag in folgender Form haben wollen:

dn: cn=Dieter Kluenter,ou=Partner,ou=users,o=avci,c=de
objectclass: top
objectclass: person
objectclass: inetOrgPerson
objectclass: organizationalPerson
objectclass: posixAccount
objectclass: krb5Principal
krb5PrincipalName:dieter@AVCI.DE
cn: Dieter Kluenster
sn: Kluenter
uid: dieter
uidNumber: 500
gidNumber: 100
userPassword: {KERBEROS}dieter@AVCI.DE
homeDirectory: /home/dieter
mail: dkluenter@avci.de
telephoneNumber: +49.40.1234567
description: Chef

merenda
09.06.05, 09:40
Hi,

es sieht immer besser aus :)

also das verstehe ich nicht so ganz
ldapadd: invalid format (line 5) entry: "cn=Rostlaube,o=avci,c=de"
adding new entry "ou=users,o=avci,c=de"
ldapadd: update failed: ou=users,o=avci,c=de
ldap_add: Already exists (68)

Und irgendwie klappt das mit dem delete noch nicht so ganz, ich hab das mal einzeln gemacht:
ldapdelete -x -D -w test "o=avci,c=de"
ldap_bind: Invalid DN syntax (34)
additional info: invalid DN

mkahle
09.06.05, 10:09
ldapadd: invalid format (line 5) entry: "cn=Rostlaube,o=avci,c=de"
da fehlt ein ":" im ldif. Korrekt muß es so aussehen:

dn: cn=Rostlaube,o=avci,c=de
objectclass: top
objectclass: device
cn: Rostlaube
serialNumber: HH-DY-501
description: Firmenwagen


ldapdelete -x -D -w test "o=avci,c=de"
Hier fehlt die admin dn...

ldapdelete -x -D "cn=admin,o=avci,c=de" -w test "o=avci,c=de"

merenda
09.06.05, 13:48
super danke ... es funktioniert jetzt !
Manchmal sieht man den Wald vor lauter Bäumen nicht mehr ... :D