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

Nächste Überarbeitung
Vorherige Überarbeitung
Nächste Überarbeitung Beide Seiten, nächste Überarbeitung
lpi2:ldap [2014/06/27 10:28]
127.0.0.1 Externe Bearbeitung
lpi2:ldap [2018/06/20 21:56]
markus_skowronek [LDAP Daten sichern und wieder herstellen]
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 :+===== root-Zugriff auf LDAP-Server über Socket =====
  
-<​file>​ +<​file ​txt ~/.ldaprc
-moduleload ​     back_hdb+URI       ​ldapi:///​ 
 +BASE      cn=config 
 +SASL_MECH EXTERNAL
 </​file>​ </​file>​
 +  ldapsearch -LLL '​(olcSuffix=*)'​ olcSuffix
  
-<​file>​ +Mehr dazu unter [[ldap-config]]
-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 115: Zeile 92:
 DOMAIN="​dc=linuxhotel,​dc=de"​ DOMAIN="​dc=linuxhotel,​dc=de"​
 DC=${DOMAIN%%,​*} DC=${DOMAIN%%,​*}
-PASSWORD=`slappasswd -s villa`+PASSWORD=$(slappasswd -s villa)
 slapadd <<​LDIF slapadd <<​LDIF
 </​code>​ </​code>​
Zeile 138: Zeile 115:
 ===== 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 ==== ==== Fehler beim Starten finden ====
Zeile 148: Zeile 125:
   slapd -d -1   slapd -d -1
  
-====== ​Client ldapsearch ​====== +====== ​Tips & Tricks ​======
-===== Benötigte Pakete ===== +
-Debian: +
-  ldap-utils +
-SuSE: +
-  openldap2-client +
-Fedora, CentOS 6: +
-  openldap-clients+
  
-===== Testen ​===== +===== LDAP Daten sichern und wieder herstellen ​===== 
-Der OpenLDAP Server sollte nun z.B. mit ''​ldapsearch''​ die oben eingegebenen Werte zurückliefern:​+(hier für DebianBei CentOS heißen Nutzer und Gruppe ldap statt openldap)
  
-  ​ldapsearch -x -W -b dc=linuxhotel,​dc=de -H ldap://​localhost -D cn=admin,​dc=linuxhotel,​dc=de +  ​service ​slapd stop 
- +  slapcat -b "dc=linuxhotel,​dc=de" ​> sicherung.ldif
-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>​ +
- +
-Der obige Aufruf verkürzt sich dadurch zu: +
-  ldapsearch -x -W +
- +
-==== Eigenschaften des LDAP-Server abfragen ==== +
-  ldapsearch -x -W -b ''​ -s base '​+'​ +
- +
-==== Schemata des LDAP-Server abfragen ==== +
-  ldapsearch -x -W -b '​cn=Subschema'​ -s base '​+'​ +
- +
-====== Tips & Tricks ====== +
- +
-===== Backup und Restore ===== +
-  /​etc/​init.d/​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 138:
   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