Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
centos:ldap:install [28.10.2011 15:07. ] – [logrotate] djangocentos:ldap:install [20.04.2018 10:49. ] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 1: Zeile 1:
 +====== OpenLDAP Server unter CentOS 6.x installieren und einrichten ======
 +{{:centos:ldap-logo.png?nolink&167 |OpenLDAP Logo}}
 +
 +Zur zentralen Nutzerdatenverwaltung  und -pflege bedienen wir uns eines LDAP-Verzeichnisdienstes, genauer gesagt dem [[http://www.openldap.org/|OpenLDAP]]. 
 +
 +LDAP ist ein Netzwerkprotokoll, dient zur Bereitstellung von Verzeichnisdiensten und vermittelt dabei die Kommunikation zwischen dem LDAP-Clients mit dem Directory Server.
 +
 +===== Installation =====
 +==== OpenLDAP - Server ====
 +Die Installation unseres OpenLDAP-Servers gestaltet sich recht einfach, das das notwendige Programmpaket **openldap-servers** als RPM aus dem Base-Repository unserer CentOS-Installation zur Verfügung gestellt wird. Die Installation selbst erfolgt mit dem Paketverwaltungs-Utility yum von CentOS 6. 
 +   # yum install openldap-servers -y
 +Neben dem Server-Part **openldap-server** werden noch zwei Pakete welches zur Laufzeit des Servers benötigt werden installiert. Was uns die einzelnen Programmpakete mitbringen, erkunden wir bei Bedarf mit der Option **//qil//** beim Programm **rpm**. 
 +=== openldap-servers ===
 +   # rpm -qil openldap-servers
 +<code>Name        : openldap-servers             Relocations: (not relocatable)
 +Version     : 2.4.19                            Vendor: CentOS
 +Release     : 15.el6_0.2                    Build Date: Sat 25 Jun 2011 12:30:55 PM CEST
 +Install Date: Wed 26 Oct 2011 12:52:08 PM CEST      Build Host: c6b6.bsys.dev.centos.org
 +Group       : System Environment/Daemons    Source RPM: openldap-2.4.19-15.el6_0.2.src.rpm
 +Size        : 6402916                          License: OpenLDAP and (Sleepycat and BSD)
 +Signature   : RSA/8, Wed 06 Jul 2011 03:42:04 AM CEST, Key ID 0946fca2c105b9de
 +Packager    : CentOS BuildSystem <http://bugs.centos.org>
 +URL         : http://www.openldap.org/
 +Summary     : LDAP server
 +Description :
 +OpenLDAP is an open-source suite of LDAP (Lightweight Directory Access
 +Protocol) applications and development tools. LDAP is a set of
 +protocols for accessing directory services (usually phone book style
 +information, but other information is possible) over the Internet,
 +similar to the way DNS (Domain Name System) information is propagated
 +over the Internet. This package contains the slapd server and related files.
 +/etc/openldap/schema/collective.schema
 +/etc/openldap/schema/corba.schema
 +/etc/openldap/schema/core.ldif
 +/etc/openldap/schema/core.schema
 +/etc/openldap/schema/cosine.ldif
 +/etc/openldap/schema/cosine.schema
 +/etc/openldap/schema/duaconf.schema
 +/etc/openldap/schema/dyngroup.schema
 +/etc/openldap/schema/inetorgperson.ldif
 +/etc/openldap/schema/inetorgperson.schema
 +/etc/openldap/schema/java.schema
 +/etc/openldap/schema/misc.schema
 +/etc/openldap/schema/nis.ldif
 +/etc/openldap/schema/nis.schema
 +/etc/openldap/schema/openldap.ldif
 +/etc/openldap/schema/openldap.schema
 +/etc/openldap/schema/pmi.schema
 +/etc/openldap/schema/ppolicy.schema
 +/etc/openldap/schema/redhat
 +/etc/openldap/schema/redhat/autofs.schema
 +/etc/openldap/slapd.conf
 +/etc/openldap/slapd.conf.bak
 +/etc/openldap/slapd.d
 +/etc/pki/tls/certs/slapd.pem
 +/etc/rc.d/init.d/slapd
 +/etc/sysconfig/ldap
 +/usr/lib64/libslapd_db-4.8.so
 +/usr/lib64/openldap
 +/usr/lib64/openldap/accesslog-2.4.so.2
 +/usr/lib64/openldap/accesslog-2.4.so.2.5.2
 +/usr/lib64/openldap/accesslog.la
 +/usr/lib64/openldap/auditlog-2.4.so.2
 +/usr/lib64/openldap/auditlog-2.4.so.2.5.2
 +/usr/lib64/openldap/auditlog.la
 +/usr/lib64/openldap/collect-2.4.so.2
 +/usr/lib64/openldap/collect-2.4.so.2.5.2
 +/usr/lib64/openldap/collect.la
 +/usr/lib64/openldap/constraint-2.4.so.2
 +/usr/lib64/openldap/constraint-2.4.so.2.5.2
 +/usr/lib64/openldap/constraint.la
 +/usr/lib64/openldap/dds-2.4.so.2
 +/usr/lib64/openldap/dds-2.4.so.2.5.2
 +/usr/lib64/openldap/dds.la
 +/usr/lib64/openldap/deref-2.4.so.2
 +/usr/lib64/openldap/deref-2.4.so.2.5.2
 +/usr/lib64/openldap/deref.la
 +/usr/lib64/openldap/dyngroup-2.4.so.2
 +/usr/lib64/openldap/dyngroup-2.4.so.2.5.2
 +/usr/lib64/openldap/dyngroup.la
 +/usr/lib64/openldap/dynlist-2.4.so.2
 +/usr/lib64/openldap/dynlist-2.4.so.2.5.2
 +/usr/lib64/openldap/dynlist.la
 +/usr/lib64/openldap/memberof-2.4.so.2
 +/usr/lib64/openldap/memberof-2.4.so.2.5.2
 +/usr/lib64/openldap/memberof.la
 +/usr/lib64/openldap/pcache-2.4.so.2
 +/usr/lib64/openldap/pcache-2.4.so.2.5.2
 +/usr/lib64/openldap/pcache.la
 +/usr/lib64/openldap/ppolicy-2.4.so.2
 +/usr/lib64/openldap/ppolicy-2.4.so.2.5.2
 +/usr/lib64/openldap/ppolicy.la
 +/usr/lib64/openldap/refint-2.4.so.2
 +/usr/lib64/openldap/refint-2.4.so.2.5.2
 +/usr/lib64/openldap/refint.la
 +/usr/lib64/openldap/retcode-2.4.so.2
 +/usr/lib64/openldap/retcode-2.4.so.2.5.2
 +/usr/lib64/openldap/retcode.la
 +/usr/lib64/openldap/rwm-2.4.so.2
 +/usr/lib64/openldap/rwm-2.4.so.2.5.2
 +/usr/lib64/openldap/rwm.la
 +/usr/lib64/openldap/seqmod-2.4.so.2
 +/usr/lib64/openldap/seqmod-2.4.so.2.5.2
 +/usr/lib64/openldap/seqmod.la
 +/usr/lib64/openldap/smbk5pwd-2.4.so.2
 +/usr/lib64/openldap/smbk5pwd-2.4.so.2.5.2
 +/usr/lib64/openldap/smbk5pwd.la
 +/usr/lib64/openldap/sssvlv-2.4.so.2
 +/usr/lib64/openldap/sssvlv-2.4.so.2.5.2
 +/usr/lib64/openldap/sssvlv.la
 +/usr/lib64/openldap/syncprov-2.4.so.2
 +/usr/lib64/openldap/syncprov-2.4.so.2.5.2
 +/usr/lib64/openldap/syncprov.la
 +/usr/lib64/openldap/translucent-2.4.so.2
 +/usr/lib64/openldap/translucent-2.4.so.2.5.2
 +/usr/lib64/openldap/translucent.la
 +/usr/lib64/openldap/unique-2.4.so.2
 +/usr/lib64/openldap/unique-2.4.so.2.5.2
 +/usr/lib64/openldap/unique.la
 +/usr/lib64/openldap/valsort-2.4.so.2
 +/usr/lib64/openldap/valsort-2.4.so.2.5.2
 +/usr/lib64/openldap/valsort.la
 +/usr/sbin/slapacl
 +/usr/sbin/slapadd
 +/usr/sbin/slapauth
 +/usr/sbin/slapcat
 +/usr/sbin/slapd
 +/usr/sbin/slapd_db_archive
 +/usr/sbin/slapd_db_checkpoint
 +/usr/sbin/slapd_db_deadlock
 +/usr/sbin/slapd_db_dump
 +/usr/sbin/slapd_db_hotbackup
 +/usr/sbin/slapd_db_load
 +/usr/sbin/slapd_db_printlog
 +/usr/sbin/slapd_db_recover
 +/usr/sbin/slapd_db_sql
 +/usr/sbin/slapd_db_stat
 +/usr/sbin/slapd_db_upgrade
 +/usr/sbin/slapd_db_verify
 +/usr/sbin/slapdn
 +/usr/sbin/slapindex
 +/usr/sbin/slappasswd
 +/usr/sbin/slapschema
 +/usr/sbin/slaptest
 +/usr/share/doc/openldap-servers-2.4.19
 +/usr/share/doc/openldap-servers-2.4.19/DB_CONFIG.example
 +/usr/share/doc/openldap-servers-2.4.19/LICENSE.bdb-backend
 +/usr/share/doc/openldap-servers-2.4.19/README.migration
 +/usr/share/doc/openldap-servers-2.4.19/README.schema
 +/usr/share/doc/openldap-servers-2.4.19/README.smbk5pwd
 +/usr/share/doc/openldap-servers-2.4.19/README.upgrading
 +/usr/share/doc/openldap-servers-2.4.19/allmail-en.png
 +/usr/share/doc/openldap-servers-2.4.19/allusersgroup-en.png
 +/usr/share/doc/openldap-servers-2.4.19/config_dit.png
 +/usr/share/doc/openldap-servers-2.4.19/config_local.png
 +/usr/share/doc/openldap-servers-2.4.19/config_ref.png
 +/usr/share/doc/openldap-servers-2.4.19/config_repl.png
 +/usr/share/doc/openldap-servers-2.4.19/delta-syncrepl.png
 +/usr/share/doc/openldap-servers-2.4.19/dual_dc.png
 +/usr/share/doc/openldap-servers-2.4.19/guide.html
 +/usr/share/doc/openldap-servers-2.4.19/intro_dctree.png
 +/usr/share/doc/openldap-servers-2.4.19/intro_tree.png
 +/usr/share/doc/openldap-servers-2.4.19/ldap-sync-refreshandpersist.png
 +/usr/share/doc/openldap-servers-2.4.19/ldap-sync-refreshonly.png
 +/usr/share/doc/openldap-servers-2.4.19/n-way-multi-master.png
 +/usr/share/doc/openldap-servers-2.4.19/push-based-complete.png
 +/usr/share/doc/openldap-servers-2.4.19/push-based-standalone.png
 +/usr/share/doc/openldap-servers-2.4.19/refint.png
 +/usr/share/doc/openldap-servers-2.4.19/set-following-references.png
 +/usr/share/doc/openldap-servers-2.4.19/set-memberUid.png
 +/usr/share/doc/openldap-servers-2.4.19/set-recursivegroup.png
 +/usr/share/man/man5/slapd-bdb.5.gz
 +/usr/share/man/man5/slapd-config.5.gz
 +/usr/share/man/man5/slapd-dnssrv.5.gz
 +/usr/share/man/man5/slapd-hdb.5.gz
 +/usr/share/man/man5/slapd-ldap.5.gz
 +/usr/share/man/man5/slapd-ldbm.5.gz
 +/usr/share/man/man5/slapd-ldif.5.gz
 +/usr/share/man/man5/slapd-meta.5.gz
 +/usr/share/man/man5/slapd-monitor.5.gz
 +/usr/share/man/man5/slapd-ndb.5.gz
 +/usr/share/man/man5/slapd-null.5.gz
 +/usr/share/man/man5/slapd-passwd.5.gz
 +/usr/share/man/man5/slapd-perl.5.gz
 +/usr/share/man/man5/slapd-relay.5.gz
 +/usr/share/man/man5/slapd-shell.5.gz
 +/usr/share/man/man5/slapd-sock.5.gz
 +/usr/share/man/man5/slapd-sql.5.gz
 +/usr/share/man/man5/slapd.access.5.gz
 +/usr/share/man/man5/slapd.backends.5.gz
 +/usr/share/man/man5/slapd.conf.5.gz
 +/usr/share/man/man5/slapd.overlays.5.gz
 +/usr/share/man/man5/slapd.plugin.5.gz
 +/usr/share/man/man5/slapo-accesslog.5.gz
 +/usr/share/man/man5/slapo-auditlog.5.gz
 +/usr/share/man/man5/slapo-chain.5.gz
 +/usr/share/man/man5/slapo-collect.5.gz
 +/usr/share/man/man5/slapo-constraint.5.gz
 +/usr/share/man/man5/slapo-dds.5.gz
 +/usr/share/man/man5/slapo-dyngroup.5.gz
 +/usr/share/man/man5/slapo-dynlist.5.gz
 +/usr/share/man/man5/slapo-memberof.5.gz
 +/usr/share/man/man5/slapo-pcache.5.gz
 +/usr/share/man/man5/slapo-ppolicy.5.gz
 +/usr/share/man/man5/slapo-refint.5.gz
 +/usr/share/man/man5/slapo-retcode.5.gz
 +/usr/share/man/man5/slapo-rwm.5.gz
 +/usr/share/man/man5/slapo-sssvlv.5.gz
 +/usr/share/man/man5/slapo-syncprov.5.gz
 +/usr/share/man/man5/slapo-translucent.5.gz
 +/usr/share/man/man5/slapo-unique.5.gz
 +/usr/share/man/man5/slapo-valsort.5.gz
 +/usr/share/man/man8/slapacl.8.gz
 +/usr/share/man/man8/slapadd.8.gz
 +/usr/share/man/man8/slapauth.8.gz
 +/usr/share/man/man8/slapcat.8.gz
 +/usr/share/man/man8/slapd.8.gz
 +/usr/share/man/man8/slapdn.8.gz
 +/usr/share/man/man8/slapindex.8.gz
 +/usr/share/man/man8/slappasswd.8.gz
 +/usr/share/man/man8/slapschema.8.gz
 +/usr/share/man/man8/slaptest.8.gz
 +/var/lib/ldap
 +/var/run/openldap
 +</code>
 +=== libtool-ltdl ===
 +   # rpm -qil libtool-ltdl
 +<code>Name        : libtool-ltdl                 Relocations: (not relocatable)
 +Version     : 2.2.6                             Vendor: CentOS
 +Release     : 15.5.el6                      Build Date: Tue 24 Aug 2010 09:42:49 PM CEST
 +Install Date: Wed 26 Oct 2011 12:52:03 PM CEST      Build Host: c6b2.bsys.dev.centos.org
 +Group       : System Environment/Libraries   Source RPM: libtool-2.2.6-15.5.el6.src.rpm
 +Size        : 64948                            License: LGPLv2+
 +Signature   : RSA/8, Sun 03 Jul 2011 06:40:12 AM CEST, Key ID 0946fca2c105b9de
 +Packager    : CentOS BuildSystem <http://bugs.centos.org>
 +URL         : http://www.gnu.org/software/libtool/
 +Summary     : Runtime libraries for GNU Libtool Dynamic Module Loader
 +Description :
 +The libtool-ltdl package contains the GNU Libtool Dynamic Module Loader, a
 +library that provides a consistent, portable interface which simplifies the
 +process of using dynamic modules.
 +
 +These runtime libraries are needed by programs that link directly to the
 +system-installed ltdl libraries; they are not needed by software built using
 +the rest of the GNU Autotools (including GNU Autoconf and GNU Automake).
 +/usr/lib64/libltdl.so.7
 +/usr/lib64/libltdl.so.7.2.1
 +/usr/share/doc/libtool-ltdl-2.2.6
 +/usr/share/doc/libtool-ltdl-2.2.6/COPYING.LIB
 +/usr/share/doc/libtool-ltdl-2.2.6/README
 +/usr/share/libtool
 +</code>
 +=== make ===
 +   # rpm -qil make
 +<code>Name        : make                         Relocations: (not relocatable)
 +Version     : 3.81                              Vendor: CentOS
 +Release     : 19.el6                        Build Date: Thu 11 Nov 2010 09:47:05 PM CET
 +Install Date: Wed 26 Oct 2011 12:52:05 PM CEST      Build Host: c6b5.bsys.dev.centos.org
 +Group       : Development/Tools             Source RPM: make-3.81-19.el6.src.rpm
 +Size        : 1079569                          License: GPLv2+
 +Signature   : RSA/8, Sun 03 Jul 2011 06:44:38 AM CEST, Key ID 0946fca2c105b9de
 +Packager    : CentOS BuildSystem <http://bugs.centos.org>
 +URL         : http://www.gnu.org/software/make/
 +Summary     : A GNU tool which simplifies the build process for users
 +Description :
 +A GNU tool for controlling the generation of executables and other
 +non-source files of a program from the program's source files. Make
 +allows users to build and install packages without any significant
 +knowledge about the details of the build process. The details about
 +how the program should be built are provided for make in the program's
 +makefile.
 +/usr/bin/gmake
 +/usr/bin/make
 +/usr/share/doc/make-3.81
 +/usr/share/doc/make-3.81/AUTHORS
 +/usr/share/doc/make-3.81/COPYING
 +/usr/share/doc/make-3.81/NEWS
 +/usr/share/doc/make-3.81/README
 +/usr/share/info/make.info-1.gz
 +/usr/share/info/make.info-2.gz
 +/usr/share/info/make.info.gz
 +/usr/share/locale/be/LC_MESSAGES/make.mo
 +/usr/share/locale/da/LC_MESSAGES/make.mo
 +/usr/share/locale/de/LC_MESSAGES/make.mo
 +/usr/share/locale/es/LC_MESSAGES/make.mo
 +/usr/share/locale/fi/LC_MESSAGES/make.mo
 +/usr/share/locale/fr/LC_MESSAGES/make.mo
 +/usr/share/locale/ga/LC_MESSAGES/make.mo
 +/usr/share/locale/gl/LC_MESSAGES/make.mo
 +/usr/share/locale/he/LC_MESSAGES/make.mo
 +/usr/share/locale/hr/LC_MESSAGES/make.mo
 +/usr/share/locale/id/LC_MESSAGES/make.mo
 +/usr/share/locale/ja/LC_MESSAGES/make.mo
 +/usr/share/locale/ko/LC_MESSAGES/make.mo
 +/usr/share/locale/nl/LC_MESSAGES/make.mo
 +/usr/share/locale/pl/LC_MESSAGES/make.mo
 +/usr/share/locale/pt_BR/LC_MESSAGES/make.mo
 +/usr/share/locale/ru/LC_MESSAGES/make.mo
 +/usr/share/locale/rw/LC_MESSAGES/make.mo
 +/usr/share/locale/sv/LC_MESSAGES/make.mo
 +/usr/share/locale/tr/LC_MESSAGES/make.mo
 +/usr/share/locale/uk/LC_MESSAGES/make.mo
 +/usr/share/locale/vi/LC_MESSAGES/make.mo
 +/usr/share/locale/zh_CN/LC_MESSAGES/make.mo
 +/usr/share/man/man1/gmake.1.gz
 +/usr/share/man/man1/make.1.gz
 +</code>
 +==== OpenLDAP - Client ====
 +Da wir auf unserem Server später auch auf Hilfsprogramme des openldap-clients zurückgreifen installieren wir auch dieses Paket.
 +
 +Auch dieses Paket wird mit Hilfe der Paketverwaltungshilfsprogarmmes **yum** installieren.
 +   # yum install openldap-clients -y
 +Was uns dieses Programmpaket mitbringt, ermitteln wir bei Bedarf mit der Option **//qil//** beim Programm **rpm**. 
 +   # rpm -qil openldap-clients
 +<code>Name        : openldap-clients             Relocations: (not relocatable)
 +Version     : 2.4.19                            Vendor: CentOS
 +Release     : 15.el6_0.2                    Build Date: Sat 25 Jun 2011 12:30:55 PM CEST
 +Install Date: Wed 26 Oct 2011 01:23:30 PM CEST      Build Host: c6b6.bsys.dev.centos.org
 +Group       : Applications/Internet         Source RPM: openldap-2.4.19-15.el6_0.2.src.rpm
 +Size        : 612692                           License: OpenLDAP
 +Signature   : RSA/8, Wed 06 Jul 2011 03:42:03 AM CEST, Key ID 0946fca2c105b9de
 +Packager    : CentOS BuildSystem <http://bugs.centos.org>
 +URL         : http://www.openldap.org/
 +Summary     : LDAP client utilities
 +Description :
 +OpenLDAP is an open-source suite of LDAP (Lightweight Directory Access
 +Protocol) applications and development tools. LDAP is a set of
 +protocols for accessing directory services (usually phone book style
 +information, but other information is possible) over the Internet,
 +similar to the way DNS (Domain Name System) information is propagated
 +over the Internet. The openldap-clients package contains the client
 +programs needed for accessing and modifying OpenLDAP directories.
 +/usr/bin/ldapadd
 +/usr/bin/ldapcompare
 +/usr/bin/ldapdelete
 +/usr/bin/ldapexop
 +/usr/bin/ldapmodify
 +/usr/bin/ldapmodrdn
 +/usr/bin/ldappasswd
 +/usr/bin/ldapsearch
 +/usr/bin/ldapurl
 +/usr/bin/ldapwhoami
 +/usr/share/man/man1/ldapadd.1.gz
 +/usr/share/man/man1/ldapcompare.1.gz
 +/usr/share/man/man1/ldapdelete.1.gz
 +/usr/share/man/man1/ldapexop.1.gz
 +/usr/share/man/man1/ldapmodify.1.gz
 +/usr/share/man/man1/ldapmodrdn.1.gz
 +/usr/share/man/man1/ldappasswd.1.gz
 +/usr/share/man/man1/ldapsearch.1.gz
 +/usr/share/man/man1/ldapurl.1.gz
 +/usr/share/man/man1/ldapwhoami.1.gz
 +</code>
 +
 +===== Konfiguration =====
 +Bei der von CentOS 6.x mitgelieferten OpenLDAP Version //**2.4.xx**// kann die Konfiguration des Server mit Hilfe von ldif-Dateien erfolgen. Der Vorteil dieser Konfigurationsvariante gegenüber der früheren Konfiguration mit Hilfe einer zentralen Konfigurationsdatei //**/etc/openldap/slapd.conf**// besteht darin, dass Änderungen an der Konfiguration des OpenLDAP-Servers aktiv werden, ohne den Server selbst neu zu starten. Änderungen werden also quasi //on the fly// aktiv.
 +==== Vorbereitung ====
 +Da wir bei der nachfolgenden Konfiguration mit einer frischen eigenen Installation beginnen wollen, werden wir die mitgelieferten Konfigurationsbeispiele erst einmal sichern und unsere Konfigurationspfade entsprechend vorbereiten.
 +
 +Als erstes sichern wir das originale Konfigurationsverzeichnis, damit wir bei Bedarf wieder darauf zurückgreifen können. Hierzu kopieren wir uns einfach den Inhalt des Verzeichnisses //**/etc/openldap/slapd.d/**// unter einem anderen Namen ab.
 +   # cp -ar /etc/openldap/slapd.d /etc/openldap/slapd.d.orig
 +Als nächstes leeren wir das standardmäßig mitgelieferte Konfigurationsverzeichnis //**/etc/openldap/slapd.d**//.
 +   # rm -rf /etc/openldap/slapd.d/*
 +Im nächsten Schritt erstellen wir uns eine neue Konfigurationsdatei //**/etc/openldap/slapd.conf**// indem wir die mitgelieferte Backupdatei kopieren und unter dem richtigen Namen ablegen.
 +   # cp /etc/openldap/slapd.conf.bak /etc/openldap/slapd.conf
 +Anschließend passen wir noch die Dateiberechtigungen an:
 +   # chown root:ldap /etc/openldap/slapd.conf
 +
 +Aus sichertstechnischen Gründen soll die Datei **/etc/openldap/slapd.conf** nur der Gruppe **//ldap//** zur Verfügung stehen.
 +   # ls -l /etc/openldap/slapd.conf
 +<code>-rw-r----- 1 root ldap 4327 Oct 26 13:35 /etc/openldap/slapd.conf</code>
 +
 +Nachfolgend wollen wir nun auf die unterschiedlichen Konfigurationsverzeichnisse und -dateien im Detail eingehen.
 +==== ldap.conf ====
 +In der Konfigurationsdatei //**/etc/openldap/ldap.conf**// wird die Basis-Domain für den LDAP-Client festgelegt.
 +Mit dem Editor unserer Wahl bearbeiten wir nun diese Datei und tragen dort ein:
 +  * **BASE** : Definition des standardmässig abgefragten Teilbaums / Searchbase unter der Anfragen von dc=nausch, dc=org ausgeführt werden sollen.
 +  * **URI** : Definition des LDAP-Servers, der befragt werden soll.
 +
 +   # vim /etc/openldap/ldap.conf
 +<file | /etc/openldap/ldap.conf>#
 +# LDAP Defaults
 +#
 +
 +# See ldap.conf(5) for details
 +# This file should be world readable but not world writable.
 +
 +#BASE   dc=example, dc=com
 +#URI    ldap://ldap.example.com ldap://ldap-master.example.com:666
 +
 +# Django: 2011-10-26
 +BASE    dc=nausch, dc=org               # Definition des standardmäßig abgefragten Teilbaums / Searchbase
 +                                        # Anfragen werden unterhalb von dc=nausch, dc=org ausgeführt.
 +URI     ldap://ldap.dmz.nausch.org      # Definition des LDAP-Servers 
 +
 +
 +#SIZELIMIT      12
 +#TIMELIMIT      15
 +#DEREF          never
 +</file>
 +
 +==== DB_CONFIG ====
 +Als Backend-Datenbank für unseren zentralen Verzeichnisdienst nutzen wir eine [[http://de.wikipedia.org/wiki/Berkeley_DB|Berkeley DB]], die sich im UNIXiden Umfeld bestens bewährt hat. Hierzu muss im Verzeichnis //**/var/lib/ldap/**// eine entsprechend Konfigurationsdatei **DB_CONFIG** vorgehalten werden.
 +
 +Bei der Installation unseres **openldap-servers** RPM-Paketes wird uns eine entsprechende Musterkonfigurationsdatei bereits mitgeliefert. Diese muss nur noch an Ort und Stelle kopiert und die Benutzer- und Gruppenrechte angepasst werden.
 +
 +Als erstes kopieren wir uns die Vorlage Datei in unser Konfigurationsverzeichnis.
 +   # cp /usr/share/doc/openldap-servers-2.4.19/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
 +Anschließend passen wir noch die Benutzer- und Gruppenrechte an.
 +   # chown ldap:ldap /var/lib/ldap/DB_CONFIG
 +Eine weitere Bearbeitung der nun vorliegenden Konfigurationsdatei DB_CONFIG ist nicht notwendig, die Datei kann 1:1 so verwendet werden, wie diese aus dem RPM gefallen ist.
 +<file | /var/lib/ldap/DB_CONFIG>
 +# $OpenLDAP: pkg/ldap/servers/slapd/DB_CONFIG,v 1.3.2.4 2007/12/18 11:53:27 ghenry Exp $
 +# Example DB_CONFIG file for use with slapd(8) BDB/HDB databases.
 +#
 +# See the Oracle Berkeley DB documentation
 +#   <http://www.oracle.com/technology/documentation/berkeley-db/db/ref/env/db_config.html>
 +# for detail description of DB_CONFIG syntax and semantics.
 +#
 +# Hints can also be found in the OpenLDAP Software FAQ
 +# <http://www.openldap.org/faq/index.cgi?file=2>
 +# in particular:
 +#   <http://www.openldap.org/faq/index.cgi?file=1075>
 +
 +# Note: most DB_CONFIG settings will take effect only upon rebuilding
 +# the DB environment.
 +
 +# one 0.25 GB cache
 +set_cachesize 0 268435456 1
 +
 +# Data Directory
 +#set_data_dir db
 +
 +# Transaction Log settings
 +set_lg_regionmax 262144
 +set_lg_bsize 2097152
 +#set_lg_dir logs
 +
 +# Note: special DB_CONFIG flags are no longer needed for "quick"
 +# slapadd(8) or slapindex(8) access (see their -q option).
 +</file>
 +
 +==== Master-Passwort erstellen ====
 +Für den administrativen Zugriff wird ein eigenes Rootpasswort **rootpw** benötigt. Zur Generierung dieses Passwortes mit der Verschlüsselungsmethode SSHA - entsprechend einem SHA-1 Algorithmus (FIPS 160-1), nutzen wird das Programm /usr/sbin/slappasswd mit folgendem Befehl aufgerufen: 
 +   # /usr/sbin/slappasswd -h {SSHA}
 +
 +   New password: 
 +   Re-enter new password: 
 +   {SSHA}MT/P3fPtBfI3E2bylGEFxv2/u1KxmVmO
 +
 +==== slapd.conf ====
 +Die eigentliche Konfiguration unseres OpenLDAP-Daemons erfolgt mit Hilfe der Konfigurationsdatei **slapd.conf** im Verzeichnis **/etc/openldap/**, die wir uns im [[centos:ldap:install#vorbereitung|Kapitel Vorbereitung]] aus den Vorlagen des RPMs kopiert hatten.
 +Die Konfigurationsdatei bearbeiten wir nun mit dem Editor unserer Wahl, z.B. **vim**.
 +   # vim /etc/openldap/slapd.conf
 +<file | /etc/openldap/slapd.conf>
 +#
 +# See slapd.conf(5) for details on configuration options.
 +# This file should NOT be world readable.
 +#
 +
 +# Django : 2011-10-26 unbenutzte Schematas deaktiviert
 +#include /etc/openldap/schema/corba.schema # Django : deaktiviert 2011-10-26
 +include /etc/openldap/schema/core.schema
 +include /etc/openldap/schema/cosine.schema
 +#include /etc/openldap/schema/duaconf.schema # Django : deaktiviert 2011-10-26
 +#include /etc/openldap/schema/dyngroup.schema # Django : deaktiviert 2011-10-26
 +include /etc/openldap/schema/inetorgperson.schema
 +#include /etc/openldap/schema/java.schema # Django : deaktiviert 2011-10-26
 +#include /etc/openldap/schema/misc.schema # Django : deaktiviert 2011-10-26
 +include /etc/openldap/schema/nis.schema
 +#include /etc/openldap/schema/openldap.schema # Django : deaktiviert 2011-10-26
 +#include /etc/openldap/schema/ppolicy.schema # Django : deaktiviert 2011-10-26
 +#include /etc/openldap/schema/collective.schema # Django : deaktiviert 2011-10-26
 +
 +# Allow LDAPv2 client connections.  This is NOT the default.
 +allow bind_v2
 +
 +# Do not enable referrals until AFTER you have a working directory
 +# service AND an understanding of referrals.
 +#referral ldap://root.openldap.org
 +# Django : 2011-10-26  
 +referral ldap://ldap.dmz.nausch.org
 +
 +pidfile /var/run/openldap/slapd.pid
 +argsfile /var/run/openldap/slapd.args
 +
 +# Django : 2011-10-26 Definition des Loglevels - Detaillierte Hinweise sind in der manpage zu slapd.conf
 +# unter loglevel zu finden.
 +# no default entry for: loglevel
 +loglevel 256
 +
 +# Django : 2011-10-26 Definition der Idle-Timeout Detaillierte Hinweise sind in der manpage zu slapd.conf
 +# unter idletimeout zu finden.
 +# no default entry for: idletimeout
 +idletimeout 15
 +
 +# Django : 2011-10-26 Definition des Passwort-Hashes    Detaillierte Hinweise sind in der manpage zu slapd.conf
 +#                                                       unter password-hash zu finden.
 +# the default entry for password-hash is {SSHA}
 +password-hash {SSHA}
 +
 +# Load dynamic backend modules:
 +# Module syncprov.la is now statically linked with slapd and there
 +# is no need to load it here
 +# modulepath /usr/lib/openldap # or /usr/lib64/openldap
 +# moduleload accesslog.la
 +# moduleload auditlog.la
 +## To load this module, you have to install openldap-server-sql first
 +# moduleload back_sql.la
 +## Following two modules can't be loaded simultaneously
 +# moduleload dyngroup.la
 +# moduleload dynlist.la
 +# moduleload lastmod.la
 +# moduleload pcache.la
 +# moduleload ppolicy.la
 +# moduleload refint.la
 +# moduleload retcode.la
 +# moduleload rwm.la
 +# moduleload translucent.la
 +# moduleload unique.la
 +# moduleload valsort.la
 +
 +# Django : 2011-10-25 Detaillierte Hinweise sind in der manpage zu slapd.conf
 +#                                                       unter modulepath zu finden.
 +# The default is /usr/lib64/openldap
 +modulepath /usr/lib64/openldap
 +
 +# The next three lines allow use of TLS for encrypting connections using a
 +# dummy test certificate which you can generate by changing to
 +# /etc/pki/tls/certs, running "make slapd.pem", and fixing permissions on
 +# slapd.pem so that the ldap user or group can read it.  Your client software
 +# may balk at self-signed certificates, however.
 +# TLSCACertificateFile /etc/pki/tls/certs/ca-bundle.crt
 +# TLSCertificateFile /etc/pki/tls/certs/slapd.pem
 +# TLSCertificateKeyFile /etc/pki/tls/certs/slapd.pem
 +
 +# Sample security restrictions
 +# Require integrity protection (prevent hijacking)
 +# Require 112-bit (3DES or better) encryption for updates
 +# Require 63-bit encryption for simple bind
 +# security ssf=1 update_ssf=112 simple_bind=64
 +
 +# Sample access control policy:
 +# Root DSE: allow anyone to read it
 +# Subschema (sub)entry DSE: allow anyone to read it
 +# Other DSEs:
 +# Allow self write access
 +# Allow authenticated users read access
 +# Allow anonymous users to authenticate
 +# Directives needed to implement policy:
 +# access to dn.base="" by * read
 +# access to dn.base="cn=Subschema" by * read
 +# access to *
 +# by self write
 +# by users read
 +# by anonymous auth
 +#
 +# if no access controls are present, the default policy
 +# allows anyone and everyone to read anything but restricts
 +# updates to rootdn.  (e.g., "access to * by * read")
 +#
 +# rootdn can always read and write EVERYTHING!
 +
 +# Django : 2011-10-26
 +# no default entry for: Access Control Lists (ACLs)
 +access to attrs=userPassword
 + by self write
 + by dn="cn=Manager,dc=nausch,dc=org" write
 + by anonymous auth
 + by * none
 +access to *
 + by self write
 + by dn="cn=Manager,dc=nausch,dc=org" write
 + by * read
 +
 +#######################################################################
 +# ldbm and/or bdb database definitions
 +#######################################################################
 +
 +# Django : 2011-10-26
 +# Make cn=config accessable
 +database config
 +rootdn "cn=config"
 +rootpw {SSHA}MT/P3fPtBfI3E2bylGEFxv2/u1KxmVmO
 +
 +database bdb
 +# Django : 2011-10-26
 +# default : suffix          "dc=my-domain,dc=com"
 +suffix "dc=nausch,dc=org"
 +checkpoint 1024 15
 +# Django : 2011-10-26
 +# # default : rootdn          "cn=Manager,dc=my-domain,dc=com"
 +rootdn "cn=Manager,dc=nausch,dc=org"
 +# Cleartext passwords, especially for the rootdn, should
 +# be avoided.  See slappasswd(8) and slapd.conf(5) for details.
 +# Use of strong authentication encouraged.
 +# rootpw secret
 +# rootpw {crypt}ijFYNcSNctBYg
 +# Django : 2011-10-26
 +rootpw          {SSHA}MT/P3fPtBfI3E2bylGEFxv2/u1KxmVmO
 +
 +# The database directory MUST exist prior to running slapd AND 
 +# should only be accessible by the slapd and slap tools.
 +# Mode 700 recommended.
 +directory /var/lib/ldap
 +
 +# Django : 2011-10-26
 +# no default entry for: mode
 +mode 0600 
 +
 +# Django : 2011-10-26
 +# no default entry for: lastmod
 +lastmod on
 +
 +# Indices to maintain for this database
 +index objectClass                       eq,pres
 +index ou,cn,mail,surname,givenname      eq,pres,sub
 +index uidNumber,gidNumber,loginShell    eq,pres
 +index uid,memberUid                     eq,pres,sub
 +index nisMapName,nisMapEntry            eq,pres,sub
 +
 +# Replicas of this database
 +#replogfile /var/lib/ldap/openldap-master-replog
 +#replica host=ldap-1.example.com:389 starttls=critical
 +#     bindmethod=sasl saslmech=GSSAPI
 +#     authcId=host/ldap-master.example.com@EXAMPLE.COM
 +
 +
 +# enable monitoring
 +database monitor
 +
 +# allow onlu rootdn to read the monitor
 +# Django : 2011-10-26
 +# default : by dn.exact="cn=Manager,dc=my-domain,dc=com" read
 +access to *
 +        by dn.exact="cn=Manager,dc=nausch,dc=org" read
 +        by * none
 +</file>
 +Die Parameter sind in der Manpage der Konfigurationsdatei **slapd.conf** ausreichend beschrieben.
 +   # man slapd.conf
 +Auf die wichtigsten wollen wir noch kurz eingehen.
 +  * **idletimeout** Der Wert für den Eintrag idletimeout setzte eine Ablaufzeit für offene Abfragen, welche noch nicht beendet wurden. Das Setzen dieses Wertes wird dringendst angeraten, da es sonst bei sehr vielen Abfragen zu einem „Stillstand“ des LDAP-Servers kommen könnte.
 +  * **password-hash** Dieser Wert setzt den Standard-Agorithmus //SSHA// für den Eintrag des Passwort-Hashes.
 +  * **ACLs**((**A**ccess **C**ontrol **L**ists)) Die erste der beide ACLs definiert den Zugriff auf das Attribut //**userPassword**// nur für den Eigentümer einer Instanz des Objekts //**Manager**// mit //**Schreibrechten**// erlaubt sind. Weiterhin sind anonyme Anfragen zur Authentifizierung das Attribut //**userPassword**// vergleichen. Alle anderen Anfragen auf das Attribut //**userPassword**// werden nicht gestattet. <code>access to attrs=userPassword
 + by self write
 + by dn="cn=Manager,dc=nausch,dc=org" write
 + by anonymous auth
 + by * none</code> Mit Hilfe der zweiten ACL wird festgelegt, daß der Zugriff auf alle Objekte - außer dem //**userPassword**// - vom Besitzer mit Schreibrechten durchgeführt werden dürfen. Alle anderen Anfragen sind mit Leserechten gestattet. <code>access to *
 + by self write
 + by dn="cn=Manager,dc=nausch,dc=org" write
 + by * read</code>
 +  * **rootpw** Hier ist das LDAP-RootPasswort für den administrativen Zugang, welches wir uns eingangs im Abschnitt [[centos:ldap:install#master-passwort_erstellen|Master-Passwort erstellen]] erstellt hatten, anzugeben.
 +  * **mode** Der Eintrag mode mit der entsprechenden Angabe 0600 legt fest, dass Dateien mit nur für den Eigentümer der Datei mit den Rechten **rw** angelegt werden.
 +  * **lastmode** Durch das Setzen des Wertes **on** wird festgelegt, daß Einträge mit einem Datum zu versehen sind.
 +==== ldif Konfiguration ====
 +Im nächsten Schritt werden wir nun unsere zuvor angelegt Konfigurationsdatei //**/etc/openldap/slapd.conf**// in das, im Abschnitt [[centos:ldap_c6#konfiguration|Konfiguration]] beschriebene Verzeichnis //**/etc/openldap/slapd.d**//, als **ldif**-Dateien ablegen lassen. Hierzu benutzen wir das Programm **slaptest**.
 +Mit folgendem Aufruf generieren wir die ldif-Verzeichnisstrukturen sowie die zugehörigen ldif-Dateien.
 +   # slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d
 +
 +   bdb_db_open: database "dc=nausch,dc=org": db_open(/var/lib/ldap/id2entry.bdb) failed: No such file or directory (2).
 +   backend_startup_one (type=bdb, suffix="dc=nausch,dc=org"): bi_db_open failed! (2)
 +   slap_startup failed (test would succeed using the -u switch)
 +<WRAP round important>Die gezeigten Fehlermeldungen sind leicht erklärbar. Es befinden sich aktuell noch __keine Daten__ in der Berkely-Datenbank. Die Fehlermeldung kann also ignoriert werden und darf uns nicht weiter verunsichern</WRAP>
 +
 +Annschließend passen wir noch die Verzeichnis- und Dateirechte der gerade erzeigten Daten an:
 +   # chown -R ldap:ldap /etc/openldap/slapd.d 
 +
 +<WRAP round alert>Durch das Konvertierend der **slapd.conf** Konfigurationsdatei mit Hilfe des Befehles <code># slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d</code> wurde **__nicht nur__** das „neue“ Konfigurationsverzeichnis /etc/openldap/slapd.d mit Inhalten gefüllt, sondern auch in diesem Fall eine Berkely-Datenbankstruktur im Verzeichnis //**/var/lib/ldap**// angelegt. 
 +Diese Berkley-Datenbankstruktur wurde jedoch nicht vom **slapd-Daemon** erstellt, und ist somit wieder zu entfernen, da es sonst zu unerwünschten Fehlern beim Starten und beim Betrieb des OpenLDAP-Server kömmen würde.
 +Wir löschen alos dies Dateien mit folgendem Befehl.
 +   # rm -f /var/lib/ldap/alock /var/lib/ldap/__db*
 +</WRAP>
 +Da wir zukünftig die weitere Konfiguration unseres OpenLDAP-Servers ausschließlich mit Hilfe der ldif-Dateien vornehmen wollen, werden wir nun unsere Konfigurationsdatei, die wir zum initialen Befüllen der ldif-Verzeichnisse angelegt hatten, wieder stilllegen. Hierzu reicht es die vorhandenen alte Konfigurationsdatei einfach umzubenennen.
 +   # mv /etc/openldap/slapd.conf /etc/openldap/slapd.conf.save_111026
 +
 +==== rsyslog ====
 +Damit unser LDAP-Server seine Meldungen auch sichtbar uns zur Verfügung stellt, lassen wir ihm diese ganz einfach in ein separates Logfile schreiben. Hierzu passen die Konfigurationsdatei **/etc/rsyslog.conf** entsprechend an und tragen eine entsprechende Regel unter der Sektion **#### RULES ####** ein.
 +   # vim /etc/rsyslog.conf
 +<code>#### RULES ####
 +
 +...
 +
 +# Django : 2011-10-26 Logging für OpenLDAP-Server aktiviert
 +local4.*                                                -/var/log/ldap.log  
 +
 +...
 +</code>
 +Anschließend müssen wir den rsyslog-Daemon einmal durchstarten, damit er unsere Änderungen akzeptiert und umsetzt.
 +   # service rsyslog restart
 +
 +   Shutting down system logger:                                OK  ]
 +   Starting system logger:                                    [  OK  ]
 +
 +==== logrotate ====
 +Bei einem unter Last stehendem OpenLDAP-Datenbankserver kann unter Umständen das zugehörige Logfile //**/var/log/ldap.log**// recht schnell anwachsen. Leider wir in dem RPM-Paket **openldap-servers** keine Konfigurationsdatei zur Rotation der Logdatei mitgeliefert, so dass wir uns diese kurz selbst erstellen. Hierzu benutzen wir den Editor unserer Wahl, z.B. **vim**.
 +   # vim /etc/logrotate.d/ldap
 +<file | /etc/logrotate.d/ldap>/var/log/ldap.log {
 +        rotate 4
 +        weekly
 +        compress
 +        notifempty
 +        size 5M
 +        missingok
 +        create 0640 ldap ldap
 +        sharedscripts
 +        postrotate
 +        /bin/kill -HUP `cat /var/run/sldapd.pid 2> /dev/null` 2> /dev/null || true
 +        endscript
 +}
 +</file>
 +
 +===== Systemstart =====
 +==== erster manueller Start ====
 +Bevor wir nun unseren OpenLDAP-Server das erste mal starten, überprüfen wir noch mit einem **configcheck** ob der ldap-Daemon mit unserem gerade erzeugten Konfigurationsparametern umgehen kann, oder ob es noch nicht entdeckte Fehler in der Konfiguration gibt.
 +   # service slapd configtest
 +<WRAP round tip>Erfolgt keine Rückmeldung, so bedeutet dies, alles ist in bester Ordnung!</WRAP>
 +Nun können wir unseren LDAP-Server das erste mal anstarten:
 +   # service slapd start
 +
 +   Starting slapd:                                            [  OK  ]
 +
 +Der erfolgreiche Start unseres slapd-Daemon wird uns, Dank der Änderungen am [[centos:ldap_c6#rsyslog|Rsyslog]], auch im Logfile //**/var/log/ldap.log**// auch entsprechend vermerkt.
 +   Oct 26 23:49:54 vml000030 slapd[2023]: @(#) $OpenLDAP: slapd 2.4.19 (Jun 25 2011 11:27:10) $#012#011mockbuild@c6b6.bsys.dev.centos.org:/builddir/build/BUILD/openldap-2.4.19/openldap-2.4.19/build-servers/servers/slapd
 +   Oct 26 23:49:54 vml000030 slapd[2024]: slapd starting
 +
 +
 +Ob der Daemon läuft überprüfen wir am einfachsten mit folgender Abfrage:
 +   # netstat -tulpen | grep slapd
 +
 +   tcp        0      0 0.0.0.0:389                 0.0.0.0:                  LISTEN      0          9990       1870/slapd
 +
 +==== automatisches Starten des Dienstes beim Systemstart ==== 
 +Damit nun unser OpenLDAP-Datenbankserver beim Booten automatisch gestartet wird, nehmen wir noch folgende Konfigurationsschritte vor.
 +   # chkconfig slapd on
 +Anschließend überprüfen wir noch unsere Änderung:
 +   # chkconfig --list | grep slapd
 +
 +   slapd          0:off 1:off 2:on 3:on 4:on 5:on 6:off
 +
 +===== erste LDAP-Abfragen =====
 +Mit nachfolgendem Befehl, kann eine erste Suchanfrage, gegen den OpenLDAP-Server durchgeführt werden, welche zwar ein leeres Ergbnis zurück liefern sollte, jedoch kann somit überprüft werden, ob grundsätzlich Abfragen möglich sind.
 +   # ldapsearch -x -b "dc=nausch,dc=org" "(objectclass=*)"
 +Als Ergebnis bekommen folgende Antwort.
 +<code>
 +# extended LDIF
 +#
 +# LDAPv3
 +# base <dc=nausch,dc=org> with scope subtree
 +# filter: (objectclass=*)
 +# requesting: ALL
 +#
 +
 +# search result
 +search: 2
 +result: 32 No such object
 +
 +# numResponses: 1
 +</code>
 +im Logfile des slapd-Daemon wird unsere Anfrage entsprechend protokolliert.
 +<code>Oct 27 00:02:28 vml000030 slapd[2024]: conn=4 fd=12 ACCEPT from IP=[::1]:54910 (IP=[::]:389)
 +Oct 27 00:02:28 vml000030 slapd[2024]: conn=4 op=0 BIND dn="" method=128
 +Oct 27 00:02:28 vml000030 slapd[2024]: conn=4 op=0 RESULT tag=97 err=0 text=
 +Oct 27 00:02:28 vml000030 slapd[2024]: conn=4 op=1 SRCH base="dc=nausch,dc=org" scope=2 deref=0 filter="(objectClass=*)"
 +Oct 27 00:02:28 vml000030 slapd[2024]: conn=4 op=1 SEARCH RESULT tag=101 err=32 nentries=0 text=
 +Oct 27 00:02:28 vml000030 slapd[2024]: conn=4 op=2 UNBIND
 +Oct 27 00:02:28 vml000030 slapd[2024]: conn=4 fd=12 closed
 +</code>
 +
 +Für den Zugriff auf den **cn=config** hatten wir bei der erstmaligen Konfiguration folgendes angegeben. 
 +<code># Django : 2011-10-26
 +# Make cn=config accessable
 +database config
 +rootdn "cn=config"
 +rootpw {SSHA}MT/P3fPtBfI3E2bylGEFxv2/u1KxmVmO
 +</code>
 +Mit Hilfe dieser Definition können wir nun ebenfalls die im *.LDIF-Format hinterlegten OpenLDAP-Server-Konfigurationen mit nachfolgendem Befehl abgefragt werden.
 +Im folgenden Beispiel erfolgt die Abfrage des Konfigurationsabschnitt **cn=config „objectclass=olcGlobal“**.
 +   # ldapsearch -W -x -D cn=config -b cn=config "(objectclass=olcGlobal)"
 +
 +<code>Enter LDAP Password: 
 +# extended LDIF
 +#
 +# LDAPv3
 +# base <cn=config> with scope subtree
 +# filter: (objectclass=olcGlobal)
 +# requesting: ALL
 +#
 +
 +# config
 +dn: cn=config
 +objectClass: olcGlobal
 +cn: config
 +olcConfigFile: /etc/openldap/slapd.conf
 +olcConfigDir: /etc/openldap/slapd.d
 +olcAllows: bind_v2
 +olcArgsFile: /var/run/openldap/slapd.args
 +olcAttributeOptions: lang-
 +olcAuthzPolicy: none
 +olcConcurrency: 0
 +olcConnMaxPending: 100
 +olcConnMaxPendingAuth: 1000
 +olcGentleHUP: FALSE
 +olcIdleTimeout: 15
 +olcIndexSubstrIfMaxLen: 4
 +olcIndexSubstrIfMinLen: 2
 +olcIndexSubstrAnyLen: 4
 +olcIndexSubstrAnyStep: 2
 +olcIndexIntLen: 4
 +olcLocalSSF: 71
 +olcLogLevel: Stats
 +olcPidFile: /var/run/openldap/slapd.pid
 +olcReadOnly: FALSE
 +olcReferral: ldap://ldap.dmz.nausch.org
 +olcReverseLookup: FALSE
 +olcSaslSecProps: noplain,noanonymous
 +olcSockbufMaxIncoming: 262143
 +olcSockbufMaxIncomingAuth: 16777215
 +olcThreads: 16
 +olcTLSCRLCheck: none
 +olcTLSVerifyClient: never
 +olcToolThreads: 1
 +olcWriteTimeout: 0
 +
 +# search result
 +search: 2
 +result: 0 Success
 +
 +# numResponses: 2
 +# numEntries: 1
 +</code>
 +Auch hier wird die Abfrage im Logfile des OpenLDAP-Servers protokolliert.
 +<code>Oct 27 00:04:46 vml000030 slapd[2024]: conn=5 fd=12 ACCEPT from IP=[::1]:54911 (IP=[::]:389)
 +Oct 27 00:04:46 vml000030 slapd[2024]: conn=5 op=0 BIND dn="cn=config" method=128
 +Oct 27 00:04:46 vml000030 slapd[2024]: conn=5 op=0 BIND dn="cn=config" mech=SIMPLE ssf=0
 +Oct 27 00:04:46 vml000030 slapd[2024]: conn=5 op=0 RESULT tag=97 err=0 text=
 +Oct 27 00:04:46 vml000030 slapd[2024]: conn=5 op=1 SRCH base="cn=config" scope=2 deref=0 filter="(objectClass=olcGlobal)"
 +Oct 27 00:04:46 vml000030 slapd[2024]: conn=5 op=1 SEARCH RESULT tag=101 err=0 nentries=1 text=
 +Oct 27 00:04:46 vml000030 slapd[2024]: conn=5 op=2 UNBIND
 +Oct 27 00:04:46 vml000030 slapd[2024]: conn=5 fd=12 closed
 +</code>
 +Nachfolgend wird der Konfigurationsabschnitt **olcDatabase={0}config.ldif** abgefragt:
 +   # ldapsearch -W -x -D cn=config -b olcDatabase={0}config,cn=config
 +
 +<code>Enter LDAP Password: 
 +# extended LDIF
 +#
 +# LDAPv3
 +# base <olcDatabase={0}config,cn=config> with scope subtree
 +# filter: (objectclass=*)
 +# requesting: ALL
 +#
 +
 +# {0}config, config
 +dn: olcDatabase={0}config,cn=config
 +objectClass: olcDatabaseConfig
 +olcDatabase: {0}config
 +olcAccess: {0}to *  by * none
 +olcAddContentAcl: TRUE
 +olcLastMod: TRUE
 +olcMaxDerefDepth: 15
 +olcReadOnly: FALSE
 +olcRootDN: cn=config
 +olcRootPW: {SSHA}MT/P3fPtBfI3E2bylGEFxv2/u1KxmVmO
 +olcMonitoring: FALSE
 +
 +# search result
 +search: 2
 +result: 0 Success
 +
 +# numResponses: 2
 +# numEntries: 1
 +</code>
 +Der Ausschnitt aus dem Logfile zeigt den erfolgreichen Abfrageversuch.
 +<code>Oct 26 23:54:58 vml000030 slapd[2024]: conn=1 fd=12 ACCEPT from IP=[::1]:42483 (IP=[::]:389)
 +Oct 26 23:54:58 vml000030 slapd[2024]: conn=1 op=0 BIND dn="cn=config" method=128
 +Oct 26 23:54:58 vml000030 slapd[2024]: conn=1 op=0 BIND dn="cn=config" mech=SIMPLE ssf=0
 +Oct 26 23:54:58 vml000030 slapd[2024]: conn=1 op=0 RESULT tag=97 err=0 text=
 +Oct 26 23:54:58 vml000030 slapd[2024]: conn=1 op=1 SRCH base="olcDatabase={0}config,cn=config" scope=2 deref=0 filter="(objectClass=*)"
 +Oct 26 23:54:58 vml000030 slapd[2024]: conn=1 op=1 SEARCH RESULT tag=101 err=0 nentries=1 text=
 +Oct 26 23:54:58 vml000030 slapd[2024]: conn=1 op=2 UNBIND
 +Oct 26 23:54:58 vml000030 slapd[2024]: conn=1 fd=12 closed
 +</code>
 +
 +Natürlich kann man auch den gesamten LDAP-Baum abfragen:
 +   # ldapsearch -W -x -D cn=config -b cn=config
 +Auch diese Abfrage, bei der wir auf Grund der Fülle an Informationen auf eine Ausgabe hier im Wiki verzichten, wird im Logfile protokolliert.
 +<code>Oct 27 00:07:22 vml000030 slapd[2024]: conn=6 fd=13 ACCEPT from IP=[::1]:37073 (IP=[::]:389)
 +Oct 27 00:07:22 vml000030 slapd[2024]: conn=6 op=0 BIND dn="cn=config" method=128
 +Oct 27 00:07:22 vml000030 slapd[2024]: conn=6 op=0 BIND dn="cn=config" mech=SIMPLE ssf=0
 +Oct 27 00:07:22 vml000030 slapd[2024]: conn=6 op=0 RESULT tag=97 err=0 text=
 +Oct 27 00:07:22 vml000030 slapd[2024]: conn=6 op=1 SRCH base="cn=config" scope=2 deref=0 filter="(objectClass=*)"
 +Oct 27 00:07:22 vml000030 slapd[2024]: conn=6 op=1 SEARCH RESULT tag=101 err=0 nentries=10 text=
 +Oct 27 00:07:22 vml000030 slapd[2024]: conn=6 op=2 UNBIND
 +Oct 27 00:07:22 vml000030 slapd[2024]: conn=6 fd=13 closed
 +</code>
 +Bei den //**err=**-Codes// in der LDAP-Logdatei handelt es sich keineswegs nur um Error-Meldungen. Vielmehr werden hier viele Rückmeldungen in Zahlenwerte codiert, wie z.B. **err=0** für **O.K.**.
 +
 +Eine Auflistung der gängigen Rückmeldecodes ist [[http://web500gw.sourceforge.net/errors.html|hier]] zu finden.
 +====== Links ======
 +  * **[[centos:ldap:start|Zurück zum Kapitel >>OpenLDAP Server unter CentOS 6.x<<]]**
 +  * **[[wiki:start|Zurück zu >>Projekte und Themenkapitel<<]]**
 +  * **[[http://dokuwiki.nausch.org/doku.php/|Zurück zur Startseite]]**
 +