Openldap
Reindexation / REsynchro[modifier]
Il arrive que le serveur perde ses indexes (grosse MAJ par exemple). 2 solutions :
Dans tous les cas, arrêter les annuaires clients pour éviter les soucis (ldap-webcontrat / ldap / ldap-dev) (/etc/init.d/slapd stop)
* Arreter le serveur ldap (/etc/init.d/slapd stop) * Lancer la réindexation : slapindex ---> TRES LONG !
Si le slapindex ne suffi pas ou si l'annuaire est totalement désynchronisé, il faut supprimer la base de donnée et la recréer :
/etc/init.d/slapd stop rm -Rf /var/lib/ldap-people/* /etc/init.d/slapd start
Attention, va prendre plusieurs heures mais c'est le seul moyen de repartir au propre.
Une fois terminé, relancer les clients ldap-webcontrat / ldap / ldap-dev) (/etc/init.d/slapd start)
Installation[modifier]
Pour commencer, faites ouvrir le port 389 vers et depuis ldap.dr15.cnrs.fr Attention, les configuration suivantes laisse accès en lecture a tout les monde, ne faites ouvrir le port que vers la DR15 et vos autres serveurs mais pas au monde entier !
Base DN: ou=people,dc=cnrs,dc=fr login : cn=admin,ou=people,dc=cnrs,dc=fr mot de passe : AniMaT!on
On travaille dans root :
#cd /root
Préparation de la machine et des dépendances :
#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
Configuration
[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-overlays=yes --enable-accesslog=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 --enable-ldap=yes --enable-translucent=yes
./configure --enable-bdb=yes --enable-crypt=yes --with-tls=yes --enable-spaswd=yes --enable-overlays=yes --enable-accesslog=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 --enable-ldap=yes --enable-translucent=yes
./configure --enable-bdb=yes --enable-crypt=yes --with-tls=yes --enable-spaswd=yes --enable-overlays=yes --enable-accesslog=yes \ --enable-cleartext=yes --prefix=/usr --libexecdir=/usr/sbin --sysconfdir=/etc --localstatedir=/var/lib --enable-ldap=yes \ --enable-translucent=yes --enable-meta=yes
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
#######################################################################
# Specific Directives for database #1, of type bdb:
# Database specific directives apply to this databasse until another
# 'database' directive occurs
database bdb
# The base of your directory in database #1
suffix "ou=People,dc=cnrs,dc=fr"
# rootdn directive for specifying a superuser on the database. This is needed
# for syncrepl.
rootdn "cn=admin,ou=People,dc=cnrs,dc=fr"
rootpw "secret"
# Where the database file are physically stored for database #1
directory "/var/lib/ldap-people"
# For the Debian package we use 2MB as default but be sure to update this
# value if you have plenty of RAM
# FAIRE DES TESTS EN FONCTION DE VOTRE SERVEUR
#dbconfig set_cachesize 0 2097152 0
#dbconfig set_cachesize 0 268435456 0
#dbconfig set_cachesize 0 1073741824 0
#Pour mon serveur virtuel avec 1 Go de Ram et 2 CPU virtuels :
dbconfig set_cachesize 0 536870912 0
dbconfig set_flags DB_LOG_AUTOREMOVE
# Number of objects that can be locked at the same time.
dbconfig set_lk_max_objects 1500
# Number of locks (both requested and granted)
dbconfig set_lk_max_locks 1500
# Number of lockers
dbconfig set_lk_max_lockers 1500
# 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
# Save the time that the entry gets modified, for database #1
lastmod on
#overlay syncprov
#id du client (numero DR)
syncrepl rid=XXX XXX =numeroDR
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-drXXX,ou=people,dc=cnrs,dc=fr"
credentials="Mot de passe"
# Where to store the replica logs for database #1
# replogfile /var/lib/ldap/replog
# The userPassword by default can be changed
# by the entry owning it if they are authenticated.
# Others should not be able to see it, except the
# admin entry below
# 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
# Ensure read access to the base for things like
# supportedSASLMechanisms. Without this you may
# have problems with SASL not knowing what
# mechanisms are available and the like.
# Note that this is covered by the 'access to *'
# ACL below too but if you change that as people
# are wont to do you'll still need this if you
# want SASL (and possible other things) to work
# happily.
access to dn.base="" by * read
# The admin dn has full write access, everyone else
# can read everything.
access to *
by dn="cn=admin,ou=People,dc=cnrs,dc=fr" write
by * read
# For Netscape Roaming support, each user gets a roaming
# profile for which they have write access to
#access to dn=".*,ou=Roaming,o=morsnet"
# by dn="cn=admin,dc=cnrs,dc=fr" write
# by dnattr=owner write
Préparer les répertoires :
# mkdir /var/run/slapd/ # mkdir /var/lib/ldap-people
Démarrer le demon :
# slapd
La replication devrait commencer avec le serveur de Bordeaux, vous pouvez le suivre en fait des requetes sur la base :
# ldapsearch -x -b "ou=People,dc=cnrs,dc=fr"
Attention, la requete peut etre longue si vous avez modifier le paramètre sizelimit, elle liste la totalite du personnel du cnrs (environ 107000 entrées)
Pensez a lire le manuel ...
Utilisateurs[modifier]
Acces depuis toute la DR : lecture
Acces depuis l'IBMM : lecture de (ou=UMR5247*) contact : Remis Dernat, 04 67 66 81 66
Envoie des fichiers vers l'IBMM
Envoie des fichiers vers Lattes :
dr13@193.52.26.197 pass : !KegmevhevEt9
Ajout Attribut[modifier]
Se connecter sur le serveur ldap.
- éditer le fichier /etc/openldap/schema.perso/DR13.schema
Ajouter à la fin l'attribut (faire un copier-coller du précédent) penser à incrémenter l'identifiant unique (première ligne) Name => renseigner le nom de l'attribut (ne pas mettre d'accent) DSC => renseigner la libelle le reste ne change pas
- éditer le fichier /etc/openldap/schema.perso/cnrs.schema
Aller à l'objectClass cnrsPersonn et ajouter à la liste MAY le nom de l'attribut en mettant $ devant.
- Pour indexer le nouvel attribut, éditer /etc/openldap/slapd.conf
Aller sur index et ajouter l'attribut à la suite. Aller aussi sur translucent_Local et ajouter l'attribut à la fin de la ligne (indique que la recherche de cet attribut doit se faire sur le ldap local)
- redémarrer ldap
#/etc/init.d/slapd stop #slapd -d 255 (permet d'éditer les logs, quand on arrive sur listen, faire ctrl C) #/etc/init.d/slapd start
Firewall[modifier]
Pour modifier les règles, éditer le fichier /etc/firewall-start
Relancer le serveur :
/etc/init.d/firewall restart
Voir les règles :
/etc/init.d/firewall status
Arret du Firewall (uniquement pour test)
/etc/init.d/firewall stop