Installer un annuaire LDAP (OpenLDAP)
LDAP est un protocole d'accès aux annuaires allégés (Lightweight Directory Access Protocol).
Voir Annuaires LDAP et Protocole LDAP
D'importantes différences existent entre les versions 1.2.x et 2.0.x d'OpenLDAP. J'essaierai de traiter de ces différences autant que possible.
OpenLDAP
http://www.openldap.org/
openldap-1.2.12 -- 10 mai 2001, 1009 ko (.tgz)
openldap-2.0.11 -- 24 mai 2001, 1687 ko (.tgz)
Le projet OpenLDAP est un effort collaboratif pour fournir une suite d'applications et d'outils de développement LDAP robuste, commercialisable, pleinement fonctionnelle, et Open Source. Le projet est géré par une communauté de volontaires répartis à travers le monde qui utilise Internet pour communiquer, planifier et développer la suite OpenLDAP et sa documentation associé.
Le projet OpenLDAP est heureux de vous annoncer la disponibilité d'OpenLDAP 2.0, une suite de serveurs, clients, utilitaires et outils de développement utilisant le protocole LDAP (Lightweight Weight Directory Protocol).
OpenLDAP est dérivé du logiciel LDAP de l'Université du Michigan version 3.3.
Cette version intègre les composants suivants :
- slapd - un serveur d'annuaire LDAP autonome
- slurpd - un serveur de réplication LDAP autonome
- -lldap - une bibliothèque cliente LDAP
- -llber - une bibliothèque allégé pour l'encodage/décodage BER/DER
- outils LDIF - outils de conversion de données à utiliser avec slapd
slapadd, slapcat, slapindex
- passerelles LDAP - passerelles finger, gopher, email vers LDAP
- in.xfingerd - une passerelle finger-vers-LDAP
- go500 - une passerelle gopher-vers-LDAP pour la recherche
- go500gw - une passerelle gopher-vers-LDAP pour la recherche et la navigation
- messager LDAP - agents de livraison de courrier compatible sendmail
- fax500 - un messager compatible LDAP qui supporte l'impression distante
- mail500 - un messager compatible LDAP
- maildap - un messager qui effectue des résolution X.500 via LDAP
- rcpt500 - un répondeur de requêtes email-vers-LDAP
- outils LDAP - une collection d'utilitaires en ligne de commande LDAP
ldapdelete, ldapmodify, ldapmodrdn, ldappasswd, ldapsearch
Il y a en plus quelques composants contribués :
- gtk-tool - une interface de démonstration LDAP écrite en GTK+
- ldapTCL - le kit de développement LDAP de NeoSoft en TCL
- php3-tool - une interface de démonstration LDAP écrite en PHP3
- saucer - une simple programme client en ligne de commande
nss_ldap
http://www.padl.com/nss_ldap.html
nss_ldap-153 -- 30 mai 2001 , 148 ko (.tar.gz)
La résolution des entités défini dans la RFC 2307 est généralement effectuée via un ensemble d'appels de bibliothèques C UN*X (tel que getpwnam() pour retourner les attributs d'un utilisateur). Le module nss_ldap fournit un moyen aux stations Linux et Solaris d'accéder aux informations (tel que utilisateurs, hôtes, et groupes) depuis un annuaire LDAP. Le module est l'implémentation de référence de la RFC 2307, et a été étudié par des vendeurs comme Sun (qui a développé l'interface "Nameservice Switch" originale).
pam_ldap
http://www.padl.com/pam_ldap.html
pam_ldap-116 -- 14 juin 2001 , 93 ko (.tar.gz)
Le module pam_ldap fournit aux stations Linux et Solaris un moyen de s'identifier auprés de répertoires LDAP, et de changer ses mots de passes dans le répertoire.
Compilez et installez OpenLDAP 1.2.x.
Le plus facile est d'utiliser les paquets propre à votre distribution GNU/Linux.
bash$ lynx ftp://ftp.OpenLDAP.org/pub/OpenLDAP/openldap-release/openldap-1.2.12.tgz
bash$ tar xvzf openldap-1.2.12.tgz
bash$ cd openldap-1.2.12
bash$ CFLAGS="-O2" ./configure --prefix=/usr --sysconfdir=/etc \
--libexecdir=/usr/sbin --localstatedir=/var/run \
--enable-wrappers=yes --enable-passwd=yes --enable-shell=yes \
--enable-shared
bash$ make
bash$ make install
bash$ cd ..
bash$ rm -rf openldap-1.2.12
|
Les fichiers de configuration se situe dans le répertoire /etc/openldap/
slapd.conf est le fichier de configuration du démon slapd.
Modifiez la racine de l'annuaire, l'identifiant de l'administrateur et son mot de passe.
Attention : Ce fichier contient le mot de passe de l'administrateur. Il doit donc être en mode 0600.
OpenLDAP 1.2.x
OpenLDAP 2.0.x
ldap.conf est le fichier de configuration des utilitaires LDAP en ligne de commande.
Modifiez la racine de l'annuaire.
OpenLDAP 1.2.x
OpenLDAP 2.0.x
OpenLDAP 1.2.x : ldapfilter.conf
OpenLDAP 2.0.x : ldapfilter.conf
OpenLDAP 1.2.x : ldapsearchprefs.conf
OpenLDAP 2.0.x : ldapsearchprefs.conf
OpenLDAP 1.2.x : ldaptemplates.conf
OpenLDAP 2.0.x : ldaptemplates.conf
Un excellent site pour naviguer dans l'arborescence des objets LDAP : http://ldap.hklc.com/
D'autres schéma peuvent être trouvés à l'adresse http://www.openldap.org/its/.
L'inclusion de ces définitions est indispensable. Elle implémente les schémas présent dans :
RFC1274 : The COSINE and Internet X.500 Schema
RFC2079 : Definition of an X.500 Attribute Type and an Object Class to Hold Uniform Ressource Identifiers (URIs)
RFC2247 : Uning Domains in LDAP/X.500 Distinguished Names
RFC2251 : Lightweight Directory Access Protocol (v3)
RFC2252 : Lightweight Directory Access Protocol (v3): Attribute Syntax Definitions
RFC2253 : Lightweight Directory Access Protocol (v3): UTF-8 String Representation of Distinguished Names
RFC2254 : The String Representation of LDAP Search Filters
RFC2255 : The LDAP URL Format
RFC2256 : A Summary of the X.500(96) User Schema for use with LDAPv3
RFC2377 : Naming Plan for Internet Directory-Enabled Applications
RFC2589 : Lightweight Directory Access Protocol (v3): Extensions for Dynamic Directory Services
OpenLDAP 1.2.x : slapd.at.conf et slapd.oc.conf
OpenLDAP 2.0.x : core.schema
L'inclusion de ces définitions est recommandé. Elle implémente les schémas présent dans :
RFC1274 : The COSINE and Internet X.500 Schema
OpenLDAP 2.0.x : cosine.schema
L'inclusion de ces définitions est recommandé. Elle implémente les schémas présent dans :
RFC2798 : Definition of the inetOrgPerson LDAP Object Class
OpenLDAP 2.0.x : inetorgperson.schema
Cette définition implémente les schémas présent dans :
RFC2307 : An Approach for Using LDAP as a Network Information Service
RFC2252 : Lightweight Directory Access Protocol (v3): Attribute Syntax Definitions
Nécessite "core" et COSINE.
OpenLDAP 1.2.x : nis.at.conf ; nis.oc.conf ; others_nis.at.conf et others_nis.oc.conf
OpenLDAP 2.0.x : nis.schema
OpenLDAP 1.2.x : netscape_roaming.at.conf et netscape_roaming.oc.conf
Cette définition implémente les schémas présent dans :
RFC2713 : Schema for Representing Java(tm) Objects in an LDAP Directory
OpenLDAP 2.0.x : java.schema
Cette définition implémente les schémas présent dans :
RFC2714 : Schema for Representing CORBA Objects in an LDAP Directory
OpenLDAP 2.0.x : corba.schema
OpenLDAP 2.0.x : krb5-kdc.schema
Nécessite "core", COSINE et InetOrgPerson.
OpenLDAP 2.0.x : openldap.schema
OpenLDAP 2.0.x : misc.schema
OpenLDAP 2.0.x : nadf.schema
OpenLDAP 1.2.x : debian.at.conf et debian.oc.conf
OpenLDAP 1.2.x : mail_netscape.at.conf et mail_netscape.oc.conf
Avant tout, changez le mot de passe de l'administrateur de l'annuaire et vérifiez que le fichier slapd.conf n'est pas lisible par le monde (mode 600).
Une bonne partie de la sécurité consiste à écrire les bonnes règles d'accès aux données de l'annuaire via la directive access du fichier slapd.conf.
Maintenant que openldap est correctement configuré. Démarrez-le.
$ slapd
Si tout ne se passe pas correctement, lancez-le en mode de débogage. Les messages d'erreur s'afficheront à l'écran.
$ slapd -d 255
Pour créer la base, il faut partir d'un fichier LDIF initial qui contient au minimum la racine et le rootdn. Appelez ce fichier racine.ldif
dn: dc=exemple,dc=fr
objectClass: top
objectClass: dcObject
dc: exemple
dn: cn=Manager,dc=exemple,dc=fr
objectClass: organizationalRole
cn: Manager
|
Incluez ce fichier dans l'annuaire.
$ ldapadd -f racine.ldif -D "cn=Manager,dc=exemple,dc=fr" -w secret
Récupérez le script de démarrage openldap.init.
$ cp openldap.init /etc/init.d/openldap
$ chmod 755 /etc/init.d/openldap
$ chown root.root /etc/init.d/openldap
$ chkconfig --add openldap
Slapd peut aussi être démarré via inetd, mais cette solution est réservé au cas d'un serveur LDAP tré peu sollicité.
Ajoutez dans inetd.conf :
ldap dgram tcp nowait root /usr/sbin/tcpd /usr/sbin/slapd
et rechargez inetd.
Définissez, dans le fichier slapd.conf, une directive replog par annuaire que vous souhaitez sauvegarder.
Pour répliquer l'annuaire sur un annuaire esclave, utilisez la directive replica.
Les statistiques d'utilisation du serveur LDAP sont stockées dans un objet spécial "cn=monitor"
$ ldapsearch -s base -b'cn=monitor' 'objectclass=*'
CN=MONITOR
version=slapd 1.2.11-Release (Fri Jun 23 11:07:26 EDT 2000)
threads=1
connection=7 : 20010620100353Z : 33 : 33 : cn=Manager,dc=exemple,dc=fr :
connection=9 : 20010613073814Z : 279 : 279 : NULLDN :
connection=10 : 20010613073814Z : 559 : 559 : NULLDN :
connection=12 : 20010613073814Z : 2 : 2 : cn=Manager,dc=exemple,dc=fr :
connection=14 : 20010621084547Z : 1 : 1 : NULLDN :
connection=15 : 20010621093944Z : 2 : 1 : NULLDN :
connection=16 : 20010620094936Z : 40 : 40 : cn=Manager,dc=exemple,dc=fr :
connection=17 : 20010620094403Z : 39 : 39 : cn=Manager,dc=exemple,dc=fr :
connection=18 : 20010620094403Z : 35 : 35 : cn=Manager,dc=exemple,dc=fr :
connection=20 : 20010615063058Z : 2 : 2 : cn=Manager,dc=exemple,dc=fr :
connection=21 : 20010620095039Z : 37 : 37 : cn=Manager,dc=exemple,dc=fr :
connection=22 : 20010614071357Z : 2 : 2 : cn=Manager,dc=exemple,dc=fr :
connection=23 : 20010614071357Z : 9 : 9 : cn=Manager,dc=exemple,dc=fr :
connection=24 : 20010620094936Z : 38 : 38 : cn=Manager,dc=exemple,dc=fr :
connection=25 : 20010620100353Z : 34 : 34 : cn=Manager,dc=exemple,dc=fr :
connection=26 : 20010615063058Z : 3 : 3 : cn=Manager,dc=exemple,dc=fr :
connection=27 : 20010620100353Z : 32 : 32 : cn=Manager,dc=exemple,dc=fr :
connection=28 : 20010620095039Z : 53 : 53 : cn=Manager,dc=exemple,dc=fr :
connection=30 : 20010620100352Z : 48 : 48 : cn=Manager,dc=exemple,dc=fr :
connection=45 : 20010621071617Z : 2 : 2 : cn=Manager,dc=exemple,dc=fr :
connection=46 : 20010614123338Z : 7 : 7 : cn=Manager,dc=exemple,dc=fr :
connection=47 : 20010621071617Z : 3 : 3 : cn=Manager,dc=exemple,dc=fr :
currentconnections=22
totalconnections=13270
dtablesize=1024
writewaiters=0
readwaiters=0
opsinitiated=38279
opscompleted=38278
entriessent=7238
bytessent=5462889
currenttime=20010621093944Z
starttime=20010613073813Z
nbackends=1
Migration Tools
http://www.padl.com/tools.html
MigrationTools-38 -- 21 mai 2001 , 12 ko (.tar.gz)
Pages de manuel