Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
| Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
|
lpi2:ldap [2015/07/19 08:01] ingo_wichmann |
lpi2:ldap [2025/08/15 08:15] (aktuell) |
||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| ====== OpenLDAP Server ====== | ====== OpenLDAP Server ====== | ||
| ===== Benötigte Pakete ===== | ===== Benötigte Pakete ===== | ||
| - | Debian: | + | * Debian: ''slapd ldap-utils'' |
| - | slapd | + | |
| - | SuSE: | + | |
| - | openldap2 | + | |
| - | Bug in openSuSE 12.3 und 13.1 (( https://bugzilla.novell.com/show_bug.cgi?id=777418 )) | + | |
| - | Fedora, CentOS 6: | + | ++++ Initiale Konfiguration anpassen | |
| - | openldap-servers | + | ===== Initiale Konfiguration ===== |
| - | + | ==== Debian ==== | |
| - | ===== Minimal-Konfiguration ===== | + | |
| Bei Debian wird das Paket mit folgenden Werten vorkonfiguriert ((Die Werte kann man natürlich auch interaktiv beim ''apt-get install'' eingeben)): | Bei Debian wird das Paket mit folgenden Werten vorkonfiguriert ((Die Werte kann man natürlich auch interaktiv beim ''apt-get install'' eingeben)): | ||
| <code bash> | <code bash> | ||
| Zeile 28: | Zeile 23: | ||
| </file> | </file> | ||
| <code bash>DEBCONF</code> | <code bash>DEBCONF</code> | ||
| - | |||
| - | Ab Debian 6.0 ( squeeze ) liegt die Konfiguration per default in einem LDAP-Baum. Wir empfehlen LDAP-Einsteigern, slapd über eine Konfigurationsdatei zu konfigurieren: | ||
| - | cat /usr/share/doc/slapd/examples/slapd.conf > /etc/ldap/slapd.conf | ||
| - | |||
| - | ''/etc/default/slapd'' : ( Debian 6.0 ) | ||
| - | <file> | ||
| - | SLAPD_CONF=/etc/ldap/slapd.conf | ||
| - | </file> | ||
| - | |||
| - | Die wichtigsten Einstellungen für ''slapd'': | ||
| - | |||
| - | ''/etc/ldap/slapd.conf'' : (Debian) | ||
| - | |||
| - | ''/etc/openldap/slapd.conf'' (SuSE, Fedora) | ||
| - | <file> | ||
| - | include /etc/openldap/schema/core.schema | ||
| - | include /etc/openldap/schema/cosine.schema | ||
| - | include /etc/openldap/schema/inetorgperson.schema | ||
| - | include /etc/openldap/schema/nis.schema | ||
| - | </file> | ||
| - | |||
| - | Je nach Version der Distribution bzw. von OpenLDAP wird ein anderes Backend empfohlen. | ||
| - | |||
| - | Debian 6.0 : | ||
| - | |||
| - | <file> | ||
| - | moduleload back_hdb | ||
| - | </file> | ||
| - | |||
| - | <file> | ||
| - | backend hdb | ||
| - | </file> | ||
| - | |||
| - | <file> | ||
| - | database hdb | ||
| - | </file> | ||
| - | |||
| - | <file> | ||
| - | suffix "dc=linuxhotel,dc=de" | ||
| - | |||
| - | access to attrs=userPassword | ||
| - | by dn="cn=admin,dc=linuxhotel,dc=de" write | ||
| - | by anonymous auth | ||
| - | by self write | ||
| - | by * none | ||
| - | |||
| - | access to * | ||
| - | by dn="cn=admin,dc=linuxhotel,dc=de" write | ||
| - | by self read | ||
| - | by * read | ||
| - | </file> | ||
| - | |||
| - | centos 5 : | ||
| - | cp /etc/openldap/DB_CONFIG.example /var/lib/ldap/DB_CONFIG | ||
| - | | ||
| - | centos 6 : | ||
| - | <file> | ||
| - | 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/openldap.schema | ||
| - | |||
| - | # modulepath /usr/lib/openldap | ||
| - | modulepath /usr/lib64/openldap | ||
| - | |||
| - | |||
| - | access to dn.base="" by * read | ||
| - | |||
| - | database bdb | ||
| - | suffix "dc=example,dc=com" | ||
| - | rootdn "cn=admin,dc=example,dc=com" | ||
| - | rootpw villa | ||
| - | directory /var/lib/ldap | ||
| - | </file> | ||
| - | |||
| - | ==== slapd.conf prüfen ==== | ||
| - | slapd -t | ||
| - | slaptest | ||
| ===== erste LDAP Einträge ===== | ===== erste LDAP Einträge ===== | ||
| - | + | Man kann das Administrator-Passwort mit dem Befehl ''slapadd'' hinzufügen, das mit dem Befehl ''slappasswd'' erzeugt wird: | |
| - | Unter Debian werden bereits bei der Installation die ersten Werte, wie z.B. der Administrator-Benutzer in das Verzeichnis eingefügt. Unter SuSE und Fedora kann man das mit dem Befehl ''slapadd'' tun, das Administrator-Passwort wird mit dem Befehl ''slappasswd'' erzeugt: | + | |
| <code bash> | <code bash> | ||
| Zeile 136: | Zeile 51: | ||
| <code>LDIF</code> | <code>LDIF</code> | ||
| - | ===== slapd starten ===== | + | ++++ |
| - | SuSE, Centos, Fedora: | + | |
| - | /etc/init.d/ldap restart | + | |
| - | chkconfig ldap on | + | |
| - | Debian: | + | ===== root-Zugriff auf LDAP-Server über Socket ===== |
| - | /etc/init.d/slapd restart | + | |
| - | ==== Fehler beim Starten finden ==== | + | <file txt ~/.ldaprc> |
| - | (unter SuSE /usr/lib/openldap/slapd) | + | URI ldapi:/// |
| - | slapd -d -1 | + | BASE cn=config |
| - | + | SASL_MECH EXTERNAL | |
| - | ====== Client ldapsearch ====== | + | |
| - | ===== Benötigte Pakete ===== | + | |
| - | Debian: | + | |
| - | ldap-utils | + | |
| - | SuSE: | + | |
| - | openldap2-client | + | |
| - | Fedora, CentOS 6: | + | |
| - | openldap-clients | + | |
| - | + | ||
| - | ===== Testen ===== | + | |
| - | Der OpenLDAP Server sollte nun z.B. mit ''ldapsearch'' die oben eingegebenen Werte zurückliefern: | + | |
| - | + | ||
| - | ldapsearch -x -W -b dc=linuxhotel,dc=de -H ldap://localhost -D cn=admin,dc=linuxhotel,dc=de | + | |
| - | + | ||
| - | Die Benutzung der ldap-utils können sie mit Hilfe einer Konfigurationsdatei ''$HOME/.ldaprc'' ((das geht auch benutzerübergreifend, je nach Distribution ''/etc/ldap.conf'', ''/etc/ldap/ldap.conf'', ''/etc/openldap/ldap.conf'')) vereinfachen: | + | |
| - | + | ||
| - | <file> | + | |
| - | BASE dc=linuxhotel,dc=de | + | |
| - | BINDDN cn=admin,dc=linuxhotel,dc=de | + | |
| - | HOST localhost | + | |
| </file> | </file> | ||
| + | ldapsearch -LLL '(olcSuffix=*)' olcSuffix | ||
| - | Der obige Aufruf verkürzt sich dadurch zu: | + | Mehr dazu unter [[ldap-config]] |
| - | ldapsearch -x -W | + | |
| - | ==== Eigenschaften des LDAP-Server abfragen ==== | + | ==== Fehler beim Starten finden ==== |
| - | ldapsearch -x -W -b '' -s base '+' | + | slapd -d -1 |
| - | + | ||
| - | ==== Schemata des LDAP-Server abfragen ==== | + | |
| - | ldapsearch -x -W -b 'cn=Subschema' -s base '+' | + | |
| ====== Tips & Tricks ====== | ====== Tips & Tricks ====== | ||
| - | ===== Backup und Restore ===== | + | ===== LDAP Daten sichern und wieder herstellen ===== |
| - | /etc/init.d/slapd stop | + | |
| - | slapcat -b dc=linuxhotel,dc=de > sicherung.ldif | + | service slapd stop |
| + | slapcat -b "dc=linuxhotel,dc=de" > sicherung.ldif | ||
| less sicherung.ldif | less sicherung.ldif | ||
| grep directory /etc/ldap/slapd.conf | grep directory /etc/ldap/slapd.conf | ||
| Zeile 190: | Zeile 79: | ||
| rm /var/lib/ldap/__db.* | rm /var/lib/ldap/__db.* | ||
| vi sicherung.ldif | vi sicherung.ldif | ||
| - | slapadd < sicherung.ldif | + | # nur bei dynamischer config: |
| - | slapindex | + | slapadd -f sicherung.ldif |
| + | # slapindex # wird seit openldap2.4 nicht mehr benötigt | ||
| chown -R openldap:openldap /var/lib/ldap/* | chown -R openldap:openldap /var/lib/ldap/* | ||
| - | /etc/init.d/slapd start | + | service slapd start |
| - | + | ||
| - | + | ||
| - | ===== vim ===== | + | |
| - | Nützliche Optionen beim Editieren von LDIF Dateien: | + | |
| - | + | ||
| - | * '':set list'' | + | |
| - | * '':syntax on'' | + | |
| - | * '':set number'' | + | |
| - | + | ||
| - | Oder eine Datei ''~/.vimrc'' anlegen | + | |
| - | + | ||
| - | <code> | + | |
| - | set list | + | |
| - | set number | + | |
| - | syntax on | + | |
| - | </code> | + | |
| - | + | ||
| - | ===== ldapadd ===== | + | |
| - | LDIF-Dateien vor dem Einfügen testen: | + | |
| - | ldapadd -x -W -n < irgendwas.ldif | + | |
| - | und erst dann wirklich einfügen: | + | # nur bei dynamischer config: |
| - | ldapadd -x -W < irgendwas.ldif | + | # slapcat -b cn=config > config-backup.ldif |
| + | # wenn auch die config wieder hergestellt werden muss: Reihenfolge beachten! | ||
| + | # slapadd -f config-backup.ldif && slapadd -f sicherung.ldif | ||
| + | # anschließend "chown -R openldap:openldap /etc/ldap/slapd.d/", für /var/lib/ldap wie oben weiter | ||
| - | ====== weitere LDAP Clients ====== | ||
| - | * [[http://directory.apache.org/studio/|Apache Directory Studio]] | ||
| - | * [[http://phpldapadmin.sourceforge.net/|phpLDAPadmin]] | ||
| - | * [[http://www.webmin.com/standard.html|webmin]] | ||
| - | * [[http://www-unix.mcs.anl.gov/~gawor/ldap/|LDAP Browser/Editor]] | ||
| - | * [[http://luma.sourceforge.net/|luma]] | ||
| - | * ldapvi | ||
| - | * shelldap ((Installation unter debian 6.0: | ||
| - | apt-get install libio-socket-ssl-perl shelldap | ||
| - | )) | ||