24 février 2007
Système: Installation d'un annuaire LDAP sous OpenBSD
LDAP est un protocole d'annuaire très répandu dont l'utilisation est très variée, du simple carnet d'adresse à un annuaire d'entreprise tel qu'Active Directory. Son implémentation la plus courante dans le monde libre est OpenLDAP.
OpenBSD est un système d'exploitation de type Unix dérivé de NetBSD, focalisé sur la sécurité. Il est connu pour être le berceau d'OpenSSH, implémentation libre du protocole crypté Secure Shell. Il intègre un firewall clair et efficace, pf, ainsi qu'un protocole permettant de répartir plusieurs serveurs sur une même adresse IP, CARP.
Installation du paquet OpenLDAP sous OpenBSD
Le serveur LDAP fourni avec OpenBSD sous forme de paquet binaire utilise un backend obsolète pour sa base de données (voir http://www.openldap.org/faq/data/cache/756.html). Il est donc préférable (mais pas indispensable) de le recompiler à partir des ports, ce qui donne l'occasion de mettre le nez dans ce système commun aux différents BSD.
L'arborescence des ports d'OpenBSD 4.0 se trouve ici. Elle consiste en un ensemble de répertoires permettant de compiler automatiquement des logiciels à partir de leurs sources. Voici comment procéder:
# installation du système de ports si ce n'est pas déjà fait
cd /usr/
tar xvzf ports.tar.gz
# installation d'OpenLDAP. On précise ici que l'on souhaite installer
# la version serveur avec avec SUBPACKAGE="-server", et que le
# paquet sera compilé avec les options nécessaires pour utiliser le
# backend bdb via FLAVOR="bdb".
cd /usr/ports/databases/openldap
SUBPACKAGE="-server" FLAVOR="bdb" make install
Préparation du système
L'installation du serveur LDAP ne prépare pas le système à son utilisation, comme ce serait le cas par exemple avec une distribution linux classique. Il faut donc effectuer un certain nombre d'opérations:
# Préparation du répertoire où seront stockées les données
mkdir /var/openldap-data
chown -R _openldap:_openldap /var/openldap-data
chmod -R 700 /var/openldap-data
# Les fichiers d'informations sur le processus doivent être accessibles par
# le serveur qui sera lancé en tant qu'utilisateur _openldap
touch /var/run/slapd.args
chown _openldap:_openldap /var/run/slapd.args
touch /var/run/slapd.pid
chown _openldap:_openldap /var/run/slapd.pid
Configuration du serveur LDAP
La configuration du serveur se fait en éditant le fichier /etc/openldap/slapd.conf. En voici un exemple:
##
# slapd.conf
#
# Fichiers correspondant aux différents modèles d'objets stockés
# dans le répertoire LDAP
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/corba.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
# Fichiers d'informations sur le processus du service
pidfile /var/run/slapd.pid
argsfile /var/run/slapd.args
#################################
# Définitions concernant la base de données
#################################
# Type de base de données (indiquer ici ldbm si on n'a pas recompilé LDAP)
database bdb
# Suffixe (correspondant ici à crevette.fr)
suffix "dc=crevette,dc=fr"
# Compte administrateur (ici, root)
rootdn "cn=root,dc=crevette,dc=fr"
# Mot de passe de l'administrateur
# (généré à partir de l'outil /usr/local/sbin/slappasswd)
rootpw {SSHA}9W7n9BfscO/g+B+tCva/GeSCGirpIMup
# Répertoire où les données sont stockées physiquement
directory /var/openldap-data
Démarrage du service LDAP
Le démon correspondant au service LDAP est slapd. On peut le démarrer de la manière suivante, afin de s'assurer qu'il n'y a pas d'erreur dans la configuration:
/usr/local/libexec/slapd -f /etc/openldap/slapd.conf -u _openldap -g _openldap -d 256 &
Ajouter des entrées dans le répertoire LDAP
Il est possible d'ajouter des informations dans le répertoire LDAP à l'aide de fichiers de type ldif. En voici un exemple:
##
# test.ldif
#
# Tout d'abord, création de l'organisation "Crevette et Compagnie"
dn: dc=crevette, dc=fr
objectClass: top
objectClass: dcObject
objectClass: organization
dc:crevette
o: Crevette et Compagnie
# Création de l'unité organisationnelle "people" où sera stocké le carnet d'adresses
dn: ou=people, dc=crevette, dc=fr
objectClass: top
objectClass: organizationalUnit
ou: people
# Ajout d'une personne dans ce carnet d'adresse
dn: cn=Jeanine Dupont, ou=people, dc=crevette, dc=fr
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
cn: Jeanine Dupont
gn: Jeanine
sn: Dupont
mail: jeanine.dupont@crevette.fr
telephoneNumber: 01 45 87 97 02
mobile: 06 03 48 79 22
Pour ajouter ces informations à l'annuaire LDAP, exécuter la commande:
ldapadd -x -D 'cn=root,dc=crevette, dc=fr' -f test.ldif -W
Pour vérifier que l'opération s'est bien effectuée, lancer la commande:
ldapsearch -x -b 'dc=crevette, dc=fr' 'objectclass=*'
Il est à ce stade possible de se connecter au serveur LDAP avec un logiciel classique tel que Kontact ou Outlook.
Lancement d'LDAP lors du démarrage du système
Enfin, sous OpenBSD, il n'existe pas de système de niveaux d'exécution. Pour démarrer un service supplémentaire au démarrage, il faut donc éditer le script de démarrage /etc/rc.local et y ajouter les lignes suivantes:
if [ -x /usr/local/libexec/slapd ]; then
echo -n ' OpenLDAP'
touch /var/run/slapd.pid
chown _openldap:_openldap /var/run/slapd.pid
touch /var/run/slapd.args
chown _openldap:_openldap /var/run/slapd.args
/usr/local/libexec/slapd -u _openldap -g _openldap
fi
Références
http://www.bsdlife.org/viewtopic.php?pid=193
http://www.onlamp.com/pub/a/onlamp/2003/03/27/ldap_ab.html
OpenBSD est un système d'exploitation de type Unix dérivé de NetBSD, focalisé sur la sécurité. Il est connu pour être le berceau d'OpenSSH, implémentation libre du protocole crypté Secure Shell. Il intègre un firewall clair et efficace, pf, ainsi qu'un protocole permettant de répartir plusieurs serveurs sur une même adresse IP, CARP.
Installation du paquet OpenLDAP sous OpenBSD
Le serveur LDAP fourni avec OpenBSD sous forme de paquet binaire utilise un backend obsolète pour sa base de données (voir http://www.openldap.org/faq/data/cache/756.html). Il est donc préférable (mais pas indispensable) de le recompiler à partir des ports, ce qui donne l'occasion de mettre le nez dans ce système commun aux différents BSD.
L'arborescence des ports d'OpenBSD 4.0 se trouve ici. Elle consiste en un ensemble de répertoires permettant de compiler automatiquement des logiciels à partir de leurs sources. Voici comment procéder:
# installation du système de ports si ce n'est pas déjà fait
cd /usr/
tar xvzf ports.tar.gz
# installation d'OpenLDAP. On précise ici que l'on souhaite installer
# la version serveur avec avec SUBPACKAGE="-server", et que le
# paquet sera compilé avec les options nécessaires pour utiliser le
# backend bdb via FLAVOR="bdb".
cd /usr/ports/databases/openldap
SUBPACKAGE="-server" FLAVOR="bdb" make install
Préparation du système
L'installation du serveur LDAP ne prépare pas le système à son utilisation, comme ce serait le cas par exemple avec une distribution linux classique. Il faut donc effectuer un certain nombre d'opérations:
# Préparation du répertoire où seront stockées les données
mkdir /var/openldap-data
chown -R _openldap:_openldap /var/openldap-data
chmod -R 700 /var/openldap-data
# Les fichiers d'informations sur le processus doivent être accessibles par
# le serveur qui sera lancé en tant qu'utilisateur _openldap
touch /var/run/slapd.args
chown _openldap:_openldap /var/run/slapd.args
touch /var/run/slapd.pid
chown _openldap:_openldap /var/run/slapd.pid
Configuration du serveur LDAP
La configuration du serveur se fait en éditant le fichier /etc/openldap/slapd.conf. En voici un exemple:
##
# slapd.conf
#
# Fichiers correspondant aux différents modèles d'objets stockés
# dans le répertoire LDAP
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/corba.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
# Fichiers d'informations sur le processus du service
pidfile /var/run/slapd.pid
argsfile /var/run/slapd.args
#################################
# Définitions concernant la base de données
#################################
# Type de base de données (indiquer ici ldbm si on n'a pas recompilé LDAP)
database bdb
# Suffixe (correspondant ici à crevette.fr)
suffix "dc=crevette,dc=fr"
# Compte administrateur (ici, root)
rootdn "cn=root,dc=crevette,dc=fr"
# Mot de passe de l'administrateur
# (généré à partir de l'outil /usr/local/sbin/slappasswd)
rootpw {SSHA}9W7n9BfscO/g+B+tCva/GeSCGirpIMup
# Répertoire où les données sont stockées physiquement
directory /var/openldap-data
Démarrage du service LDAP
Le démon correspondant au service LDAP est slapd. On peut le démarrer de la manière suivante, afin de s'assurer qu'il n'y a pas d'erreur dans la configuration:
/usr/local/libexec/slapd -f /etc/openldap/slapd.conf -u _openldap -g _openldap -d 256 &
Ajouter des entrées dans le répertoire LDAP
Il est possible d'ajouter des informations dans le répertoire LDAP à l'aide de fichiers de type ldif. En voici un exemple:
##
# test.ldif
#
# Tout d'abord, création de l'organisation "Crevette et Compagnie"
dn: dc=crevette, dc=fr
objectClass: top
objectClass: dcObject
objectClass: organization
dc:crevette
o: Crevette et Compagnie
# Création de l'unité organisationnelle "people" où sera stocké le carnet d'adresses
dn: ou=people, dc=crevette, dc=fr
objectClass: top
objectClass: organizationalUnit
ou: people
# Ajout d'une personne dans ce carnet d'adresse
dn: cn=Jeanine Dupont, ou=people, dc=crevette, dc=fr
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
cn: Jeanine Dupont
gn: Jeanine
sn: Dupont
mail: jeanine.dupont@crevette.fr
telephoneNumber: 01 45 87 97 02
mobile: 06 03 48 79 22
Pour ajouter ces informations à l'annuaire LDAP, exécuter la commande:
ldapadd -x -D 'cn=root,dc=crevette, dc=fr' -f test.ldif -W
Pour vérifier que l'opération s'est bien effectuée, lancer la commande:
ldapsearch -x -b 'dc=crevette, dc=fr' 'objectclass=*'
Il est à ce stade possible de se connecter au serveur LDAP avec un logiciel classique tel que Kontact ou Outlook.
Lancement d'LDAP lors du démarrage du système
Enfin, sous OpenBSD, il n'existe pas de système de niveaux d'exécution. Pour démarrer un service supplémentaire au démarrage, il faut donc éditer le script de démarrage /etc/rc.local et y ajouter les lignes suivantes:
if [ -x /usr/local/libexec/slapd ]; then
echo -n ' OpenLDAP'
touch /var/run/slapd.pid
chown _openldap:_openldap /var/run/slapd.pid
touch /var/run/slapd.args
chown _openldap:_openldap /var/run/slapd.args
/usr/local/libexec/slapd -u _openldap -g _openldap
fi
Références
http://www.bsdlife.org/viewtopic.php?pid=193
http://www.onlamp.com/pub/a/onlamp/2003/03/27/ldap_ab.html
Libellés : bsd, informatique, unix
Commentaires:
<< Home
informatique, chinois, et photos.
un bon equilibre pour montrer ce que tu sais faire, il ne manque plus que la musique ?
un bon equilibre pour montrer ce que tu sais faire, il ne manque plus que la musique ?
pour ce qui est de la musique, ça fait plus de 6 ans que les derniers projets sont aux oubliettes... peut-être un jour referont-il surface :)
Enregistrer un commentaire
<< Home