PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : OpenLDAP + PHPldapAdmin



rupe
17.10.06, 17:05
Hallo, Leute ich hab ein riesen Problem! Ich versuche gerade einen LDAP-Server zu installieren. Um genau zu sein soll es OpenLDAP sein.
Und noch dazu den PHPLdapAdmin zum laufen zu bekommen.

Aber ich kriegs nicht hin ich hab schon verschiedene HowTows durchgearbeitet und herum Probiert sowie studiert. Aber jedesmal wenn es soweit ist den Server neu zu starten bekomme ich diese Fehlermeldung:



Starting OpenLDAP: slapd - failed.
The operation failed but no output was produced. For hints on what went
wrong please refer to the system's logfiles (e.g. /var/log/syslog) or
try running the daemon in Debug mode like via "slapd -d 16383" (warning:
this will create copious output).

Below, you can find the command line options used by this script to
run slapd and slurpd. Do not forget to specify those options if you
want to look to debugging output:
slapd -g openldap -u openldap


Von anderen Usern habe ich gelesen das es meist damit zusammenhing das der Server schon lief. Bei mir läuft nix davon


Und das kommt wenn ich slapd -d 16383 eingebe:


.26{1024} SINGLE-VALUE ))
line 165 (objectclass ( 1.3.6.1.1.1.2.0 NAME 'posixAccount' DESC 'Abstraction of an account with POSIX detributes' SUP top AUXILIARY MUST ( cn $ uid $ uidNumber $ gidNumber $ homeDirectory ) MAY ( userPassword $ loginShell $ gecos $ description ) ))
line 173 (objectclass ( 1.3.6.1.1.1.2.1 NAME 'shadowAccount' DESC 'Additional detributes for shadow passwords' SUP top AUXILIARY MUST uid MAY ( userPassword $ shadowLastChange $ shadowMin $ shadowMax $ shadowWarning $ shadowInactive $ shadowExpire $ shadowFlag $ description ) ))
line 179 (objectclass ( 1.3.6.1.1.1.2.2 NAME 'posixGroup' DESC 'Abstraction of a group of accounts' SUP top STRUCTURAL MUST ( cn $ gidNumber ) MAY ( userPassword $ memberUid $ description ) ))
line 185 (objectclass ( 1.3.6.1.1.1.2.3 NAME 'ipService' DESC 'Abstraction an Internet Protocol service' SUP top STRUCTURAL MUST ( cn $ ipServicePort $ ipServiceProtocol ) MAY ( description ) ))
line 191 (objectclass ( 1.3.6.1.1.1.2.4 NAME 'ipProtocol' DESC 'Abstraction of an IP protocol' SUP top STRUCTURAL MUST ( cn $ ipProtocolNumber $ description ) MAY description ))
line 197 (objectclass ( 1.3.6.1.1.1.2.5 NAME 'oncRpc' DESC 'Abstraction of an ONC/RPC binding' SUP top STRUCTURAL MUST ( cn $ oncRpcNumber $ description ) MAY description ))
line 203 (objectclass ( 1.3.6.1.1.1.2.6 NAME 'ipHost' DESC 'Abstraction of a host, an IP device' SUP top AUXILIARY MUST ( cn $ ipHostNumber ) MAY ( l $ description $ manager ) ))
line 209 (objectclass ( 1.3.6.1.1.1.2.7 NAME 'ipNetwork' DESC 'Abstraction of an IP network' SUP top STRUCTURAL MUST ( cn $ ipNetworkNumber ) MAY ( ipNetmaskNumber $ l $ description $ manager ) ))
line 215 (objectclass ( 1.3.6.1.1.1.2.8 NAME 'nisNetgroup' DESC 'Abstraction of a netgroup' SUP top STRUCTURAL MUST cn MAY ( nisNetgroupTriple $ memberNisNetgroup $ description ) ))
line 221 (objectclass ( 1.3.6.1.1.1.2.9 NAME 'nisMap' DESC 'A generic abstraction of a NIS map' SUP top STRUCTURAL MUST nisMapName MAY description ))
line 227 (objectclass ( 1.3.6.1.1.1.2.10 NAME 'nisObject' DESC 'An entry in a NIS map' SUP top STRUCTURAL MUST ( cn $ nisMapEntry $ nisMapName ) MAY description ))
line 232 (objectclass ( 1.3.6.1.1.1.2.11 NAME 'ieee802Device' DESC 'A device with a MAC address' SUP top AUXILIARY MAY macAddress ))
line 237 (objectclass ( 1.3.6.1.1.1.2.12 NAME 'bootableDevice' DESC 'A device with boot parameters' SUP top AUXILIARY MAY ( bootFile $ bootParameter ) ))
line 14 (include /etc/ldap/schema/inetorgperson.schema)
reading config file /etc/ldap/schema/inetorgperson.schema
line 36 (detributetype ( 2.16.840.1.113730.3.1.1 NAME 'carLicense' DESC 'RFC2798: vehicle license or registrdeion pldee' EQUALITY caseIgnoreMdech SUBSTR caseIgnoreSubstringsMdech SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ))
line 46 (detributetype ( 2.16.840.1.113730.3.1.2 NAME 'departmentNumber' DESC 'RFC2798: identifies a department within an organizdeion' EQUALITY caseIgnoreMdech SUBSTR caseIgnoreSubstringsMdech SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ))
line 59 (detributetype ( 2.16.840.1.113730.3.1.241 NAME 'displayName' DESC 'RFC2798: preferred name to be used when displaying entries' EQUALITY caseIgnoreMdech SUBSTR caseIgnoreSubstringsMdech SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE ))
line 70 (detributetype ( 2.16.840.1.113730.3.1.3 NAME 'employeeNumber' DESC 'RFC2798: numerically identifies an employee within an organizdeion' EQUALITY caseIgnoreMdech SUBSTR caseIgnoreSubstringsMdech SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE ))
line 81 (detributetype ( 2.16.840.1.113730.3.1.4 NAME 'employeeType' DESC 'RFC2798: type of employment for a person' EQUALITY caseIgnoreMdech SUBSTR caseIgnoreSubstringsMdech SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ))
line 92 (detributetype ( 0.9.2342.19200300.100.1.60 NAME 'jpegPhoto' DESC 'RFC2798: a JPEG image' SYNTAX 1.3.6.1.4.1.1466.115.121.1.28 ))
line 107 (detributetype ( 2.16.840.1.113730.3.1.39 NAME 'preferredLanguage' DESC 'RFC2798: preferred written or spoken language for a person' EQUALITY caseIgnoreMdech SUBSTR caseIgnoreSubstringsMdech SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE ))
line 123 (detributetype ( 2.16.840.1.113730.3.1.40 NAME 'userSMIMECertificdee' DESC 'RFC2798: PKCS#7 SignedDdea used to support S/MIME' SYNTAX 1.3.6.1.4.1.1466.115.121.1.5 ))
line 135 (detributetype ( 2.16.840.1.113730.3.1.216 NAME 'userPKCS12' DESC 'RFC2798: personal identity informdeion, a PKCS #12 PFX' SYNTAX 1.3.6.1.4.1.1466.115.121.1.5 ))
line 155 (objectclass ( 2.16.840.1.113730.3.2.2 NAME 'inetOrgPerson' DESC 'RFC2798: Internet Organizdeional Person' SUP organizdeionalPerson STRUCTURAL MAY ( audio $ businessCdeegory $ carLicense $ departmentNumber $ displayName $ employeeNumber $ employeeType $ givenName $ homePhone $ homePostalAddress $ initials $ jpegPhoto $ labeledURI $ mail $ manager $ mobile $ o $ pager $ photo $ roomNumber $ secretary $ uid $ userCertificdee $ x500uniqueIdentifier $ preferredLanguage $ userSMIMECertificdee $ userPKCS12 ) ))
line 18 (schemacheck on)
/etc/ldap/slapd.conf: line 18: unknown directive <schemacheck> inside backend ddeabase definition (ignored).
line 22 (pidfile /var/run/slapd/slapd.pid)
line 25 (argsfile /var/run/slapd/slapd.args)
line 28 (loglevel 0)
line 31 (modulepdeh /usr/lib/ldap)
line 32 (moduleload back_bdb)
loaded module back_bdb
bdb_back_initialize: initialize BDB backend
bdb_back_initialize: Sleepycde Software: Berkeley DB 4.2.52: (December 3, 2003)
module back_bdb: null module registered
line 35 (sizelimit 500)
line 39 (tool-threads 1)
line 45 (backend bdb)
line 46 (checkpoint 512 30)
/etc/ldap/slapd.conf: line 46: unknown directive <checkpoint> inside backend ddeabase definition (ignored).
line 58 (ddeabase bdb)
bdb_db_init: Initializing BDB ddeabase
line 61 (suffix "dc=developer,dc=domain,dc=de")
>>> dnPrettyNormal: <dc=developer,dc=domain,dc=de>
=> ldap_bv2dn(dc=developer,dc=domain,dc=de,0)
<= ldap_bv2dn(dc=developer,dc=domain,dc=de)=0
=> ldap_dn2bv(272)
<= ldap_dn2bv(dc=developer,dc=domain,dc=de)=0
=> ldap_dn2bv(272)
<= ldap_dn2bv(dc=developer,dc=domain,dc=de)=0
<<< dnPrettyNormal: <dc=developer,dc=domain,dc=de>, <dc=developer,dc=domain,dc=de>
line 62 (rootdn "cn=Manager,dc=domain,dc=de")
>>> dnPrettyNormal: <cn=Manager,dc=domain,dc=de>
=> ldap_bv2dn(cn=Manager,dc=domain,dc=de,0)
<= ldap_bv2dn(cn=Manager,dc=domain,dc=de)=0
=> ldap_dn2bv(272)
<= ldap_dn2bv(cn=Manager,dc=domain,dc=de)=0
=> ldap_dn2bv(272)
<= ldap_dn2bv(cn=manager,dc=domain,dc=de)=0
<<< dnPrettyNormal: <cn=Manager,dc=domain,dc=de>, <cn=manager,dc=domain,dc=at>
line 63 (rootpw ***)
/etc/ldap/slapd.conf: line 63: <rootpw> can only be set when rootdn is under suffix
slapd destroy: freeing system resources.
slapd stopped.
connections_destroy: nothing to destroy.


Help me Please!!!! :(
PS: dc=domain ist natürlich die richtige Domain eingetragen!

mkahle
17.10.06, 20:33
line 61 (suffix "dc=developer,dc=domain,dc=de")
...
<<< dnPrettyNormal: <cn=Manager,dc=domain,dc=de>, <cn=manager,dc=domain,dc=at>
line 63 (rootpw ***)
/etc/ldap/slapd.conf: line 63: <rootpw> can only be set when rootdn is under suffix

also die Wurzel deines Bäumchen beginnt bei "dc=developer,dc=domain,dc=de", aber den Manager willst Du noch tiefer vergraben? Armer Kerl, Dein Manager :). Versuch mal, den Manager auf cn=manager,dc=developer,dc=domain,dc=de zu setzen ...

EDIT: wie komme ich nur auf dc=at??? Korrigiert.

rupe
18.10.06, 15:20
Hey, danke!
Wie konnte ich das übersehen....???

Da der LDAP-Server läuft, hätte ich noch einige grundsätzliche Fragen!


Kann ich die Benutzer meines Systems irgendwie in die LDAP-Datenbank importieren?
Kann ich meine Systembenutzer dann auch über LDAP verwalten, hinzufügen und verändern? So das diese Benutzer eine Shell öffnen können oder einen Dienst als dieser Benutzer gestartet werden kann? So das LDAP meine passwd ersetzt?
Wie funktioniert das dann genau. Schreibt sich dieser LDAP Server so tief ins System das er als einer der ersten gestartet wird? Oder werden nur systemuser (zB: root oder www-data) in die passwd geschrieben und LDAP übernimmt dann alle anderen?
Funktioniert das überhaupt mit den localen LDAP Server oder muss der LDAP Server auf einen anderen Rechner liegen?


Fragen über Fragen! :rolleyes:

mkahle
19.10.06, 08:02
# ann ich die Benutzer meines Systems irgendwie in die LDAP-Datenbank importieren?
ja, aber nicht mit einem Befehl. Vlt. existiert auch irgendwo ein Skript dafür, ansonsten sollte es nicht zu schwer sein, eine kleine Schleife zu schreiben und ein LDIF für den Import im LDAP damit auszugeben.

# Kann ich meine Systembenutzer dann auch über LDAP verwalten, hinzufügen und verändern? So das diese Benutzer eine Shell öffnen können oder einen Dienst als dieser Benutzer gestartet werden kann? So das LDAP meine passwd ersetzt?
Theoretisch kannst Du bis auf den root-user alle im LDAP verwalten, aber ratsam ist es nicht. Evtl. läuft ja sogar dein LDAP Serverprozess als nicht priveligierter User, da würdest Du dann ein Henne-Ei Problem bekommen. Aber mit hinreichend vielen Anpassungen, ist es möglich.

# Wie funktioniert das dann genau. Schreibt sich dieser LDAP Server so tief ins System das er als einer der ersten gestartet wird? Oder werden nur systemuser (zB: root oder www-data) in die passwd geschrieben und LDAP übernimmt dann alle anderen?
Das hängt von Deiner Distri und Deiner Konfiguration ab. I.d.R. werden lediglich für PAM und NSS Module hinzugefügt/aktiviert, die es dem System erlauben _zusätzlich_ über LDAP zu auth. und Benutzer oder Gruppennamen aufzulösen.

# Funktioniert das überhaupt mit den localen LDAP Server oder muss der LDAP Server auf einen anderen Rechner liegen?
Das ist egal, nur wenn Du einen entfernten nimmst, solltest Du Dir darüber im Klaren sein, daß Namensaufl. und Authorisierung über LDAP erst dann funktionieren, wenn das Netzwerk erfolgreich gestartet wurde. Dbzgl. solltest Du Dir die Startreihenfolge Deiner Dienste mal ansehen.

rupe
19.10.06, 15:03
Hey, danke nochmal für die Antwort!

Ich hab jetzt selbst was geschrieben damit das in die Datenbank eingetragen wird und es funktioniert auch einwandfrei.
Nur hab ich jetzt das Problem das die Passwörter ja auch übernommen werden müssen und die stehen in der Shadow und sind MD5 verschlüsselt.

Auch die Passwörter des LDAP-Servers können MD5 verschlüsselt werden nur das die da irgendwie anders verschlüsselt werden.
Mein Problem ist jetzt das ich die ganzen Passwörter nicht mehr im Klartext habe und ich die auch nicht neu vergeben kann.
Und ich hab auch keine Idee wie ich das jetzt lösen soll.
Also ich will das passwort nicht entschlüsseln müssen, aber irgendwie müssen die da richtig drinnen stehen, verschlüsselt oder nicht!



Hier noch ein Beispiel, falls ich mich nicht klar genug ausgedrückt hab:

In der Shadow:
$1$JVm74n.I$zTwkhiUSb4n46ADddFVQf/

In der LDAP-Datenbank:
{MD5}dUisMyuT7grYM1AFvmNGqw==

Ist aber das gleiche Passwort!


Kann mir irgendjemand helfen. Vielleicht einen kleinen Anhaltspunkt oder denkanstoss würde schon sehr helfen.

mkahle
20.10.06, 09:41
ich denke du mußt die existierenden passwörter mit {CRYPT} ins LDAP schreiben und in der slapd.conf etwas der Art

password-crypt-salt-format "$1$%.8s"
reinschreiben ... um ehrlich zu sein: ich hab's nicht getestet, reine Theorie ...

rupe
23.10.06, 12:48
Hey, danke...!

Du hattest recht und nun funktioniert auch das! Jetzt hätte ich noch eine allerletzte frage! Wie kann ich das so machen das bei anlegen eines Benutzers am LDAP-Server, gleich ist als würde ich einen User im System anlegen?

Weil ich finde ganz viele dinge über Samba und Ldap oder so aber nichts über Locale Benutzer fürs System!

Kennst du vielleicht einen Link zu einen Howto, der so?
*ganzliebschau*

mkahle
25.10.06, 06:42
wenn es bei Deiner Distri noch nicht dabei ist, solltest Du mal von http://www.padl.com/ nss_ldap und pam_ldap installieren und konfigurieren.