PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : LAPD Server als Adressbuch



I-Master
14.01.04, 20:02
Hoi,

da ich es leid war 2 Adressbücher zu pflegen wollte ich mal nen LAPD Server aufsetzen. Ein frommer Wunsch wie sich herausstellte. Also ich hab verschiedene Anleitungen ausprobiert. Im Prinzip will ich "nur" nen Adressbuch haben wo ich vom Internet aus drauf zugreifen kann. Die USER-Auth fürs linux-System oder Samba interessiert mich nicht.

So. Jetzt hab ich folgende Anleitung zuletzt benutzt:

http://www.linux-tin.org/tin.german/setupguide/server/suse/html/openLDAP.htm

Soweit klappte auch alles ohne Fehlermeldungen. Aber ich hab da nen paar Fragen.

1. Gibt es bei mir kein ldapadd. Ich habe stattdessen slapadd verwendet (liegt wohl an der Version)
2. Ich werde bei ausführen des Kommandos nie nach nem Passwort gefragt.
3. Es klappt natürlich nicht :) Von der o.g. Anleitung habe ich initial und mailaddon.ldif hinzugefügt.
4. Mir ist völlig schleierhaft, wie die Benutzerverwaltung jetzt funktionieren soll. Kann ich mich jetzt per "admin" oder "roland" einloggen oder wie?
5. Wird der lapd gebraucht (also auch die entspr. konfs) oder nur der slapd?

Hier mal meine Konfs:

slapd.conf
-----------------------------------------------------------------------------------
# General Paramters
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/nis.schema
include /etc/openldap/schema/inetorgperson.schema
#
pidfile /var/run/slapd.pid
argsfile /var/run/slapd.args
#
database ldbm
cachesize 1000
dbcachesize 100000
suffix "dc=linux-tin,dc=org"
#
rootdn "cn=Manager,dc=linux-tin,dc=org"
rootpw secret
#
directory /var/lib/ldap
#
index objectClass eq

-----------------------------------------------------------------------------------

groupuser.ldif
-----------------------------------------------------------------------------------
# erzeugen einer Gruppe - Teil 1

dn: cn=users,o=auth_group,dc=linux-tin,dc=org
objectClass: posixGroup
objectClass: top
userPassword: {crypt}x
gidNumber: 100

cn: users
# erzeugen eines Users - Teil 2
dn: uid=roland,o=auth_user, dc=linux-tin,dc=org
uid: roland
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
userPassword: {crypt}58yXIHFcMuj9Y
shadowLastChange: 11660
shadowMax: 99999
shadowWarning: 0
uidNumber: 500
gidNumber: 100
homeDirectory: /home/roland
loginShell: /bin/bash
cn: Huber Roland
-----------------------------------------------------------------------------------

mailaddon.ldif
-----------------------------------------------------------------------------------
dn: uid=roland, o=auth_user, dc=linux-tin, dc=org
uid: roland
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
objectClass: person
objectClass: inetOrgPerson
userPassword: {crypt}821kj217jfo9OIH90
shadowLastChange: 11660
shadowMax: 99999
shadowWarning: 0
uidNumber: 500
gidNumber: 100
homeDirectory: /home/roland
loginShell: /bin/bash
cn: Huber Roland
sn: Roland
mail: roland@linux-tin.org
mobile: +49 (0) 123456789
telephoneNumber: +49 (0) 98 7654 3210
-----------------------------------------------------------------------------------

Lt. nmap läuft der Dienst auch auf dem Def. Port.

Wäre nett, wenn mir einer ne gute Quelle nennen könnte wo ich was nacharbeiten kann, bzw. mir sagt, wie ich nen LAPD Server wirklich _nur_ als simples Adressbuch benutze.

I-Master
14.01.04, 21:50
So. Ich hab mir mal nen Browser rausgesucht. Damit kann ich wenigstens leichter den Fehler finden. Also wenn der Zugriff anonym erfolgt gehts. Hier mal nen Screenshot vom Browser:

http://paderborn.dyndns.info/ldap.jpg

Nur wenn ich das Verzeichniss jetzt in nen Mailprogramm hänge (The Bat!) dann wird der Eintrag nicht im Adressbuch gespeichert.

ramon
11.02.04, 20:27
Hallo,

so ganz habe ich nicht verstanden worum es Dir geht.
Ich bin selbst am basteln. Habe allerdings einen anderen Ansatz:

Unter Debian habe ich auf einem Rechner den slapd installiert.
In die /etc/ldap/ldap.conf habe ich lediglich 2 zeilen eingefügt :

host 127.0.0.1
base dc=addressbook

in die Datei /etc/ldap/slapd.conf habe 3 Paragarphen eingeschrieben :

1.
include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/nis.schema
include
...

2.
suffix "dc=addressbook"
rootdn "cn=master,dc=addressbook"
rootpw Passwort

3.
access to attribute=userPassword
by dn="cn=master,dc=addressbook" write
by anonymous auth
by self write
by * none

Dann habe ich auf der Client-Kiste "phpldapadmin" installiert (Das ist im prinzip nur ein Verzeichnis an der richtigen Stelle), die in die config.php wird dann nur der host, cn=master, dc=addressbook und eingetragen.
Jetzt habe mit dieser PHP- Anwendung einen Eintrg in das Adressbuckverzeichnis gemacht (ou=global) damit war das Globale Adressbuch angelegt.

Jetzt kann ich mit den phpldapadmin entweder direct einträge mache, oder interaktiv eine -ldif Datei importieren.

und das klappt. Ich habe das über den Umweg gemacht, damt ich sehe an welcher Stelle, ldap-server, anmeldung oder import es probleme gibt.

I-Master
12.02.04, 01:26
Also ich habs jetzt mal genauso probiert, das Problem bleibt aber gleich: Kann mich nicht mit "master" und "Passwort" einloggen sondern nur anonym. Wie sieht denn deine config.php aus?

mamue
12.02.04, 09:13
slapadd dient zum einfügen von Einträgen, die Du mit slapcat gesichert hast. Solche Einträge sollten AFAIK komplett, also mit Zeitstempel und allem sein. Nimm also ldapadd bzw. schau mal ob es ein Paket openldap-tools gibt.
slapadd beschreibt direkt die Datenbank und kann nur von root ausgeführt werden.
Wenn die Einträge eingefügt sind, sollte
ldapsearch -x -D <admin-DN-laut-slapd.conf> -w "sein-passwort" objectclass=*
alle Einträge anzeigen.
Geht das nicht, wird auch kein anderes Programm sie finden können, weder lokal noch remote.

mamue

ramon
12.02.04, 20:38
Hallo,

Entscheidend sind die Parameter 4,5 und 8. Alles andere habe ich gelassen wie es war.
(! Achtung, mein LDAP-server ist auf einem anderen Rechner als der Web-Server !)
config.php :
__________________________________________________ __
<?php

/*
* The phpLDAPadmin config file
*
* This is where you customize phpLDAPadmin. The most important
* part is immediately below: The "LDAP Servers" section.
* You must specify at least one LDAP server there. You may add
* as many as you like. You can also specify your language, and
* many other options.
*
*/

// Your LDAP servers
$i=0;
$servers = array();
$servers[$i]['name'] = 'My LDAP Server'; /* A convenient name that will appear in
the tree viewer */
$servers[$i]['host'] = '192.168.100.1'; /* Examples: 'ldap.example.com',
'ldaps://ldap.example.com/'
Note: Leave blank to remove it from the list
of servers in the tree viewer*/
$servers[$i]['base'] = 'dc=addressbook'; /* The base DN of your LDAP server. Leave this
blank to have phpLDAPadmin
auto-detect it for you. */
$servers[$i]['port'] = 389; /* The port your LDAP server listens on
(no quotes) */
$servers[$i]['auth_type'] = 'form'; /* 2 options: 'form': you will be prompted, and
a cookie stored with your login dn and
password. 'config': specify your login dn
and password here. In both cases, use caution! */
$servers[$i]['login_dn'] = 'cn=master,dc=addressbook';
/* For anonymous binds, leave the
login_dn and login_pass blank */
$servers[$i]['login_pass'] = 'secret'; /* Your password (only if you specified 'config'
for 'auth_type' */
$servers[$i]['tls'] = false; /* Use TLS to connect. Requires PHP 4.2 or newer */
$servers[$i]['default_hash'] = 'crypt'; /* Default password hashing algorith;
One of md5, ssha, sha, md5crpyt, smd5, blowfish or
leave blank for now default algorithm. */
$servers[$i]['login_attr'] = 'dn'; /* If you specified 'form' as the auth_type above,
you can optionally specify here an attribute
to use when logging in. If you enter 'uid',
then login as 'dsmith', phpLDAPadmin will
search for uid=dsmith and log in as such. Leave
blank or specify 'dn' to use full DN for
logging in .*/
$servers[$i]['read_only'] = false; /* Specify true If you want phpLDAPadmin to not
display or permit any modification to the
LDAP server. */
$servers[$i]['enable_auto_uid_numbers'] = false;
/* This feature allows phpLDAPadmin to
automatically determine the next
available uidNumber for a new entry. */
$servers[$i]['auto_uid_number_mechanism'] = 'search';
/* The mechanism to use when finding the next available uidNumber.
Two possible values: 'uidpool' or 'search'. The 'uidpool'
mechanism uses an existing uidPool entry in your LDAP server
to blindly lookup the next available uidNumber. The 'search'
mechanism searches for entries with a uidNumber value and finds
the first available uidNumber (slower). */
$servers[$i]['auto_uid_number_search_base'] = 'ou=People,dc=example,dc=com';
/* The DN of the search base when the 'search'
mechanism is used above. */
$servers[$i]['auto_uid_number_min'] = 1000;
/* The minimum number to use when searching for the next
available UID number (only when 'search' is used for
auto_uid_number_mechanism' */
$servers[$i]['auto_uid_number_uid_pool_dn'] = 'cn=uidPool,dc=example,dc=com';
/* The DN of the uidPool entry when 'uidpool'
mechanism is used above. */


// If you want to configure additional LDAP servers, do so below.
$i++;
$servers[$i]['name'] = '192.168.100.1';
$servers[$i]['host'] = '';
$servers[$i]['base'] = 'dc=addressbook';
$servers[$i]['port'] = 389;
$servers[$i]['auth_type'] = 'config';
$servers[$i]['login_dn'] = '';
$servers[$i]['login_pass'] = '';
$servers[$i]['tls'] = false;
$servers[$i]['default_hash'] = 'crypt';
$servers[$i]['login_attr'] = '';
$servers[$i]['read_only'] = false;
$servers[$i]['enable_auto_uid_numbers'] = false;
$servers[$i]['auto_uid_number_mechanism'] = 'search';
$servers[$i]['auto_uid_number_search_base'] = 'ou=users,dc=addressbook';
$servers[$i]['auto_uid_number_min'] = 1000;
$servers[$i]['auto_uid_number_uid_pool_dn'] = 'cn=uidPool,dc=example,dc=com';

// If you want to configure more LDAP servers, copy and paste the above (including the "$i++;")

// The temporary storage directory where we will put jpegPhoto data

usw...

Viel Spass damit.

steam
26.02.04, 18:22
Hi, ich probiere auch jetzt ein Adressbuch einzurichten.
Was mich wirklich interessiert ist die zeile im /etc/openldap/slapd.conf
rootpw secret

Was muss da wirklich stehen ? muss secret bleiben ? muss ein klartextpasswort rein ? oder gercyptet ?
Und wenn ich mich nicht als root sondern als nor,aler user gegen LDAP anmelden will ? was dann ?

Achso, und nochwas :
wenn ich ldap starte, bekomme inch in die messages sowas :
test slapd[2112]: /etc/openldap/slapd.conf: line 54: extra cruft after <dn> in "suffix dc=addressbook" line (ignored)


Auszug aus meiner slapd.conf :



database ldbm
suffix "dc=addressbook" <--die Zeile ist fehlerhaft ??
rootdn "cn=master,dc=addressbook"
rootpw secret




ich habe bis jetzt immernoch keine Klarheit. Wenn ich jetzt mich ueber den phpldapamin anmelde, kommt ein Anmeldefenster . Wa muss ich da eintragen, welche user, welchen passwd ? do definiere ich den user und dazugehoerige passwd ?

Waere echt nett wenn jemand mir es erklaeren konnte

TOG|Darthcrawl
26.02.04, 18:49
LAPD ????
Ist das nicht die ablürzung für "Los Angeles Police Department" :-D

cytrox
26.02.04, 19:21
Original geschrieben von steam
Was mich wirklich interessiert ist die zeile im /etc/openldap/slapd.conf
rootpw secret

Was muss da wirklich stehen ? muss secret bleiben ? muss ein klartextpasswort rein ? oder gercyptet ?
Und wenn ich mich nicht als root sondern als nor,aler user gegen LDAP anmelden will ? was dann ?


Ich würde dir raten, die manpages und die Dokumentation mal anzuschauen, da wird all das, und alles was du sonst noch wissen musst, ausführlich beschrieben.
Aber als Kurzfassung:
rootdn hat nichts mit dem unix-User "root" zu tun. Es ist ein dn, der nicht den ACLs unterworfen ist, wie ansonsten alle dn's im Verzeichnis. Brauchst du normalerweise nur beim Einrichten (und selbst da ist er nicht zwingend notwendig), danach kannst du rootn/rootpw auskommentieren und alle Zugriffe über ACLs reglementieren.
rootpw ist das zu rootdn gehörende Passwort, erzeugt mit slappasswd.

ramon
26.02.04, 22:38
Hallo,

bei mir hats so fuktioniert, wie oben in dem config.php - Auszug -> 'secret'
beim Starten von phpldapadmin ist dann das Eingabefeld leer und ich gebe das Passwort dann ein.
Wenn ich mich als user anmelden will, steht in der Zeile login_dn :
uid=ich,ou=users,dn=addressbook
dann kann ich aber nur auf den Verzeichnissen schreiben, die in der ldap.conf dafür freigegeben sind.

steam
14.05.04, 18:20
So, ich habe alles so gemacht wie in der Anleitung von Ramon, kann mich entlich mit phpldapadmin auf LDAP connecten. Nun kann ich aber keine einträge machen.
Sobald phpldapadmin den eingegebenen Satz schreiben soll , schimpft phpldapadmin so :


Fehler
Konnte das Objekt dem LDAP-Server nicht hinzufügen.

LDAP meldet: No such object
Fehlernummer: 0x20 (LDAP_NO_SUCH_OBJECT)
Beschreibung: That object does not exist.


hier ist meine slapd.conf


include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/nis.schema
include /etc/openldap/schema/corba.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/java.schema
include /etc/openldap/schema/misc.schema
include /etc/openldap/schema/openldap.schema
include /etc/openldap/schema/samba.schema
pidfile /var/run/slapd/slapd.pid
argsfile /var/run/slapd/slapd.args
database ldbm
suffix "dc=adressbook"
rootdn "cn=master,dc=adressbook"
rootpw sag ich nicht
directory /var/lib/ldap
index objectclass eq
access to * by * write


und meine ldap.conf


host 127.0.0.1
BASE dc=adressbook
include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/inetorgperson.schema


soll ich noch ausse die beiden dateien irgendwas beachten ?

Frage an Ramon:

Jetzt habe mit dieser PHP- Anwendung einen Eintrg in das Adressbuckverzeichnis gemacht (ou=global) damit war das Globale Adressbuch angelegt.

wo genau sollte man die ou=global setzen ?

Wäre für jeden Hinweis dankbar.

ramon
14.05.04, 19:27
Hallo,

ich habe an der linken Seite einen Verzeichnisbaum, dort gibt es einen Menüpunkt "* neuen Eintrag erzeugen" dann öffnet sich ein Frame, in dem ich den Punkt "Organizational Unit" angehakt habe. Mit "weiter" öffnet sich ein Fenster mit der Möglichkeit den Namen einzugeben.

Und das wars dann.

Einen Adressbucheintrag mache ich genau auf dem gleichen Weg. Nur daß ich dann in dem Menüpunkt "Adressbuchname" eine "inetOrgPerson" einfüge.