Installation du serveur LDAP

# aptitude install slapd ldap-utils
# dpkg-reconfigure slapd

Suivre les recommandations

On crée ensuite la structure de l'annuaire pour accueillir les utilisateurs et les groupes. Pour cela on crée le fichier /tmp/base.ldif:

dn: ou=People,dc=mondomaine,dc=tld
ou: People
objectClass: top
objectClass: organizationalUnit

dn: ou=Group,dc=mondomaine,dc=tld
ou: Group
objectClass: top
objectClass: organizationalUnit

On l'importe ensuite dans l'annuaire:

# ldapadd -D 'cn=admin, dc=mondomaine, dc=tld' -c -x -W -f /tmp/base.ldif

Récupération des utilisateurs et groupes actuels

Pour cela on va utiliser une série de scripts permettant contenus dans le paquet migrationtools:

# aptitude install migrationtools

Éditer le fichier /etc/migrationtools/migrate_common.pl et suivre les recommandations de http://wiki.gcu.info/doku.php?id=linux:auth_ldap

Récupération des information d'utilisateur et de groupe du système dans un fichier LDIF permettant un import facile dans l'annuaire LDAP:

# cd /usr/share/migrationtools
# ./migrate_passwd.pl /etc/passwd | grep -v 'objectClass: account' > /tmp/passwd.ldif
# ./migrate_group.pl /etc/group /tmp/group.ldif

Les utilisateurs qui seront inclus dans l'annuaire sont enregistrés dans le fichier /tmp/passwd.ldif et les groupes dans /tmp/group.ldif.

Ajouter pour chaque utilisateur

objectClass: account

Avant les autres objectClass, sinon erreur lors de l'import du type:

ldap_add: Object class violation (65)
additional info: no structural object class provided

On ajoute ensuite les utilisateurs et groupes dans l'annuaire:

# ldapadd -D 'cn=admin, dc=mondomaine, dc=tld' -c -x -W -f /tmp/passwd.ldif
# ldapadd -D 'cn=admin, dc=mondomaine, dc=tld' -c -x -W -f /tmp/group.ldif

Utilisateur en lecture de la base pour authentification

Éditer /etc/ldap/slapd.conf:

rootdn          "cn=admin,dc=mondomaine,dc=tld"
# service slapd restart

Création des information de l'utilisateur nss dans un nouveau fichier /tmp/nss.ldif:

dn: cn=nss,dc=mondomaine,dc=tld
objectClass: organizationalRole
objectClass: simpleSecurityObject
cn: nss
description: LDAP NSS user for user-lookups
userPassword:

Obtention du mot de passe:

slappasswd -h {CRYPT}

Ajout de l'utilisateur de lecture:

ldapadd -D 'cn=admin, dc=mondomaine, dc=tld' -c -x -W -f /tmp/nss.ldif