PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : LDAP Server will nicht starten



brave_snoopy
07.06.06, 22:59
Hey,
ich versuche grade verzweifelt einen openLDAP Server aufzusetzen, doch es klappt nicht. Bin nach diesem Tutorial vorgegangen:
klick (http://www.linux-club.de/ftopic13784.html)

Meine sldap.conf sieht so aus:



linux:/var/log # cat /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

suffix "o=MeineFirma, c=de"
rootdn "cn=admin,o=MeineFirma,c=de"
rootpw secret
linux:/var/log #


wenn ich nun unter Suse 10.1 mit rcldap start den Server starten möchte bekomme ich in der messages Log Datei folgende Ausgabe.



Jun 8 00:38:07 linux slapd[2911]: @(#) $OpenLDAP: slapd 2.3.19 (May 2 2006 07:35:14) $ abuild@d206:/usr/src/packages/BUILD/openldap-2.3.19/servers/slapd
Jun 8 00:38:07 linux slapd[2911]: /etc/openldap/slapd.conf: line 7: suffix <o=MeineFirma,c=de> not allowed in frontend database.
Jun 8 00:38:07 linux slapd[2911]: slapd stopped.
Jun 8 00:38:07 linux slapd[2911]: connections_destroy: nothing to destroy.
linux:/var/log #


aber ich hab es doch genauso gemacht wie es in dem Tutorial steht.. mh was ist denn Falsch?

BedriddenTech
07.06.06, 23:46
Hallo,

ich schätze, du hast ein

database bdb
directory /var/openldap-data vergessen. Warum hast du aber die slapd.conf, die SuSE mitliefert (und ein sehr guter Anhaltspunkt ist) einfach weggeworfen?

brave_snoopy
08.06.06, 00:06
ich versuch es gleich morgen Abend mal..
hab die config weggeworfen, weil ich den Aufbau mal komplett selbst machen wollte um mich i die geschichte einzuarbeiten..mnur blöd das die Datenbank nicht erwähnt wird..

BedriddenTech
08.06.06, 18:08
Die Original-Datei hätte dir aber hier als Vergleichsobjekt wertvolle Hilfe leisten können. ;) Genauso praktisch sind die Beispiele im OpenLDAP Systems Administrator's Handbook (http://www.openldap.org/doc/admin/)

brave_snoopy
08.06.06, 22:28
Guten Abend,

ich hab das mit der database und directory eingetragen. Hat leider nicht geholfen, ich bekomme immernoch folgende Fehlermeldung:




35:14) $ abuild@d206:/usr/src/packages/BUILD/openldap-2.3.19/servers/slapd
Jun 9 00:29:22 linux slapd[2899]: /etc/openldap/slapd.conf: line 7: suffix <o=MeineFirma,c=de> not allowed in frontend database.
Jun 9 00:29:22 linux slapd[2899]: slapd stopped.
Jun 9 00:29:22 linux slapd[2899]: connections_destroy: nothing to destroy.
linux:/etc/openldap #


habe aus dem o=MeineFirma,c=de
dc=MeineFirma,dc=de

gemacht.. bekomme nun beim starten direkt in der Konsole folgende Fehlermeldung bekommen.



linux:/etc/openldap # rcldap start
Starting ldap-serverstartproc: exit status of parent of /usr/lib/openldap/slapd: 1
failed
linux:/etc/openldap #


also muss doch irgendwas mit der suffix Zeile falsch sein, oder?

brave_snoopy
09.06.06, 14:48
in der Anleitung von der offiziellen Seite wird auch nur von dc geschrieben. Kann es sein das die "o" und "c" Tags nicht mehr konform sind?

Nur wieso startet er immernoch nicht? Kann doch net so schwer sein, das Teil einzurichten oder?

mamue
09.06.06, 17:04
Ein Blick in die log-files, etwa /var/log/mesages kann sehr hilfreich sein. Vielleicht stimmen ja nur die Rechte des Verzeichnisses /var/lib/ldap nicht, das dem user ldap gehören und der dort schreiben können sollte. Ebenso hilfreich kann es sein, die slapd.conf und das ldif zu posten, damit wir nachvollziehen können, was da los ist.

mamue

brave_snoopy
09.06.06, 19:14
die Ausgabe der messages Datei:



Jun 9 21:14:30 linux slapd[2869]: @(#) $OpenLDAP: slapd 2.3.19 (May 2 2006 07:35:14) $ abuild@d206:/usr/src/packages/BUILD/openldap-2.3.19/servers/slapd
Jun 9 21:14:30 linux slapd[2869]: /etc/openldap/slapd.conf: line 7: suffix <dc=MeineFirma,dc=de> not allowed in frontend database.
Jun 9 21:14:30 linux slapd[2869]: slapd stopped.
Jun 9 21:14:30 linux slapd[2869]: connections_destroy: nothing to destroy.
linux:/home/swendrich #


die sldap.conf Datei



cat /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

suffix "dc=MeineFirma, dc=de"
rootdn "cn=admin,dc=MeineFirma,dc=de"
rootpw secret

database bdb
directory /var/lib/ldap


eine ldif Datei hab ich bis jetzt noch nicht genutzt.

Die Berechtigung auf das Verzeichniss /var/lib/ldap



drwx------ 2 ldap ldap 4096 2006-06-07 01:41 ldap

MiGo
10.06.06, 11:47
Anscheinend fehlt dir eine Backend-DB; ich poste einfach mal meine config:


# This is the main slapd configuration file. See slapd.conf(5) for more
# info on the configuration options.

# Schema and objectClass definitions
include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/inetorgperson.schema
include /usr/share/evolution-data-server-1.0/evolutionperson.schema

schemacheck on

pidfile /var/run/slapd/slapd.pid

argsfile /var/run/slapd.args


# Where the dynamically loaded modules are stored
modulepath /usr/lib/ldap
moduleload back_bdb

################################################## #####################
# Specific Backend Directives for bdb:
# Backend specific directives apply to this backend until another
# 'backend' directive occurs
backend bdb
checkpoint 512 30

################################################## #####################
# Specific Directives for database #1, of type bdb:
# Database specific directives apply to this databasse until another
# 'database' directive occurs
allow bind_v2

database bdb

# The base of your directory in database #1
suffix "dc=eihort"
# Where the database file are physically stored for database #1
directory "/var/lib/ldap"

# Indexing options for database #1
index objectClass eq

# Save the time that the entry gets modified, for database #1
lastmod on

# The userPassword by default can be changed
# by the entry owning it if they are authenticated.
# Others should not be able to see it, except the
# admin entry below
# These access lines apply to database #1 only
access to attrs=userPassword
by dn="cn=admin,dc=eihort" write
by dn="cn=Vorname Name,ou=AddressBook,dc=eihort" write
by anonymous auth
by self write
by * none

# Ensure read access to the base for things like
# supportedSASLMechanisms. Without this you may
# have problems with SASL not knowing what
# mechanisms are available and the like.
# Note that this is covered by the 'access to *'
# ACL below too but if you change that as people
# are wont to do you'll still need this if you
# want SASL (and possible other things) to work
# happily.
access to dn.base="" by * read

# The admin dn has full write access, everyone else
# can read everything.
access to *
by dn="cn=admin,dc=eihort" write
by dn="cn=Vorname Name,ou=AddressBook,dc=eihort" write
by * read

brave_snoopy
10.06.06, 12:08
nein,das kann doch nicht war sein. Das Problem war folgendes:
database bdb muss VOR dem suffix stehen! Jetzt lässt er sich einwandfrei starten

brave_snoopy
10.06.06, 13:45
mh ich möchte jetzt nich unbedingt nen neuen Thread aufmachen, aber das hinzufügen von ldif Dateien funktioniert nicht so ganz.

die user.ldif Datei:



linux:/etc/openldap # cat user.ldif
dn: o=MeineFirma,c=de
objectclass: top
objectclass: organizationalunit
ou: benutzer

dn: cn=Stefan Wendrich, ou=benutzer,o=MeineFirma,c=de
objectclass: top
objectclass: person
objectclass: organizationalperson
objectclass: inetorgperson
cn: Stefan Wendrich
sn: stefan
loginShell: /bin/bash
homeDirectory: /home/stefan
ou: benutzer
userpassword: passwort


ich versuche die ldif Datei so hinzuzufügen:



ldapadd -D "cn=admin,o=MeineFirma,c=dif -w secret < user.ld


bekomme aber diese Fehlermeldung


ldap_sasl_interactive_bind_s: No such attribute (16)

mamue
11.06.06, 11:29
dn: o=MeineFirma,c=de
objectclass: top
objectclass: organizationalunit
ou: benutzer

kann auch nicht so ganz stimmen. "o" ist "organization", nicht "organizationalunit". Wozu steht denn das "ou: benutzer" dort?
Ausserdem könntest Du es mal mit
ldapadd -x -D ...
versuchen. "-x" steht für simple bind, also ohne sasl und Verschlüsselung.

HTH,
mamue

brave_snoopy
11.06.06, 11:41
das mit dem -x ist schonmal gut, jetzt komm ich weiter, danke.

Habe die user.ldif Datei jetzt geändert, bekomme aber trotzdem noch eine Fehlermeldung:

Also ich möchte es so haben, meine Organisation soll MeineFirma lauten.
Dort möchte ich eine OU haben: benutzer
In dieser OU sollen dann die Benutzer reinkommen, wodurch sich die user dann am System anmelden können.

Meine user.ldif sieht nun so aus:


linux:/etc/openldap # cat user.ldif
dn: o=MeineFirma,c=de
objectclass: top
objectclass: organization
ou: benutzer

dn: cn=Stefan Wendrich, ou=benutzer,o=MeineFirma,c=de
objectclass: organizationalunit
cn: Stefan Wendrich
sn: stefan
loginShell: /bin/bash
homeDirectory: /home/stefan
ou: benutzer
userpassword: passwort


mit dem Aufruf


ldapadd -x -D "cn=admin,o=MeineFirma,c=de" -w secret < user.ldif


bekomm ich folgenden Fehler



linux:/etc/openldap # ldapadd -x -D "cn=admin,o=MeineFirma,c=de" -w secret < user.ldif
adding new entry "o=MeineFirma,c=de"
ldap_add: Naming violation (64)
additional info: naming attribute 'o' is not present in entry

linux:/etc/openldap #


an der sldap.conf hab ich nix geändert. Dort wurde doch die o ( Organization) erstellt, oder?



PS: Was bringt das objectclass? Ich habe nix gefunden, was das darstellt, in manchen ldif Dateien taucht es auf, in anderen nicht.

PPS: Gibt es ein GUI Tool für SuSE 10.1, zur späteren einfacheren Wartung?

mamue
11.06.06, 23:36
Wie gesagt, wozu hast Du dort ou=benutzer stehen? Du hast im DN o=MeineFirma stehen, führst das aber nirgends aus. Ich hätte so etwas wie o=MeineFirma anstelle ou=benutzer erwartet.

BTW, es kümmert OpenLDAP wenig, wenn man seinen Vornamen als Nachnamen ( "surename", kurz "sn" ) angibt, aber etwas ungewöhnlich finde ich das schon.

Du verwendest ürbrigens im zweiten Eintrag eine ou, die Du nicht zuvor definiert hast, soweit ich das erkennen kann.

Die "objectclass" dienen im Prinzip zur Typisierung - in /etc/openldap/schema findest Du sie in .schema-Dateien beschrieben. Dort steht, welche Attribute aufgeführt werden müssen und können, wenn Du eine bestimmte Objectclass verwendest. Schau mal dort bei der objectclass "ou" oder "organizationalunit" nach, was dort als "must" steht. Das müsste in core.schema stehen.

HTH,
mamue

brave_snoopy
19.06.06, 22:39
nachdem mein vmware server wieder läuft, kann ich auch weiter testen.
habe es jetzt hinbekommen, das ich einen eintrag hinzugefügt habe. meine user.ldif sieht so aus:



cat user.ldif
dn: cn=Stefan Wendrich,o=MeineFirma,c=de
objectClass: top
objectClass: inetOrgPerson
cn: Stefan Wendrich
sn: Wendrich
o: MeineFirma



wenn ich jetzt:



ldapsearch -x -h localhost -D cn=admin,o=MeineFirma -W
Enter LDAP Password:

eingebe, erhalte ich folgende Fehlermeldung:



ldap_bind: Invalid credentials (49)


ebenfalls wenn ich bei "cn=admin" das hinschreibe: cn=Wendrich so wie in der ldif angegeben.
Der Admin Account habe ich ja in der sldap.conf angeben. oder muss ich Ihn nochmal extra anlegen?


Noch zwei Sachen, gibt s eine brauchbare GUI zur einfachen Verwaltung eines LDAP Server, um Benutzer anzulegen usw.

Und was sagt

dn:

aus? Lege ich damit etwas neues an?

MiGo
20.06.06, 08:59
ldapsearch -x -h localhost -D cn=admin,o=MeineFirma -W
Der Admin Account habe ich ja in der sldap.conf angeben. oder muss ich Ihn nochmal extra anlegen?
rootdn "cn=admin,dc=MeineFirma,dc=de" steht in deiner config, nicht
"cn=admin,o=MeineFirma". Du hast das Land vergessen :)

ebenfalls wenn ich bei "cn=admin" das hinschreibe: cn=Wendrich so wie in der ldif angegeben.
Das kann aus 2 Gründen mit cn=Wendrich nicht gehen:
a) ist der User ja noch nicht im Verzeichnis sondern soll erst hinzugefügt werden
b) heisst der User nach deiner ldif cn=Stefan Wendrich, nicht cn=Wendrich.

mamue
20.06.06, 10:22
Und was sagt

dn:

aus? Lege ich damit etwas neues an?

"DN" bezeichnet den "distinguished name", also den einmaligen Bezeichner eines Eintrages im Verzeichnis. Der lässt sich nachträglich nicht ohne weiteres ändern, bzw. es gibt ein spezielles Tool dafür, ich glaube ldapmodrdn heißt es.

mamue

Tokar
20.06.06, 11:30
Moin moin,

das passt jetzt vielleicht nicht hier rein.
ich würde gern openldap 2.3 auf einem debian sarge aufsetzen aber unglücklicherweise musste ich feststellen das 2.2 standardmäßig von apt zur verfügung gestellt wird. lässt sich das mit nem eintrag in den sourcelist ändern und (wenn ja) wo find ich die?
Ich hab nur für unstable (und da gehts eigentlich um den Account-Manager) einen eintrag gefunden: LDAP-Account-Manager-Dokumentation.pdf (http://lam.sourceforge.net/documentation/LDAP-Account-Manager-Dokumentation.pdf):(
Und eigentlich würde ich gern beim "Stable" bleiben...

OK. Debian hat die Version 2.3 noch im testing-zweig...hier zu sehen (http://packages.debian.org/testing/net/)...muss ich also sourcen saugen und selber kompilieren. hätt zuerst bei den jungs zu hause gucken sollen, sorry.

mfg
tokar

MiGo
20.06.06, 15:11
das passt jetzt vielleicht nicht hier rein.
Ja, das passt es nicht.
Das nennt sich "Thread-Hijacking" und gilt als ausgesprochen unhöflich.
Daher bitte:
Neues Problem, neuer Thread.