Openldap

De Wiki_DR13
Aller à : navigation, rechercher

Installation

On travaille dans root :

#cd /root

Préparation de la machine et des dependances :

 #apt-get install libdb4.4 libdb4.4-dev libssl-dev openssl make gcc libsasl2-dev

Recuperation et décompression du logiciel :

#wget ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/openldap-2.3.36.tgz
#tar xvzf openldap-2.3.36.tgz


[root@ldap root]#cd openldap-2.3.36
[root@ldap openldap-2.3.36]# CPPFLAGS=-DSLAPD_MULTIMASTER ./configure --enable-bdb=yes --enable-crypt=yes --with-tls=yes  --enable-spaswd=yes \
--enable-cleartext=yes --enable-dyngroup=yes  --enable-dynlist=yes --enable-refint=yes --enable-sasl=no  \
--prefix=/usr --libexecdir=/usr/sbin --sysconfdir=/etc --localstatedir=/var/lib 

Comme il est ecrit on fait :

[root@ldap openldap-2.3.36]# make depend

Puis on compile et on installe :

[root@ldap openldap-2.3.36]# make -j 4
[root@ldap openldap-2.3.36]# make install

Il faut maintenant recuperer le fichier schema du cnrs et l'ajouter a notre annuaire :

# wget http://xxx/cnrs.schema.gz
# gunzip cnrs.schema.gz
# mv cnrs.schema /etc/openldap/schema

Editons le fichier de config afin de préparer le serveur :

# vim /etc/openldap/slapd.conf

Voici mon fichier commenté :

# This is the main slapd configuration file. See slapd.conf(5) for more
# info on the configuration options.

#######################################################################
# Global Directives:

# Features to permit
#allow bind_v2

# Schema and objectClass definitions
include         /etc/openldap/schema/core.schema
include         /etc/openldap/schema/cosine.schema
include         /etc/openldap/schema/nis.schema
include         /etc/openldap/schema/inetorgperson.schema
include         /etc/openldap/schema/cnrs.schema
include         /etc/openldap/schema/dyngroup.schema
 

# Where the pid file is put. The init.d script
# will not stop the server if you change this.
pidfile         /var/run/slapd/slapd.pid

# List of arguments that were passed to the server
argsfile        /var/run/slapd/slapd.args

# Read slapd.conf(5) for possible values
loglevel       0

# Where the dynamically loaded modules are stored
#modulepath     /usr/lib/ldap
#moduleload     back_bdb
#moduleload      dyngroup

#overlay         dynlist
#dynlist-attrset  groupOfURLs memberURL member

# The maximum number of entries that is returned for a search operation
sizelimit 500
# The tool-threads parameter sets the actual amount of cpu's that is used
# for indexing.
tool-threads 1

#######################################################################
# Specific Backend Directives for bdb:
# Backend specific directives apply to this backend until another
# 'backend' directive occurs
backend         bdb
checkpoint 512 30

#######################################################################
  1. Specific Directives for database #1, of type bdb:
  2. Database specific directives apply to this databasse until another
  3. 'database' directive occurs

database bdb

  1. The base of your directory in database #1

suffix "ou=People,dc=cnrs,dc=fr"

  1. rootdn directive for specifying a superuser on the database. This is needed
  2. for syncrepl.

rootdn "cn=admin,ou=People,dc=cnrs,dc=fr"

  1. rootpw {SHA}T6ZDXBVFfbdydJAYiaDpYVysUz8=

rootpw "mo2passe"

  1. updatedn "cn=updateDR15,ou=People,dc=cnrs,dc=fr"
  1. Where the database file are physically stored for database #1

directory "/var/lib/ldap-people"

  1. For the Debian package we use 2MB as default but be sure to update this
  2. value if you have plenty of RAM
  3. dbconfig set_cachesize 0 2097152 0
  4. dbconfig set_cachesize 0 268435456 0

dbconfig set_cachesize 0 536870912 0

  1. dbconfig set_cachesize 0 1073741824 0


dbconfig set_flags DB_LOG_AUTOREMOVE

  1. Sven Hartge reported that he had to set this value incredibly high
  2. to get slapd running at all. See http://bugs.debian.org/303057
  3. for more information.
  1. Number of objects that can be locked at the same time.

dbconfig set_lk_max_objects 1500

  1. Number of locks (both requested and granted)

dbconfig set_lk_max_locks 1500

  1. Number of lockers

dbconfig set_lk_max_lockers 1500

  1. Indexing options for database #1

index objectClass eq,pres index ou,cn,mail,surname,givenname eq,pres,sub index uid eq,pres index entryCSN,entryUUID eq,pres index cnrsDelegation eq,pres,sub


  1. Save the time that the entry gets modified, for database #1

lastmod on

  1. overlay syncprov
  1. id du client (numero DR?)

syncrepl rid=013

       provider=ldap://ldap.dr15.cnrs.fr:389
       searchbase="ou=People,dc=cnrs,dc=fr"
       type=refreshAndPersist
       interval=00:00:15:00
       scop=sub
       schemachecking=off
       updatedn="cn=admin,ou=people,dc=cnrs,dc=fr"
       bindmethod=simple
       binddn="cn=sync-dr13,ou=people,dc=cnrs,dc=fr"
       credentials="?un106blE"
  1. Where to store the replica logs for database #1
  2. replogfile /var/lib/ldap/replog
  1. The userPassword by default can be changed
  2. by the entry owning it if they are authenticated.
  3. Others should not be able to see it, except the
  4. admin entry below
  5. These access lines apply to database #1 only

access to attrs=userPassword,shadowLastChange

       by dn="cn=admin,ou=People,dc=cnrs,dc=fr" write
       by anonymous auth
       by self write
       by * none
  1. by dn="cn=updateDR15,ou=People,dc=cnrs,dc=fr" write
  2. Ensure read access to the base for things like
  3. supportedSASLMechanisms. Without this you may
  4. have problems with SASL not knowing what
  5. mechanisms are available and the like.
  6. Note that this is covered by the 'access to *'
  7. ACL below too but if you change that as people
  8. are wont to do you'll still need this if you
  9. want SASL (and possible other things) to work
  10. happily.

access to dn.base="" by * read

  1. The admin dn has full write access, everyone else
  2. can read everything.

access to *

       by dn="cn=admin,ou=People,dc=cnrs,dc=fr" write
       by * read
  1. For Netscape Roaming support, each user gets a roaming
  2. profile for which they have write access to
  3. access to dn=".*,ou=Roaming,o=morsnet"
  4. by dn="cn=admin,dc=cnrs,dc=fr" write
  5. by dnattr=owner write