OpenLDAP Konfiguration mit cn=config DB-Backend
Hallo LDAP Spezies, hallo Dieter, mittlerweile habe ich nun herausgefunden, das unter Ubuntu 9.10 das cn=config DB-Backend benutzt wird. Das hat mich leider einige Tage Arbeit gekostet, zu verstehen in welche Richtung das Ganze geht. Nun weiß ich zwar was benutzt wird, aber noch nicht so richtig wie ich damit umgehen soll. _Ein Beispiel:_ Ich habe jetzt ein LDAP Verzeichnis mit Usern und Gruppen aufgesetzt, mir also eine Struktur überlegt. Nun scheitere ich aber im Moment daran, das ich nicht genau weiß wie ich mit den Rechten und der Rechtevergabe im LDAP umgehen soll. Nun, was ich gern möchte: 1. verstehen wie ich die Rechte korrekt mit den ACL's einstellen kann 2. kann ich Rechte in Subbäumen vererben? 3. es gibt zwar jede Menge Tutorials im Internet, aber ich tue mich einfach schwer damit, wenn diese schon komplettes Fachwissen bezüglich LDAP voraussetzen, und zudem noch in Englisch sind (nicht das ich kein Englisch könnte, aber es ist schon schwerer als mit einer deutschen Doku). Gibt es einfach ein gutes deutsches Tutorial, welches auch die Eigenheiten des cn=config DB-Backends behandelt? 4. Könnt Ihr mir evtl. ein Beispiel zeigen wie ich a) die aktuelle Rechtevergabe aus dem LDAP auslesen kann und b) wie ich die Rechtevergabe korrekt steuern kann. 5. wie ist dafür der richtige Weg? Über einen Import einer LDIF-Datei? 6. Ich möchte außerdem einige Bind-User anlegen, je nach Verwendungszweck einen eigenen. Am besten die Bind-User anlegen und wenn diese zu einer dedizierten Gruppe gehören, dann besitzen diese die Bind-Rechte und entsprechend alle notwendigen Leserechte (reicht das?) auf die Objekte. 7. Zusätzlich möchte ich User im LDAP anlegen, die wenn Sie einer Admin-Gruppe angehören automatisch auch die Admin-Rechte auf das gesamte LDAP-Verzeichnis bekommen. Ich würde mich freuen, wenn Ihr mich mal in die richtige Richtung schubsen könntet und vielleicht auch ein paar einfache Beispiele geben könntet. Mir ist auch nicht ganz klar, ob nun alle meine Ideen gut und richtig sind und sich so umsetzen lassen. Auch für Tipps in diese Richtung wäre ich sehr dankbar. In diesem Sinne einen schönen Abend noch. -- Gruß Axel ------------------------------ => einen Server härten? google mal nach Stahl härten oder was meinst Du mit härten? Aus: http://www.administrator.de/index.php?content=69906 ------------------------------ http://www.tty1.net/smart-questions_de.html -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am 10.05.2010 22:17, schrieb Axel Birndt:
Hallo LDAP Spezies, hallo Dieter,
mittlerweile habe ich nun herausgefunden, das unter Ubuntu 9.10 das cn=config DB-Backend benutzt wird. Das hat mich leider einige Tage Arbeit gekostet, zu verstehen in welche Richtung das Ganze geht.
Nun weiß ich zwar was benutzt wird, aber noch nicht so richtig wie ich damit umgehen soll.
Hilft http://www.ldap-account-manager.org/ weiter? Gibt es auch bei packman. Ansonsten http://www.amazon.de/OpenLDAP-2-4-Schemata-Services-Kerberos/dp/383621198X/ref=sr_1_1?ie=UTF8&s=books&qid=1273556277&sr=8-1 http://www.amazon.de/LDAP-verstehen-OpenLDAP-einsetzen-Praxiseinsatz/dp/3898642631/ref=sr_1_3?ie=UTF8&s=books&qid=1273556277&sr=8-3 Gruß Ralf Prengel Manager Customer Care Comline AG Hauert 8 D-44227 Dortmund/Germany Fon +49 231 97575 904 Fax +49 231 97575 257 Mobil +49 151 10831 157 EMail Ralf.Prengel@comline.de www.comline.de Vorstand Stephan Schilling, Erwin Leonhardi Aufsichtsrat Dr. Franz Schoser (Vorsitzender) HR Dortmund B 14570 USt.-ID-Nr. DE 124727422 Für die Erstellung unserer Dokumente benutzen wir die Produkte aus dem Microsoft Office 2007 Paket. Sollte sich ein Anhang in der Mail befinden, der mit einer älteren Office Version nicht geöffnet werden kann, installieren Sie bitte das Compatibility Pack für Office 2007. http://www.microsoft.com/downloads/details.aspx?FamilyID=941b3470-3ae9-4aee-8f43-c6bb74cd1466&DisplayLang=de -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Moin Ralf, prengel schrieb:
Am 10.05.2010 22:17, schrieb Axel Birndt:
Hallo LDAP Spezies, hallo Dieter,
mittlerweile habe ich nun herausgefunden, das unter Ubuntu 9.10 das cn=config DB-Backend benutzt wird. Das hat mich leider einige Tage Arbeit gekostet, zu verstehen in welche Richtung das Ganze geht.
Nun weiß ich zwar was benutzt wird, aber noch nicht so richtig wie ich damit umgehen soll.
Hilft http://www.ldap-account-manager.org/ weiter?
Naja, wie ich ja geschrieben habe wird hier bei mir das etwas modernere DB-Backend benutzt. Es schreibt die Files in ein Verzeichnis und es gibt keine slapd.conf mehr. Eine Managersoftware um Einträge anzulegen brauch ich eigentlich nicht. Der Account Manager kann doch auch keine ACL's bearbeiten, wenn ich die Webseite richtig verstanden habe??
Danke, die Bücher guck ich mir mal an. Das zweite müsste ja auch das Buch von Dieter sein. -- Gruß Axel ------------------------------ => einen Server härten? google mal nach Stahl härten oder was meinst Du mit härten? Aus: http://www.administrator.de/index.php?content=69906 ------------------------------ http://www.tty1.net/smart-questions_de.html -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo Axel,
Axel Birndt
Hallo LDAP Spezies, hallo Dieter,
mittlerweile habe ich nun herausgefunden, das unter Ubuntu 9.10 das cn=config DB-Backend benutzt wird. Das hat mich leider einige Tage Arbeit gekostet, zu verstehen in welche Richtung das Ganze geht.
Nun weiß ich zwar was benutzt wird, aber noch nicht so richtig wie ich damit umgehen soll.
_Ein Beispiel:_
Ich habe jetzt ein LDAP Verzeichnis mit Usern und Gruppen aufgesetzt, mir also eine Struktur überlegt.
Nun scheitere ich aber im Moment daran, das ich nicht genau weiß wie ich mit den Rechten und der Rechtevergabe im LDAP umgehen soll.
Hierzu als erste Anlaufstelle man slapd.access(5), wenn du Geld ausgeben möchtest, siehe Signatur :-) da wird einiges zu Access Control beschrieben.
Nun, was ich gern möchte:
1. verstehen wie ich die Rechte korrekt mit den ACL's einstellen kann 2. kann ich Rechte in Subbäumen vererben?
Ja, access to dn.subtree...
3. es gibt zwar jede Menge Tutorials im Internet, aber ich tue mich einfach schwer damit, wenn diese schon komplettes Fachwissen bezüglich LDAP voraussetzen, und zudem noch in Englisch sind (nicht das ich kein Englisch könnte, aber es ist schon schwerer als mit einer deutschen Doku). Gibt es einfach ein gutes deutsches Tutorial, welches auch die Eigenheiten des cn=config DB-Backends behandelt?
Für cn=config gibt es noch kein Tutorial, mein Rat, verwende web2ldap als Tool zur Administration, für cn=config werden Templates bereitgestellt.
4. Könnt Ihr mir evtl. ein Beispiel zeigen wie ich a) die aktuelle Rechtevergabe aus dem LDAP auslesen kann und b) wie ich die Rechtevergabe korrekt steuern kann.
ldapsearch -D cn=config -W -b olcDatabase={1}bdb,cn=config -s base olcAccess -H ldap://localhost
5. wie ist dafür der richtige Weg? Über einen Import einer LDIF-Datei?
Nein, mit ldapmodify oder einem Tool wie ldapvi oder web2ldap
6. Ich möchte außerdem einige Bind-User anlegen, je nach Verwendungszweck einen eigenen. Am besten die Bind-User anlegen und wenn diese zu einer dedizierten Gruppe gehören, dann besitzen diese die Bind-Rechte und entsprechend alle notwendigen Leserechte (reicht das?) auf die Objekte.
Wo ist hier das Problem?
7. Zusätzlich möchte ich User im LDAP anlegen, die wenn Sie einer Admin-Gruppe angehören automatisch auch die Admin-Rechte auf das gesamte LDAP-Verzeichnis bekommen.
Lege eine Gruppe cn=administrators,dc=example,dc=com an und füge dieser Gruppe die DNs der User hinzu z.B. dn: cn=administrators,dc=example,dc=com objectclass: groupOfNames member: cn=Peter Meier,ou=users,dc=example,dc=com member: cn=Franz Müller,ou=users,dc=example,dc=com Adminrechte müssen durch Access-Regeln erteilt werden, nur rootDN darf alles, dies kann aber keine Gruppe sein. z.B. olcAccess: to dn.subtree=dc=example,dc=com by group/groupOfNames/member.exact="cn=administrators,dc=example,dc=com write [...] -Dieter -- Dieter Klünter | Systemberatung sip: +49.40.20932173 http://www.dpunkt.de/buecher/2104.html GPG Key ID:8EF7B6C6 -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo Dieter, Dieter Kluenter schrieb:
Hallo Axel,
Axel Birndt
writes: Hallo LDAP Spezies, hallo Dieter,
mittlerweile habe ich nun herausgefunden, das unter Ubuntu 9.10 das cn=config DB-Backend benutzt wird. Das hat mich leider einige Tage Arbeit gekostet, zu verstehen in welche Richtung das Ganze geht. ... Nun scheitere ich aber im Moment daran, das ich nicht genau weiß wie ich mit den Rechten und der Rechtevergabe im LDAP umgehen soll.
Hierzu als erste Anlaufstelle man slapd.access(5), wenn du Geld ausgeben möchtest, siehe Signatur :-) da wird einiges zu Access Control beschrieben. Ich werde mir die manpage dazu mal ansehen. Danke für den Tipp. Sorry wenn ich Deine Zeit über Gebühr beanspruche, aber zum Mechanismus wie man mit dem unter Ubuntu verwendeten DB-Backend die Rechte einstellt lese ich immer wieder nur es mit ldif-Dateien zu tun. Bei Google und auch sonst findet man zu fast 95% Infos wie es mit der slapd.conf einzustellen ist. Das ist ja auch recht einfach. Nun wollte ich aber ungern meinen LDAP-Server auf die slapd.conf umstellen. Wenn ich das richtig verstanden habe ist das der veraltete Mechanismus, der zwar durchaus benutzt wird, aber eben eine ältere Config-Möglichkeit ist.
Nun, was ich gern möchte:
1. verstehen wie ich die Rechte korrekt mit den ACL's einstellen kann 2. kann ich Rechte in Subbäumen vererben?
Ja, access to dn.subtree... Könntest Du mir evtl 1 oder 2 Beispiele geben, wie ich es mit dem o.g. DB-Backend korrekt einstelle?
3. es gibt zwar jede Menge Tutorials im Internet, aber ich tue mich einfach schwer damit, wenn diese schon komplettes Fachwissen bezüglich LDAP voraussetzen, und zudem noch in Englisch sind (nicht das ich kein Englisch könnte, aber es ist schon schwerer als mit einer deutschen Doku). Gibt es einfach ein gutes deutsches Tutorial, welches auch die Eigenheiten des cn=config DB-Backends behandelt?
Für cn=config gibt es noch kein Tutorial, mein Rat, verwende web2ldap als Tool zur Administration, für cn=config werden Templates bereitgestellt. Ich werde mir web2ldap auf jeden Fall ansehen und wenn ich damit die ACL's einstellen kann bin ich ja auch schon zufrieden... ;-)
4. Könnt Ihr mir evtl. ein Beispiel zeigen wie ich a) die aktuelle Rechtevergabe aus dem LDAP auslesen kann und b) wie ich die Rechtevergabe korrekt steuern kann.
ldapsearch -D cn=config -W -b olcDatabase={1}bdb,cn=config -s base olcAccess -H ldap://localhost
Danke, das Beispiel muß ich mir mal gaaanz in Ruhe anschauen.
5. wie ist dafür der richtige Weg? Über einen Import einer LDIF-Datei?
Nein, mit ldapmodify oder einem Tool wie ldapvi oder web2ldap
ok, das habe ich mir fast gedacht, das das mit der ldif-Datei irgendwie komisch ist... Die Tools gucke ich mir mal an. Jetzt habe ich wenigstens einen Anhaltspunkt, welches die richtigen Tools sind und kann entsprechend nach Beispielen dafür suchen.
6. Ich möchte außerdem einige Bind-User anlegen, je nach Verwendungszweck einen eigenen. Am besten die Bind-User anlegen und wenn diese zu einer dedizierten Gruppe gehören,
Wo ist hier das Problem?
Das Problem ist hier im Prinzip begründet. Meine Frage bezog sich darauf welche Rechte ein Bind-User minimal haben muß. Schließlich möchte ich ja nicht das der Bind-User irgendwas kaputt machen kann. Er soll nur seine Aufgabe erfüllen und nicht mehr aber auch nicht weniger. Da ich erst mit LDAP anfange....naja, deshalb stelle ich so blöde Fragen.
7. Zusätzlich möchte ich User im LDAP anlegen, die wenn Sie einer Admin-Gruppe angehören automatisch auch die Admin-Rechte auf das gesamte LDAP-Verzeichnis bekommen.
Lege eine Gruppe cn=administrators,dc=example,dc=com an und füge dieser Gruppe die DNs der User hinzu z.B.
dn: cn=administrators,dc=example,dc=com objectclass: groupOfNames member: cn=Peter Meier,ou=users,dc=example,dc=com member: cn=Franz Müller,ou=users,dc=example,dc=com
Adminrechte müssen durch Access-Regeln erteilt werden, nur rootDN darf alles, dies kann aber keine Gruppe sein.
Das heißt ich kann nur einem dedizierten User "Adminrechte" vergeben??
z.B. olcAccess: to dn.subtree=dc=example,dc=com by group/groupOfNames/member.exact="cn=administrators,dc=example,dc=com write
ok, das ist ein Beispiel für eine Rechtevergabe, wie würde ich das ins LDAP kriegen? Mit ldapmodify? Könntest Du mir das vielleicht als kleines Beispiel geben? Naja, ich geb zu ich bin hier noch blutiger Anfänger, aber ich will mir auch nicht durch unvorsichtiges "rumklickern" meinen frisch aufgesetzten LDAP zerschießen... -- Gruß Axel ------------------------------ => einen Server härten? google mal nach Stahl härten oder was meinst Du mit härten? Aus: http://www.administrator.de/index.php?content=69906 ------------------------------ http://www.tty1.net/smart-questions_de.html -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo Axel,
Axel Birndt
Hallo Dieter,
Dieter Kluenter schrieb:
Hallo Axel, Axel Birndt
writes: Hallo LDAP Spezies, hallo Dieter,
mittlerweile habe ich nun herausgefunden, das unter Ubuntu 9.10 das cn=config DB-Backend benutzt wird. Das hat mich leider einige Tage Arbeit gekostet, zu verstehen in welche Richtung das Ganze geht. ... Nun scheitere ich aber im Moment daran, das ich nicht genau weiß wie ich mit den Rechten und der Rechtevergabe im LDAP umgehen soll. Hierzu als erste Anlaufstelle man slapd.access(5), wenn du Geld ausgeben möchtest, siehe Signatur :-) da wird einiges zu Access Control beschrieben. Ich werde mir die manpage dazu mal ansehen. Danke für den Tipp. Sorry wenn ich Deine Zeit über Gebühr beanspruche, aber zum Mechanismus wie man mit dem unter Ubuntu verwendeten DB-Backend die Rechte einstellt lese ich immer wieder nur es mit ldif-Dateien zu tun. Bei Google und auch sonst findet man zu fast 95% Infos wie es mit der slapd.conf einzustellen ist. Das ist ja auch recht einfach. Nun wollte ich aber ungern meinen LDAP-Server auf die slapd.conf umstellen. Wenn ich das richtig verstanden habe ist das der veraltete Mechanismus, der zwar durchaus benutzt wird, aber eben eine ältere Config-Möglichkeit ist.
Ich muss gestehen, aber bitte nicht weitersagen, eine Erstinstallation erstelle ich auch noch mit einer slapd.conf mit einer Basiskonfiguration, wie z.B. Module,Overlays, Backends usw. dann führe ich einen Funktionstest mittels slaptest(8) durch und dann starte ich slapd manuell mit ./slapd -d256 -h ldap:/// -F /etc/openldap/slapd.d -f /etc/openldap/slapd.conf -u ldap -g ldap Das cn=config Backend wird dadurch entsprechend der slapd.conf Parameter erstellt, anschließend kann man Änderungen an der Konfiguration mittels cn=config durchführen.
6. Ich möchte außerdem einige Bind-User anlegen, je nach Verwendungszweck einen eigenen. Am besten die Bind-User anlegen und wenn diese zu einer dedizierten Gruppe gehören, Wo ist hier das Problem? Das Problem ist hier im Prinzip begründet. Meine Frage bezog sich darauf welche Rechte ein Bind-User minimal haben muß. Schließlich möchte ich ja nicht das der Bind-User irgendwas kaputt machen kann. Er soll nur seine Aufgabe erfüllen und nicht mehr aber auch nicht weniger. Da ich erst mit LDAP anfange....naja, deshalb stelle ich so blöde Fragen.
Das ist relativ einfach zu bewerkstelligen, wobei sich zwei unterschiedliche Ansätze anbieten. Einerseits Reguläre Ausdrücke, andererseits Sets. Prinzipiell können Access Regeln bis auf Attribut und Wert hinunter definiert werden, sieh dir mal http://www.openldap.org/faq/data/cache/189.html an.
7. Zusätzlich möchte ich User im LDAP anlegen, die wenn Sie einer Admin-Gruppe angehören automatisch auch die Admin-Rechte auf das gesamte LDAP-Verzeichnis bekommen. Lege eine Gruppe cn=administrators,dc=example,dc=com an und füge dieser Gruppe die DNs der User hinzu z.B. dn: cn=administrators,dc=example,dc=com objectclass: groupOfNames member: cn=Peter Meier,ou=users,dc=example,dc=com member: cn=Franz Müller,ou=users,dc=example,dc=com Adminrechte müssen durch Access-Regeln erteilt werden, nur rootDN darf alles, dies kann aber keine Gruppe sein. Das heißt ich kann nur einem dedizierten User "Adminrechte" vergeben??
Jein, du definierst in der Konfiguration rootdn, rootdn ist zuständig für die internen Operationen der Database, die Administration wird von dedizierten Administratoren vorgenommen, die Funktionen der Administratoren können durch Access-Regeln gesteuert werden. In Beispielen wird häufig rootdn für administrative Aufgaben herangezogen, das ist leichter, da rootdn per Definition alles darf, aber eigentlich ist dies nicht die Funktion von rootdn.
z.B. olcAccess: to dn.subtree=dc=example,dc=com by group/groupOfNames/member.exact="cn=administrators,dc=example,dc=com write ok, das ist ein Beispiel für eine Rechtevergabe, wie würde ich das ins LDAP kriegen? Mit ldapmodify? Könntest Du mir das vielleicht als kleines Beispiel geben?
Diese Zeile ist ein funktionierendes Beispiel, mit ldapmodify sieht das wie folgt aus: ldapmodify -H ldap://localhost -D cn=config -W dn: cn=olcDatabase={1}bdb,cn=config changetype: modify add: olcAccess olcAccess: to dn=subtree=dc=example,dc=com by group/groupOfNames/member.exact=cn=administrators,dc=example,dc=com write ab olcAccess: sollte dies alles in einer Zeile stehen, geht aber nicht, daher beachte den Space zu Anfang einer Zeile, siehe hierzu auch 'line folding'.
Naja, ich geb zu ich bin hier noch blutiger Anfänger, aber ich will mir auch nicht durch unvorsichtiges "rumklickern" meinen frisch aufgesetzten LDAP zerschießen...
Zerschießen macht ja nichts, du kannst ja relativ schnell einen neuen Server aufsetzen, dauert maximal 2 Minuten. -Dieter -- Dieter Klünter | Systemberatung sip: +49.40.20932173 http://www.dpunkt.de/buecher/2104.html GPG Key ID:8EF7B6C6 -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
participants (3)
-
Axel Birndt
-
Dieter Kluenter
-
prengel