« Installation et configuration de OpenLDAP » : différence entre les versions

Aller à la navigation Aller à la recherche
aucun résumé des modifications
Aucun résumé des modifications
Aucun résumé des modifications
 
(4 versions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
[[Category:serveur]]
[[Category:debian]]
'''<span style="color: red;">Tuto plus vraiment à jour (a l'origine écrit sous debian lenny)</span>'''
[[Category:toupdate]]
=Installation=
=Installation=
Pour installer OpenLDAP :
Pour installer OpenLDAP :
Ligne 49 : Ligne 55 :


database        bdb
database        bdb
suffix          "dc=csnu,dc=org"
suffix          "dc=domain,dc=tld"
rootdn          "cn=admin,dc=csnu,dc=org"
rootdn          "cn=admin,dc=domain,dc=tld"
rootpw {SSHA}HJsgK682kFZk
rootpw {SSHA}HJsgK682kFZk
directory      "/srv/ldap/csnu/"
directory      "/srv/ldap/domain/"
#cache de 2MB
#cache de 2MB
dbconfig set_cachesize 0 2097152 0  
dbconfig set_cachesize 0 2097152 0  
Ligne 68 : Ligne 74 :
# These access lines apply to database #1 only
# These access lines apply to database #1 only
access to attrs=userPassword,shadowLastChange
access to attrs=userPassword,shadowLastChange
         by dn="cn=admin,dc=csnu,dc=org" write
         by dn="cn=admin,dc=domain,dc=tld" write
         by anonymous auth
         by anonymous auth
         by self write
         by self write
Ligne 84 : Ligne 90 :
#access to dn.base="" by * read
#access to dn.base="" by * read


access to dn.subtree="ou=pfoo,ou=addressbook,dc=csnu,dc=org"
access to dn.subtree="ou=pfoo,ou=addressbook,dc=domain,dc=tld"
         by dn="cn=pfoo,ou=users,dc=csnu,dc=org" write
         by dn="cn=pfoo,ou=users,dc=domain,dc=tld" write
         by * none
         by * none


access to dn="ou=users,dc=csnu,dc=org"
access to dn="ou=users,dc=domain,dc=tld"
         by * none
         by * none


access to dn="ou=addressbook,dc=csnu,dc=org"
access to dn="ou=addressbook,dc=domain,dc=tld"
         by dn.children="ou=users,dc=csnu,dc=org" read
         by dn.children="ou=users,dc=domain,dc=tld" read
         by * none
         by * none


access to dn="dc=csnu,dc=org"
access to dn="dc=domain,dc=tld"
         by dn="cn=admin,dc=csnu,dc=org" write
         by dn="cn=admin,dc=domain,dc=tld" write
by dn.children="ou=users,dc=csnu,dc=org" read
by dn.children="ou=users,dc=domain,dc=tld" read
         by * none
         by * none


access to *
access to *
         by dn="cn=admin,dc=csnu,dc=org" write
         by dn="cn=admin,dc=domain,dc=tld" write
         by * none
         by * none


Ligne 226 : Ligne 232 :
<pre>
<pre>
database        bdb
database        bdb
suffix          "dc=csnu,dc=org"
suffix          "dc=domain,dc=tld"
rootdn          "cn=admin,dc=csnu,dc=org"
rootdn          "cn=admin,dc=domain,dc=tld"
rootpw          {SSHA}Xe7Lb0SZi8B7F4CiqwRV8t3cm0R2XdYc
rootpw          {SSHA}Xe7Lb0SZi8B7F4CiqwRV8t3cm0R2XdYc
directory      "/srv/ldap"
directory      "/srv/ldap"
Ligne 264 : Ligne 270 :
# These access lines apply to database #1 only
# These access lines apply to database #1 only
access to attrs=userPassword,shadowLastChange
access to attrs=userPassword,shadowLastChange
         by dn="cn=admin,dc=csnu,dc=org" write
         by dn="cn=admin,dc=domain,dc=tld" write
         by anonymous auth
         by anonymous auth
         by self write
         by self write
Ligne 271 : Ligne 277 :
Petite explication :
Petite explication :
* <code>access to</code> : spécifie pour quoi on défini des accès. Dans le cas présent, c'est l'accès aux mots-de-passes
* <code>access to</code> : spécifie pour quoi on défini des accès. Dans le cas présent, c'est l'accès aux mots-de-passes
* <code>by dn="cn=admin,dc=csnu,dc=org" write</code> : autorise l'accès en écriture par le super-utilisateur admin. L'accès en écriture signifie un accès complet.
* <code>by dn="cn=admin,dc=domain,dc=tld" write</code> : autorise l'accès en écriture par le super-utilisateur admin. L'accès en écriture signifie un accès complet.
* <code>by anonymous auth</code> : autorise aux utilisateurs anonymes de se loguer
* <code>by anonymous auth</code> : autorise aux utilisateurs anonymes de se loguer
* <code>by self write</code> : autorise l'utilisateur à changer son propre mot-de-passe
* <code>by self write</code> : autorise l'utilisateur à changer son propre mot-de-passe
Ligne 289 : Ligne 295 :
Voici les permissions correspondantes pour cette structure :
Voici les permissions correspondantes pour cette structure :
<pre>
<pre>
access to dn.subtree="ou=pfoo,ou=addressbook,dc=csnu,dc=org"
access to dn.subtree="ou=pfoo,ou=addressbook,dc=domain,dc=tld"
         by dn="cn=pfoo,ou=users,dc=csnu,dc=org" write
         by dn="cn=pfoo,ou=users,dc=domain,dc=tld" write
         by * none
         by * none


access to dn="ou=users,dc=csnu,dc=org"
access to dn="ou=users,dc=domain,dc=tld"
         by * none
         by * none


access to dn="ou=addressbook,dc=csnu,dc=org"
access to dn="ou=addressbook,dc=domain,dc=tld"
         by dn.children="ou=users,dc=csnu,dc=org" read
         by dn.children="ou=users,dc=domain,dc=tld" read
         by * none
         by * none


access to dn="dc=csnu,dc=org"
access to dn="dc=domain,dc=tld"
         by dn="cn=admin,dc=csnu,dc=org" write
         by dn="cn=admin,dc=domain,dc=tld" write
         by dn.children="ou=users,dc=csnu,dc=org" read
         by dn.children="ou=users,dc=domain,dc=tld" read
         by * none
         by * none


access to *
access to *
         by dn="cn=admin,dc=csnu,dc=org" write
         by dn="cn=admin,dc=domain,dc=tld" write
         by * none
         by * none
</pre>
</pre>
Ligne 331 : Ligne 337 :
<pre>
<pre>
#Racine de la base
#Racine de la base
dn:    dc=csnu, dc=org
dn:    dc=domain, dc=tld
objectClass:    top
objectClass:    top
objectClass:    dcObject
objectClass:    dcObject
objectClass:    organization
objectClass:    organization
dc:    csnu
dc:    domain
o:      Commandement Spatial des Nations Unies
o:      your domain


# ou des utilisateurs de la base
# ou des utilisateurs de la base
dn: ou=users,dc=csnu,dc=org
dn: ou=users,dc=domain,dc=tld
objectClass: top
objectClass: top
objectClass: organizationalunit
objectClass: organizationalunit
Ligne 345 : Ligne 351 :


# utilisateur pfoo de la base
# utilisateur pfoo de la base
dn: cn=pfoo,ou=users,dc=csnu,dc=org
dn: cn=pfoo,ou=users,dc=domain,dc=tld
cn: pfoo
cn: pfoo
objectClass: top
objectClass: top
Ligne 353 : Ligne 359 :


# ou du carnet d'adresse global
# ou du carnet d'adresse global
dn:    ou=addressbook, dc=csnu, dc=org
dn:    ou=addressbook, dc=domain, dc=tld
objectClass:    top
objectClass:    top
objectClass:    organizationalUnit
objectClass:    organizationalUnit
Ligne 359 : Ligne 365 :


# ou du carnet d'adresse de pfoo
# ou du carnet d'adresse de pfoo
dn:    ou=pfoo, ou=addressbook, dc=csnu, dc=org
dn:    ou=pfoo, ou=addressbook, dc=domain, dc=tld
objectClass:    top
objectClass:    top
objectClass:    organizationalUnit
objectClass:    organizationalUnit
Ligne 368 : Ligne 374 :


Une fois le fichié créé et enregistré, il ne reste plus qu'à l'ajouter à la base de donnée:
Une fois le fichié créé et enregistré, il ne reste plus qu'à l'ajouter à la base de donnée:
<pre>ldapadd -x -W -D "cn=admin,dc=csnu,dc=org" -f votre_fichier</pre>
<pre>ldapadd -x -W -D "cn=admin,dc=domain,dc=tld" -f votre_fichier</pre>


=Modification du fichier /etc/default/slapd pour les ports à écouter=
=Modification du fichier /etc/default/slapd pour les ports à écouter=
Ligne 377 : Ligne 383 :
SLAPD_SERVICES="ldap://127.0.0.1:389/ ldap://213.186.47.110:389/ ldaps://213.186.47.110:636/"
SLAPD_SERVICES="ldap://127.0.0.1:389/ ldap://213.186.47.110:389/ ldaps://213.186.47.110:636/"
</pre>
</pre>
Si une autre ligne <code>SLAPD_SERVICES</code> est préexistante, supprimez la.<br></br>
Si une autre ligne <code>SLAPD_SERVICES</code> est préexistante, supprimez la.<br />
Le démon slapd écoutera donc en local sur le port 389 (nécessaire pour utiliser une interface de gestion web comme <code>phpldapadmin</code>), ainsi que sur l'ip du serveur sur les ports 389 (connexions normales) et 636 (connexions SSLs)
Le démon slapd écoutera donc en local sur le port 389 (nécessaire pour utiliser une interface de gestion web comme <code>phpldapadmin</code>), ainsi que sur l'ip du serveur sur les ports 389 (connexions normales) et 636 (connexions SSLs)


Ligne 387 : Ligne 393 :
Vous pouvez tester votre configuration en utilisant un client ldap. Pour ma part, j'ai fait mes tests avec le client <code>ldapbrowser</code>.
Vous pouvez tester votre configuration en utilisant un client ldap. Pour ma part, j'ai fait mes tests avec le client <code>ldapbrowser</code>.
Pour vous connecter :
Pour vous connecter :
* <code>Base DN</code> est la racine de votre base de donnée (dc=csnu,dc=org dans mon cas)
* <code>Base DN</code> est la racine de votre base de donnée (dc=domain,dc=tld dans mon cas)
* <code>User DN</code> est le chemin complet de votre utilisateur (cn=pfoo,ou=users,dc=csnu,dc=org dans mon cas)
* <code>User DN</code> est le chemin complet de votre utilisateur (cn=pfoo,ou=users,dc=domain,dc=tld dans mon cas)


=thunderbird=
=thunderbird=
4 231

modifications

Menu de navigation