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
lpi2:ldap [2015/07/19 08:01]
ingo_wichmann
lpi2:ldap [2019/02/14 03:31] (aktuell)
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.1437292908.txt.gz · Zuletzt geändert: 2015/07/19 08:01 von ingo_wichmann