Gestion centralisée des comptes
Le serveur LDAP
L'installation d'OpenLDAP n'est pas détaillée dans cet article, mais si vous ne savez pas comment faire, aidez vous de cette partie de l'essentiel sur OpenLDAP : http://www.labo-linux.org/index.php?page=essentiels&id=416&p=4#s4.
2.1 Configuration du serveur LDAP
Nous supposons que la configuration de votre serveur LDAP se situe dans le répertoire /etc/openldap.
Nous allons créer un utilisateur et un groupe spécial pour notre serveur LDAP, afin qu'il ne tourne pas en tant que root. Ce groupe et cet utilisateur seront nommés : _ldap.
groupadd _ldap
useradd -g _ldap -d /dev/null -s /dev/null _ldap
2.2 Création des certificats SSL
Etant donné que notre annuaire LDAP contient les mots de passe de nos utilisateurs et qu'ils vont circuler sur le réseau, nous allons crypter les communications entre les clients et le serveur LDAP en utilisant le protocole ldaps.
Pour cela nous allons créer un certificat SSL pour notre serveur. Ce sera un certificat auto-signé. Nous déposerons les certificats et les clés dans le répertoire /etc/openldap/ssl.
Commençons par créer le répertoire :
mkdir -p /etc/openldap/ssl
cd /etc/openldap/ssl
Créons ensuite une clé de 2048bits pour notre serveur LDAP :
openssl genrsa -des3 -out ldap.key 2048
Nous allons ensuite créer un Certificate Request et le signer avec la clé du serveur LDAP :
openssl req -new -key ldap.key -out ldap.csr
openssl x509 -req -days 365 -set_serial 1 -in ldap.csr -signkey ldap.key -out ldap.crt
Pour des raisons de sécurité, nous allons changer le propriétaire et le groupe propriétaire de ces fichiers ainsi que les permissions afin de protéger notre clé et notre certificat.
chown –R _ldap:_ldap /etc/openldap/ssl
chmod 700 /etc/openldap/ssl
2.3 Fichier de configuration du serveur LDAP
Le fichier de configuration d'OpenLDAP (/etc/openldap/slapd.conf) est donc le suivant :
Note : nous utilisons le domaine labo-linux.org (en format LDAP : dc=labo-linux,dc=org), adaptez le suivant votre organisation. N'oubliez pas de le changer à chaque fois que nous effectuons une opération sur le serveur LDAP.
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/nis.schema
include /etc/openldap/schema/inetorgperson.schema
pidfile /var/slapd.pid
argsfile /var/slapd.args
modulepath /usr/local/libexec/openldap
moduleload back_ldbm.la
password-hash {SSHA}
TLSCertificateFile /etc/openldap/ssl/ldap.crt
TLSCertificateKeyFile /etc/openldap/ssl/ldap.key
TLSCACertificateFile /etc/openldap/ssl/ldap.crt
# Access control lists
access to dn.subtree="ou=Users,dc=labo-linux,dc=org" \
attr=userPassword,cn,loginShell,gecos,shadowLastChange,\
shadowMax,shadowMin,shadowWarning,shadowInactive,shadowExpire,shadowFlag
by self write
by dn="cn=auth,ou=ProgAccess,dc=labo-linux,dc=org" read
by anonymous auth
access to dn.subtree="ou=Users,dc=labo-linux,dc=org" \
attr=uid,uidNumber,gidNumber,description,objectClass
by dn="cn=auth,ou=ProgAccess,dc=labo-linux,dc=org" read
by dn.children="ou=Users,dc=labo-linux,dc=org" read
by anonymous auth
access to dn.subtree="ou=Groups,dc=labo-linux,dc=org" attr=objectClass,memberUID,gidNumber
by dn="cn=auth,ou=ProgAccess,dc=labo-linux,dc=org" read
by dn.children="ou=Users,dc=labo-linux,dc=org" read
access to dn.subtree="ou=Hosts,dc=labo-linux,dc=org" attr=ipHostNumber,cn
by dn="cn=auth,ou=ProgAccess,dc=labo-linux,dc=org" read
by dn.children="ou=Users,dc=labo-linux,dc=org" read
access to dn.subtree="ou=ProgAccess,dc=labo-linux,dc=org"
by users none
by anonymous auth
access to *
by users read
by anonymous auth
database ldbm
suffix "dc=labo-linux,dc=org"
rootdn "cn=Manager,dc=labo-linux,dc=org"
directory /var/openldap-data
index objectClass eq
Note : vous pouvez télécharger ce fichier en cliquant ici.
Pour plus d'informations sur ce fichier, consultez l'essentiel sur OpenLDAP : http://www.labo-linux.org/index.php?page=essentiels&id=416&p=5.
2.4 Mot de passe du Manager de l'annuaire
Le manager de l'annuaire est l'équivalent de l'utilisateur root sur un système Linux. Nous allons donc lui donner un mot de passe afin de pouvoir rajouter les objets de base dans l'annuaire.
Nous allons donc utiliser la commande slappasswd afin de crypter notre mot de passe :
slappasswd
password : <votre mot de passe>
{SSHA}OIOnnTT/laqzDGDnN3434Is1bGtstRCS2aG3
Nous devons donc rajouter ce mot de passe crypté à la fin de notre fichier de configuration.
echo "rootpw {SSHA}OIOnnTT/laqzDGDnN3434Is1bGtstRCS2aG3" >> /etc/openldap/slapd.conf