Hallo Liste, ich bastel mal wieder an openldap rum. Dazu verwende ich den Artikel aus dem Linux-Magazin 4/2002 S. 84 ff. Irgendwie habe ich den Eindruck, daß die da mit einem ganz anderem openldap2 arbeiten. Ich verwende die auf dem Suse-FTP-Server verwendete Version 2.0.11-39 (Sourcen). Die Compilierung/Installation hat ganz gut geklappt, hier die entsprechenden Befehle (aus der leicht veränderten openldap2.spec) : ------------------------------------------------------------------ ./configure --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc \ --localstatedir=/var/run --libexecdir=/usr/lib/openldap \ --mandir=%{_mandir} --enable-wrappers \ --enable-modules --with-kerberos --enable-kpasswd \ --with-threads --enable-crypt --disable-cleartext --enable-sldapd \ --enable-ldbm \ --enable-aclgroups --enable-spasswd --enable-dynamic \ --enable-shared --with-tls --with-cyrus-sasl --with-ssl make depend make ------------------------------------------------------------------ Hier meine slapd.conf : ------------------------------------------------------------------ # Siehe Manpage slapd.conf(5) und # http://www.openldap.org/doc/admin/ ### Schemadaten einbinden ### include /etc/openldap/schema/core.schema include /etc/openldap/schema/cosine.schema include /etc/openldap/schema/inetorgperson.schema include /etc/openldap/schema/nis.schema include /etc/openldap/schema/qmail.schema # <<< Fehler ? include /etc/openldap/schema/samba.schema loglevel -1 # mal alles loggen ### SSL-Zertifikat laden ### TLSCertificateFile /etc/openldap/cert/server.pem TLSCertificateKeyFile /etc/openldap/cert/server.pem TLSCACertificateFile /etc/openldap/cert/server.pem ### Falls SASL-Authentifizierung benutzt wird: ### sasl-host 486dx66.hrnet.de sasl-realm HRNET ### Definition f.r die Datenbank ### database ldbm suffix "dc=hrnet,dc=de" # # Der privilegierte Account darf in dieser Datenbank # alles lesen und schreiben. Nicht zu verwechseln mit # dem Sysuser root, der im Verzeichnis eingetragen # ist und dem mit ACL seine Rechte zugewiesen werden rootdn "cn=Root,dc=hrnet,dc=de" rootpw {SSHA}2KzZ4itFIm4Hlz+2zcSBZ8pd+Xn7D6zD #rootpw Geheim # # Das Verzeichnis *muss* existieren, bevor slapd # gestartet wird und sollte nur f.r slapd lesbar sein directory /var/lib/ldap # # Index Definition index objectClass eq ### Definition der Access Control List (ACL) ### # User darf eigene Attribute .ndern, # alle andere sehen nichts access to attr=loginShell by dn="uid=Admin,ou=Sysusers,ou=NSS,dc=hrnet,dc=de" write by self write by * none # # User darf eigene Attribute .ndern, # authentifizierte User lesen # alle andere sehen nichts access to attr=telephoneNumber,seeAlso,description,audio,businessCategory,carLicense,displayName,homePho ne,homePostalAddress,jpegPhoto,labeledURI,mobile,pager,photo,homeTelephoneNumber,favouriteDrink by dn="uid=Admin,ou=Sysusers,ou=NSS,dc=hrnet,dc=de" write by self write by users read by * none # # User darf eigene Attribute .ndern, # alle andere k.nnen lesen access to attr=dc,o,ou,uid,cn,givenName,sn,gecos,initials,title,photo,mail by dn="uid=Admin,ou=Sysusers,ou=NSS,dc=hrnet,dc=de" write by self write by * read # # User darf eigene Passw.rter .ndern. # anonymous auth macht nur f.r userPasswort Sinn, # st.rt sonst aber nicht. # Der Samba Server muss hier schreibrecht haben! access to attr=userPassword,lmPassword,ntPassword by dn="uid=Admin,ou=Sysusers,ou=NSS,dc=hrnet,dc=de" write by self write by anonymous auth by * none # # User darf eigene Attribute lesen, # alle andere sehen nichts access to attr=accountStatus,mailQuota,registeredAddress by dn="uid=Admin,ou=Sysusers,ou=NSS,dc=hrnet,dc=de" write by self read by * none # # Grundregel, damit annonyme User das Verzeichnis # durchsuchen k.nnen access to attr=entry,objectClass by dn="uid=Admin,ou=Sysusers,ou=NSS,dc=hrnet,dc=de" write by * read # # Default Policy: wenn keine der oben angelegten # Regeln zieht, d.rfen authentifizierte User lesen # und alle anderen sehen nichts. access to * by dn="uid=Admin,ou=Sysusers,ou=NSS,dc=hrnet,dc=de" write by users read by * none -------------------------------------------------------------------------- Hier meine ldap.conf: -------------------------------------------------------------------------- # wiedermal die Wurzel f.r die Suchanfragen der Clients base dc=hrnet,dc=de # der LDAP Server, SSL verschluesselt uri ldaps://192.168.1.3/ # die ID, mit der sich die Clients beim Server anmelden binddn ou=nss,dc=hrnet,dc=de # hier ist das Passwort in Klartext bindpw Geheim # wenn ein Client mit rootrechten l.uft, # wird diese ID zur Anmeldung beim Server # verwendet. Das Passwort ist in der separaten # Datei /etc/ldap.secret (mode 600) rootbinddn cn=Admin,dc=hrnet,dc=de # Use the OpenLDAP password change # extended operation to update the password. pam_password exop #nss_base_passwd dc=hrnet,dc=de?sub #nss_base_shadow ou=shadow,dc=hrnet,dc=de?one #nss_base_group ou=group,dc=hrnet,dc=de?one #nss_base_hosts ou=hosts,dc=hrnet,dc=de?one #nss_base_services ou=services,dc=hrnet,dc=de?one #nss_base_networks ou=networks,dc=hrnet,dc=de?one #nss_base_protocols ou=protocols,dc=hrnet,dc=de?one #nss_base_rpc ou=rpc,dc=hrnet,dc=de?one #nss_base_ethers ou=ethers,dc=hrnet,dc=de?one #nss_base_netmasks ou=networks,dc=hrnet,dc=de?ne #nss_base_bootparams ou=ethers,dc=hrnet,dc=de?one #nss_base_aliases ou=aliases,dc=hrnet,dc=de?one #nss_base_netgroup ou=netgroup,dc=hrnet,dc=de?one # OpenLDAP SSL ssl on --------------------------------------------------------------------------- Die beiden Dateien sind analog der Anleitung modifiziert. Mein kleines privates Netz heißt hrnet.de, der Rechner auf dem das läuft 486dx66.hrnet.de. Kernel 2.4.18, Suse 7.1 Ich verwende den ldap-Browser v2.8.2, mit diesem Tool kann man die Verwaltung remote erledigen. Oder besser könnte, denn bisher kann ich mich nur anonym anmelden. Wenn ich mich als Root anmelde passiert folgendes: ---------schnipp------------------------------------- Mar 18 14:09:22 486dx66 slapd[24283]: daemon: read activity on 12 Mar 18 14:09:22 486dx66 slapd[24283]: connection_get(12) Mar 18 14:09:22 486dx66 slapd[24283]: connection_get(12): got connid=0 Mar 18 14:09:22 486dx66 slapd[24283]: connection_read(12): check# Attribute Type Definitions attributetype ( 1.3.6.1.1.1.1.0 NAME 'qmailUID' DESC 'An integer uniquely identifying a user in an administrative domain' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) ing for input on id=0 Mar 18 14:09:22 486dx66 slapd[24283]: ber_get_next on fd 12 failed errno=11 (Resource temporarily unavailable) Mar 18 14:09:22 486dx66 slapd[24289]: do_bind Mar 18 14:09:22 486dx66 slapd[24283]: daemon: select: listen=8 active_threads=1 tvp=NULL Mar 18 14:09:22 486dx66 slapd[24283]: daemon: select: listen=9 active_threads=1 tvp=NULL Mar 18 14:09:22 486dx66 slapd[24289]: bind: invalid dn (Root) Mar 18 14:09:22 486dx66 slapd[24289]: send_ldap_result: conn=0 op=0 p=3 Mar 18 14:09:22 486dx66 slapd[24289]: send_ldap_result: 34::invalid DN Mar 18 14:09:22 486dx66 slapd[24289]: send_ldap_response: msgid=1 tag=97 err=34 Mar 18 14:09:22 486dx66 slapd[24289]: conn=0 op=0 RESULT tag=97 err=34 text=invalid DN Mar 18 14:09:22 486dx66 slapd[24283]: daemon: activity on 1 descriptors Mar 18 14:09:22 486dx66 slapd[24283]: daemon: activity on: ---------schnipp------------------------------------- Welche resource ist den da temporarily unavailable ? Warum ist Root eine invalid dn ? Das gleiche passiert mit Admin: ---------schnipp------------------------------------- Mar 18 14:12:19 486dx66 slapd[24283]: connection_read(12): checking for input on id=2 Mar 18 14:12:19 486dx66 slapd[24289]: do_bind Mar 18 14:12:19 486dx66 slapd[24283]: ber_get_next on fd 12 failed errno=11 (Resource temporarily unavailable) Mar 18 14:12:19 486dx66 slapd[24289]: bind: invalid dn (Admin) Mar 18 14:12:19 486dx66 slapd[24289]: send_ldap_result: conn=2 op=0 p=3 Mar 18 14:12:19 486dx66 slapd[24289]: send_ldap_result: 34::invalid DN ---------schnipp------------------------------------- Für den Testdatensatz des Linux-Magazins benötige ich die qmail.schema. Leider enhält jede qmail.schema die ich bisher aus dem Internet gezogen habe einen Fehler : ---------schnipp------------------------------------- 486dx66:/etc/openldap/schema # /usr/lib/openldap/slapd /etc/openldap/schema/qmail.schema: line 27: Duplicate attributeType: "1.3.6.1.1.1.1.0" ---------schnipp------------------------------------- Hier der entsprechende Teil von qmail.schema ---------schnipp------------------------------------- # Attribute Type Definitions # qmail.schema attributetype ( 1.3.6.1.1.1.1.0 NAME 'qmailUID' DESC 'An integer uniquely identifying a user in an administrative domain' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) # <---- Zeile 27 ---------schnipp------------------------------------- oder , andere qmail.schema ---------schnipp------------------------------------- 486dx66:/etc/openldap/schema # /usr/lib/openldap/slapd SINGLE-VALUE ).4.1.1466.115.121.1.36ne 24: Unexpected token before DESC 'UID of the user on the mailsystem' AttributeTypeDescription = "(" whsp numericoid whsp ; AttributeType identifier [ "NAME" qdescrs ] ; name used in AttributeType [ "DESC" qdstring ] ; description ---------schnipp------------------------------------- Hier der entsprechende Teil von qmail.schema ---------schnipp------------------------------------- # Attribute Type Definitions # qmail.schema attributetype ( 1.3.6.1.4.1.7914.1.2.1.1 NAME 'qmailUID' DESC 'UID of the user on the mailsystem' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.36 SINGLE-VALUE ) ---------schnipp------------------------------------- Was läuft da schief, habt ihr vielleicht eine andere qmail.schema ? Ich starte meinen ldap mit folgender Zeile (in /etc/init.d/ldap ): /sbin/startproc /usr/lib/openldap/slapd "-h ldap://0.0.0.0:389/ ldaps://0.0.0.0:639/" um auch SSL zu haben. Folgendes passiert: ---------schnipp------------------------------------- 486dx66:/etc/openldap/schema # ldapsearch -H ldaps://486dx66.hrnet.de -x -b "" -s base ldap_bind: Can't contact LDAP server ---------schnipp------------------------------------- Andererseits : ---------schnipp------------------------------------- 486dx66:/etc/openldap/schema # ldapsearch -H ldap://486dx66.hrnet.de -x -b "" -s base version: 2 # # filter: (objectclass=*) # requesting: ALL dn: objectClass: top objectClass: OpenLDAProotDSE # search result search: 2 result: 0 Success # numResponses: 2 # numEntries: 1 ---------schnipp------------------------------------- Das sieht doch gut aus, oder ? Den Schlüssel server.pem habe ich korrekt installiert, hat ja auch beim Apachen immer funktioniert. fuser zeigt, das slapd an den ports lauscht. ---------schnipp------------------------------------- 486dx66:/etc/openldap/schema # fuser -n tcp 639 639/tcp: 24434 24435 24436 24464 24465 ---------schnipp------------------------------------- Was geht hier schief ? Also, meine Fragen : Wie kriege ich einen nicht_anonymen connect hin (mit Admin oder Root) ? Alle PW sind inzwischen schon Plain, also ohne Verschlüsselung. Was ist mit den qmail.schema nicht in Ordnung ? Stimmt in dem besagten Artikel im LINUX-Magazin alles oder sind da Druckfehler ? So große Probleme wie mit openldap2 habe ich noch mit keiner Software gehabt und ich schließe da ausnahmsweise auch WINDDOF mit ein. mfg Harry
Harry Rüter wrote:
Hallo Liste,
ich bastel mal wieder an openldap rum.
Dazu verwende ich den Artikel aus dem Linux-Magazin 4/2002 S. 84 ff.
Hallo (Leidens-)Genosse! ;-)
Irgendwie habe ich den Eindruck, daß die da mit einem ganz anderem openldap2 arbeiten.
Nö, ich habe die Beispielkonfiguration vom ftp-Server gezogen und auf einer 7.3 installiert. Geht - mit Einschränkungen: ...
Hier meine slapd.conf :
...
include /etc/openldap/schema/qmail.schema # <<< Fehler ?
Da ich qmail nicht nutze und auf der 7.3 auch kein rpm gefunden habe, habe ich diese Zeile einfach 'raugeschmissen. Entsprechend muß dan aber die Datei basisdaten.ldif angepaßt werden, da sonst beim Import Fehler auftauchen. ...
### SSL-Zertifikat laden ###
TLSCertificateFile /etc/openldap/cert/server.pem TLSCertificateKeyFile /etc/openldap/cert/server.pem TLSCACertificateFile /etc/openldap/cert/server.pem
Jetzt wird es interessant...
### Falls SASL-Authentifizierung benutzt wird: ###
sasl-host 486dx66.hrnet.de sasl-realm HRNET
Habe ich ebenfalls nicht zum Laufen bekommen (SASL-Fehler?), also deaktiviert. ...
Hier meine ldap.conf:
...
# wenn ein Client mit rootrechten l.uft, # wird diese ID zur Anmeldung beim Server # verwendet. Das Passwort ist in der separaten # Datei /etc/ldap.secret (mode 600) rootbinddn cn=Admin,dc=hrnet,dc=de
Hier taucht bei mir ein Problem auf. Existiert /etc/ldap.secret, dann liefern alle Abfragen kein Ergebnis (aber auch keinen Fehler). Lasse ich sie weg, funktionieren alle Abfragen, aber z.B. funktioniert ein # passwd <ldap-user> sondern liefert einen Authorisierungsfehler. BTW: wie hast Du WELCHES Paßwort in /etc/ldap.secret bekommen? ich habe es mit Klartext ("Geheim") und SSHA-Hashwert versucht. Wo steht diese Datei in der Doku beschrieben? ...
# OpenLDAP SSL ssl on
Und hier der große Knackpunkt: SSL funktioniert nicht :-( Es gibt zwar keine (erkennbaren) Fehlermeldungen, aber es geht einfach nicht! Fehler in OpenSSL? ...
Ich verwende den ldap-Browser v2.8.2, mit diesem Tool kann man die Verwaltung remote erledigen. Oder besser könnte, denn bisher kann ich mich nur anonym anmelden.
Ohne SSL und mit den genannten Einschränkungen geht es bei mir ganz gut (nur den WIN$-Client habe ich noch nicht in die Domain bekommen), QG macht genau das, was er soll. ...
Was ist mit den qmail.schema nicht in Ordnung ?
Gute Frage, hierzu liefert der Bericht auch keine Aussage :-(
Stimmt in dem besagten Artikel im LINUX-Magazin alles oder sind da Druckfehler ?
Habe ich auch schon vermutet, aber außer einem "krummen" ldaps-Port (639 statt 636 beim starten von slapd) kann ich nix finden.
So große Probleme wie mit openldap2 habe ich noch mit keiner Software gehabt und ich schließe da ausnahmsweise auch WINDDOF mit ein.
Is ja auch keine Software "für mal eben nebenbei", eher die Kategorie ORACLE ;-) Gruß hebi -- Dirk Hebenstreit Tel : +49-0170-2461522 Eschenweg 3 +49-033200-85997 14558 Bergholz-Rehbruecke Dirk.Hebenstreit@epost.de PingoS - LINUX-User helfen Schulen: http://www.pingos.schulnetz.org
Hi Dirk, hi Liste, Dirk Hebenstreit wrote:
Harry Rüter wrote:
Hallo Liste,
ich bastel mal wieder an openldap rum.
Dazu verwende ich den Artikel aus dem Linux-Magazin 4/2002 S. 84 ff.
Hallo (Leidens-)Genosse! ;-)
Grins ...
Irgendwie habe ich den Eindruck, daß die da mit einem ganz anderem openldap2 arbeiten.
Nö, ich habe die Beispielkonfiguration vom ftp-Server gezogen und auf einer 7.3 installiert. Geht - mit Einschränkungen:
Welche Version von openldap nimmst du denn ? Hast du sie selbst configured/compiliert ?
...
Hier meine slapd.conf :
...
include /etc/openldap/schema/qmail.schema # <<< Fehler ?
Da ich qmail nicht nutze und auf der 7.3 auch kein rpm gefunden habe, habe ich diese Zeile einfach 'raugeschmissen. Entsprechend muß dan aber die Datei basisdaten.ldif angepaßt werden, da sonst beim Import Fehler auftauchen.
Kannst du mir die geänderte ldif-Datei mal als PM schicken ?
...
### SSL-Zertifikat laden ###
TLSCertificateFile /etc/openldap/cert/server.pem TLSCertificateKeyFile /etc/openldap/cert/server.pem TLSCACertificateFile /etc/openldap/cert/server.pem
Jetzt wird es interessant...
AHA !!
### Falls SASL-Authentifizierung benutzt wird: ###
sasl-host 486dx66.hrnet.de sasl-realm HRNET
Funzt auch bei mir noch nicht :-(
Habe ich ebenfalls nicht zum Laufen bekommen (SASL-Fehler?), also deaktiviert.
...
Hier meine ldap.conf:
...
# wenn ein Client mit rootrechten l.uft, # wird diese ID zur Anmeldung beim Server # verwendet. Das Passwort ist in der separaten # Datei /etc/ldap.secret (mode 600) rootbinddn cn=Admin,dc=hrnet,dc=de
Hier taucht bei mir ein Problem auf. Existiert /etc/ldap.secret, dann liefern alle Abfragen kein Ergebnis (aber auch keinen Fehler). Lasse ich sie weg, funktionieren alle Abfragen, aber z.B. funktioniert ein
# passwd <ldap-user>
sondern liefert einen Authorisierungsfehler. BTW: wie hast Du WELCHES Paßwort in /etc/ldap.secret bekommen? ich habe es mit Klartext ("Geheim") und SSHA-Hashwert versucht. Wo steht diese Datei in der Doku beschrieben?
Gute Frage, ich habe ldappasswd verwendet und in der Doku habe ich bisher auch noch nix gefunden.
...
# OpenLDAP SSL ssl on
Und hier der große Knackpunkt: SSL funktioniert nicht :-( Es gibt zwar keine (erkennbaren) Fehlermeldungen, aber es geht einfach nicht! Fehler in OpenSSL?
Meine Probleme sind unabhängig von sssl/nicht-ssl, verwende die neueste Version (glaube 0.96c, muß später mal gucken ).
...
Ich verwende den ldap-Browser v2.8.2, mit diesem Tool kann man die Verwaltung remote erledigen. Oder besser könnte, denn bisher kann ich mich nur anonym anmelden.
Ohne SSL und mit den genannten Einschränkungen geht es bei mir ganz gut (nur den WIN$-Client habe ich noch nicht in die Domain bekommen), QG macht genau das, was er soll.
...
Was ist mit den qmail.schema nicht in Ordnung ?
Gute Frage, hierzu liefert der Bericht auch keine Aussage :-(
Stimmt in dem besagten Artikel im LINUX-Magazin alles oder sind da Druckfehler ?
Habe ich auch schon vermutet, aber außer einem "krummen" ldaps-Port (639 statt 636 beim starten von slapd) kann ich nix finden.
So große Probleme wie mit openldap2 habe ich noch mit keiner Software gehabt und ich schließe da ausnahmsweise auch WINDDOF mit ein.
Is ja auch keine Software "für mal eben nebenbei", eher die Kategorie ORACLE ;-)
Naja, der Apache ist auch nicht trivial, aber wesentlich besser dokumentiert.
Gruß hebi
Gruß Harry
Harry Rüter wrote: ...
Welche Version von openldap nimmst du denn ? Hast du sie selbst configured/compiliert ?
Ich benutze das rpm aus der SuSE 7.3 (v. 2.0.12) ...
Kannst du mir die geänderte ldif-Datei mal als PM schicken ?
Jepp,kommt gleich! ...
### Falls SASL-Authentifizierung benutzt wird: ###
sasl-host 486dx66.hrnet.de sasl-realm HRNET
Funzt auch bei mir noch nicht :-(
Wie passend ;-) ...
sondern liefert einen Authorisierungsfehler. BTW: wie hast Du WELCHES Paßwort in /etc/ldap.secret bekommen? ich habe es mit Klartext ("Geheim") und SSHA-Hashwert versucht. Wo steht diese Datei in der Doku beschrieben?
Gute Frage, ich habe ldappasswd verwendet und in der Doku habe ich bisher auch noch nix gefunden.
Gut, also wie bei mir - stochern im Nebel... ...
Meine Probleme sind unabhängig von sssl/nicht-ssl, verwende die neueste Version (glaube 0.96c, muß später mal gucken ).
Hmm, ich habe hier 0.9.6b (wieder SuSE-rpm) ...
Is ja auch keine Software "für mal eben nebenbei", eher die Kategorie ORACLE ;-)
Naja, der Apache ist auch nicht trivial, aber wesentlich besser dokumentiert.
Tja, Du hast ja noch den Quellcode... ;-) *SCNR* Gruß hebi -- Dirk Hebenstreit Tel : +49-0170-2461522 Eschenweg 3 +49-033200-85997 14558 Bergholz-Rehbruecke Dirk.Hebenstreit@epost.de PingoS - LINUX-User helfen Schulen: http://www.pingos.schulnetz.org
Hi, Dirk Hebenstreit wrote: (gekürzt um das, was ich vorhr bereits beantwortet hatte)
Hier taucht bei mir ein Problem auf. Existiert /etc/ldap.secret, dann liefern alle Abfragen kein Ergebnis (aber auch keinen Fehler). Lasse ich sie weg, funktionieren alle Abfragen, aber z.B. funktioniert ein
# passwd <ldap-user>
sondern liefert einen Authorisierungsfehler. BTW: wie hast Du WELCHES Paßwort in /etc/ldap.secret bekommen? ich habe es mit Klartext ("Geheim") und SSHA-Hashwert versucht. Wo steht diese Datei in der Doku beschrieben?
Steht in der README-Datei von nss_ldap-184. Soll abschließendes newline enthalten.
Habe ich auch schon vermutet, aber außer einem "krummen" ldaps-Port (639 statt 636 beim starten von slapd) kann ich nix finden.
Oh, das ist mir entgangen. Mit port 636 klappt jetzt auch das mit ldaps:// .. mfg Harry
participants (2)
-
Dirk Hebenstreit
-
Harry Rüter