Linuxhotel Wiki

Wie ging das nochmal?

Benutzer-Werkzeuge

Webseiten-Werkzeuge


lpi2:ldap

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
Letzte Überarbeitung Beide Seiten, nächste Überarbeitung
lpi2:ldap [2015/07/19 08:01]
ingo_wichmann
lpi2:ldap [2019/02/14 03:31]
127.0.0.1 Externe Bearbeitung
Zeile 2: Zeile 2:
 ===== Benötigte Pakete ===== ===== Benötigte Pakete =====
 Debian: Debian:
-  slapd +  slapd ldap-utils 
-SuSE: +SuSE: (( Bug in openSuSE 12.3 und 13.1 https://​bugzilla.novell.com/​show_bug.cgi?​id=777418 ))
   openldap2   openldap2
-Bug in openSuSE 12.3 und 13.1 (( https://​bugzilla.novell.com/​show_bug.cgi?​id=777418 )) 
  
-Fedora, ​CentOS 6: +CentOS ​(ab 6)
-  openldap-servers+  openldap-servers ​openldap-clients
  
-===== Minimal-Konfiguration =====+===== Initiale ​Konfiguration ===== 
 +==== Debian ​====
 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 29: Zeile 29:
 <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:​ +==== CentOS ​(7==== 
-  ​cat /usr/share/doc/slapd/examples/slapd.conf > /etc/ldap/slapd.conf+   
 +  shopt -s dotglob 
 +  rm -rf /​var/​lib/​ldap/​* 
 +  rm -rf /​etc/​openldap/​slapd.d/* 
 +  ​cp -a /usr/share/openldap-servers/slapd.ldif /usr/​share/​openldap-servers/slapd.ldif.orig 
 +  vim  ​/usr/share/​openldap-servers/slapd.ldif 
 +<file ldif> 
 +olcAccess: to dn.base=""​ by * read 
 +olcAccess: to dn.base="​cn=Subschema"​ by * read 
 +olcAccess: to * 
 +        by self write 
 +        by users read 
 +        by anonymous auth 
 +
 +# Server status monitoring 
 +#
  
-''/​etc/​default/​slapd'' ​( Debian 6.0 ) +dnolcDatabase=monitor,​cn=config 
-<​file>​ +objectClass:​ olcDatabaseConfig 
-SLAPD_CONF=/​etc/​ldap/​slapd.conf +olcDatabase:​ monitor 
-</​file>​+olcAccess: to *  
 +  by dn.base="​gidNumber=0+uidNumber=0,​cn=peercred,​cn=external,​cn=auth"​ read  
 +  by dn.base="​cn=admin,​dc=example,​dc=net"​ read 
 +  by * none
  
-Die wichtigsten Einstellungen für ''​slapd'':​+
 +# Backend database definitions 
 +#
  
-''/​etc/​ldap/​slapd.conf'' ​(Debian) +dnolcDatabase=hdb,​cn=config 
- +objectClass:​ olcDatabaseConfig 
-''/​etc/​openldap/​slapd.conf''​ (SuSE, Fedora) +objectClass:​ olcHdbConfig 
-<​file>​ +olcDatabase:​ hdb 
-include ​        /​etc/​openldap/​schema/​core.schema +olcSuffix: dc=linuxhotel,​dc=de 
-include ​        /​etc/​openldap/​schema/​cosine.schema +olcRootDN: cn=admin,​dc=linuxhotel,​dc=de 
-include ​        /etc/openldap/schema/​inetorgperson.schema +olcDbDirectory: ​/var/lib/ldap 
-include ​        /​etc/​openldap/​schema/​nis.schema+olcDbIndex: objectClass eq,pres 
 +olcDbIndex: ou,​cn,​mail,​surname,​givenname eq,pres,sub
 </​file>​ </​file>​
  
-Je nach Version der Distribution bzwvon OpenLDAP wird ein anderes Backend empfohlen+  /​usr/​libexec/​openldap/​convert-config.sh -f /​usr/​share/​openldap-servers/​slapd.ldif 
 +  cp /​usr/​share/​openldap-servers/​DB_CONFIG.example /​var/​lib/​ldap/​DB_CONFIG 
 +  systemctl start slapd 
 +  systemctl enable slapd
  
-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 =====
- 
 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: 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:
  
Zeile 138: Zeile 105:
 ===== slapd starten ===== ===== slapd starten =====
 SuSE, Centos, Fedora: ​ SuSE, Centos, Fedora: ​
-  ​/​etc/​init.d/​ldap restart+  ​service ​ldap restart
   chkconfig ldap on   chkconfig ldap on
  
 Debian: Debian:
-  ​/​etc/​init.d/​slapd restart+  ​service ​slapd restart
  
-==== Fehler beim Starten finden ​==== +===== root-Zugriff auf LDAP-Server über Socket =====
-(unter SuSE /​usr/​lib/​openldap/​slapd) +
-  slapd -d -1+
  
-====== Client ldapsearch ====== +<file txt ~/.ldaprc> 
-===== Benötigte Pakete ===== +URI       ldapi:/// 
-Debian: +BASE      cn=config 
-  ldap-utils +SASL_MECH EXTERNAL
-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 '​+'​ +(unter SuSE /​usr/​lib/​openldap/​slapd) 
- +  ​slapd --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 +(hier für DebianBei CentOS heißen Nutzer und Gruppe ldap statt openldap) 
-  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 139:
   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 ​--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 
-)) 
lpi2/ldap.txt · Zuletzt geändert: 2024/03/21 10:58 von ingo_wichmann