Pascal VERRECCHIA
Octobre 2003 - version 3.1
URL : http://www-lor.int-evry.fr/~maknavic/CADDISC/
L'objectif de ce document est de présenter l'installation et
la configuration des logiciels nécessaires pour faire fonctionner
OpenLDAP et SCVP au mieux de ces capacités dans le cadre du projet
CADDISC. Vous pourrez, je l'espère, après lecture de cette
documentation mettre en place rapidement : OpenSSL, Cyrus SASL, Berkeley
DB et OpenLDAP.
Il est à préciser qu'il serait préférable
de faire toutes ces installations sous root, ou sous un compte possédant
des droits élargis.
Le premier logiciel que nous allons mettre en place est OpenSSL,
car certains parmi ceux qui vont suivre devront spécifier son utilisation
dans leur configuration et nous devrons donc connaître son chemin
d'accès.
La version que nous utilisons dans le cadre du projet CADDISC est OpenSSL-0.9.7c.
Placez-vous sur la racine ou sur /home, suivant l'endroit où vous avez téléchargé le logiciel. (Attention, il vous faudra auparavant changer un fichier de Openssl avant de compiler. Ce fichier se trouve sur la page web de CADDISC).
Entrez les lignes de commande suivantes :
tar -xvzf openssl-0.9.7c.tar.gz
cd openssl-0.9.7c
Appliquez les patches standard du système (make patch)
Appliquez les patches de l'ENST-Bretagne présentés dans
openssl-diffs.
Cela modifiera les fichiers :
- Makefile.org pour permettre la compilation de scvp.
- crypto/objects/objects.txt pour prendre en compte les nouveaux OIDs
liés à SCVP.
Appliquez les patches de l'INT présentés dans openssl_diffs_LDAP. Cela permettra de modifier le fichier crypto/x509v3/v3_utl.c. Vous pouvez aussi télécharger le fichier dans son entier à partir de l'URL : http://www-lor.int-evry.fr/~maknavic/CADDISC/SP21/caddiscConfFiles.tar.gz
Il faudra créer ensuite un répertoire scvp/ dans le répertoire crypto/ dans lequel vous placerez les fichiers de openssl-scvp.tgz (Makefile, scvp_asn.c, scvp.h).
Ensuite, placez vous dans le répertoire racine de openssl et
faites (Surtout ne pas activer de debug sinon on n'aurait pas de librairies
partagées) :
./config shared
make update
make
make test
make install
Si vous ne voulez pas installer cet OpenSSL dans le système par défaut, le test marche aussi avec un 'LD_LIBRAIRY_PATH='
Une précision pour FreeBSD :
- le plus simple est d'aller chercher le dernier "port" qui trafique
la config pour créer les librairies partagées.
- il faut configurer (make configure).
- il faut refaire les objects et les stacks entre la configuration
et la compilation, le "make update" dans la racine d'OpenSSL semble être
le plus efficace.
- il faut compiler (make build).
cd ..
tar -xvfz db-4.1.25.tar.gz
cd db-4.1.25
cd dist
./configure
make
make install
La version que nous utilisons est : cyrus-sasl-2.1.12.
Entrez les lignes de commande suivantes :
cd ..
tar -xvzf cyrus-sasl-2.1.12.tar.gz
cd cyrus-sasl-2.1.12
./configure
--with-bdb-libdir=/usr/local/BerkeleyDB.4.1/lib/
--with-bdb-incdir=/usr/local/BerkeleyDB.4.1/include/
--with-openssl=/usr/local/ssl/
--with-ldap=/root/openldap-2.1.12
make
make install
ln -s /usr/local/lib/sasl2 /usr/lib/sasl2
La version que nous utilisons est : openldap-2.1.12
Entrez les lignes de commande suivantes :
cd ..
ln -s /usr/local/BerkeleyDB.4.1/lib/libdb-4.1.so /usr/lib/libdb-4.1.so
ln -s /usr/local/BerkeleyDB.4.1/lib/libdb-4.1.so /usr/lib/libdb-4.so
ln -s /usr/local/BerkeleyDB.4.1/lib/libdb-4.1.so /usr/lib/libdb.so
ln -s /usr/local/BerkeleyDB.4.1/lib/libdb-4.1.a /usr/lib/libdb.a
tar -xfz openldap-2.1.12.tar
cd openldap-2.1.12
env CPPFLAGS= « -I/usr/local/BerkeleyDB.4.1/include »
\
LDFLAGS= « -L/usr/local/BerkeleyDB.4.1/lib
» ./configure \
--enable-referrals \
--enable-ipv6
--with-cyrus-sasl
--enable-cleartext
--enable-crypt
--enable-spasswd
--enable-bdb
--enable-dnssrv
--enable-ldbm
--enable-rewrite
--enable-ldap
--enable-meta
--enable-monitor
--enable-slurpd
make depend
make
make test
make install
Pour la configuration nécessaire au projet CADDISC, deux possibilités
vous sont offertes :
- télécharger le fichier de configuration ayant servi
pour CADDISC à l'INT ainsi que les schéma spécifiques
à l'adresse http://www-lor.int-evry.fr/~maknavic/CADDISC/SP21/caddiscConfFiles.tar.gz.
Il vous faudra alors modifier ces fichiers avec vos propres caractéristiques
(DN, nom de serveur, mot de passe...)
- modifier le fichier de configuration standard de OpenLDAP (slapd.conf)
accessible dans le répertoire /usr/local/etc/openldap/. Les différents
types de schéma existants sont dans : /usr/local/etc/openldap/schema/.
Dans le second cas de figure, il vous faudra modifier votre fichier de configuration slapd.conf.
Voici les différentes opérations à effectuer :
Editez ce fichier (par exemple : emacs /usr/local/etc/openldap/slapd.conf)
Sous la ligne : include /usr/local/etc/openldap/schema/core.schema
Rajoutez les 3 lignes suivantes :
include /usr/local/etc/openldap/schema/cosine.schema
include /usr/local/etc/openldap/schema/inetorgperson.schema
include /usr/local/etc/openldap/schema/pki.schema
dans cet ordre précis!
Vous devrez créer par vous-même le schéma « pki.schema ». Les indications pour réaliser cette action seront indiquées par la suite. (Notez que tous les fichiers de configuration vous sont fournis sur la page web du projet)
Rajoutez les deux lignes suivantes :
allow bind_v2
allow bind_v3
où vous le désirez dans le document. Elles stipuleront que OpenLDAP sera à même d'utiliser les fonctionnalités de LDAPv2 et LDAPv3.
Nommez la base de donnée qui contiendra les informations de votre annuaire LDAP, grâce à la ligne :
database nom_base_donnée
Indiquez quelle sera l'entrée principale de votre arborescence LDAP par la ligne : suffix
Indiquez quelle sera l'entrée correspondant à l'administrateur de l'annuaire LDAP par la ligne : rootdn
Indiquez le mot de passe correspondant à votre base LDAP qui ne devrait être connu que de l'administrateur par la ligne suivante : rootpw
Voici un exemple de fichier de configuration slapd.conf :
# $OpenLDAP: pkg/ldap/servers/slapd/slapd.conf,v
1.23.2.5 2002/11/26 18:26:01 kurt Exp $
#
# See slapd.conf(5) for details on configuration
options.
# This file should NOT be world readable.
#
include /usr/local/etc/openldap/schema/core.schema
include /usr/local/etc/openldap/schema/cosine.schema
include /usr/local/etc/openldap/schema/inetorgperson.schema
include /usr/local/etc/openldap/schema/pki.schema
allow bind_v2
allow bind_v3
# Define global ACLs to disable default read access.
# Do not enable referrals until AFTER you
have a working directory
# service AND an understanding of referrals.
#referral ldap://root.openldap.org
pidfile /usr/local/var/slapd.pid
argsfile /usr/local/var/slapd.args
# Load dynamic backend modules:
# modulepath /usr/local/libexec/openldap
# moduleload back_bdb.la
# moduleload back_ldap.la
# moduleload back_ldbm.la
# moduleload back_passwd.la
# moduleload back_shell.la
# Sample security restrictions
#
# Disallow clear text exchange
of passwords
# disallow bind_simple_unprotected
#
# Require integrity protection (prevent
hijacking)
# Require 112-bit (3DES or better) encryption
for updates
# Require 63-bit encryption for simple
bind
# security ssf=1 update_ssf=112 simple_bind=64
# Sample access control policy:
# Root DSE: allow anyone to read it
# Other DSEs:
# Allow self write access
# Allow authenticated users read
access
# Allow anonymous users to authenticate
# Directives needed to implement policy:
# access to dn.base="" by * read
# access to *
# by self write
# by users read
# by anonymous auth
#
# if no access controls are present, the
default policy is:
# Allow read by all# access to *
# by self write
# by users read
# by anonymous auth
#
# if no access controls are present, the
default policy is:
# Allow read by all
#
# rootdn can always write!
#######################################################################
# ldbm database definitions
#######################################################################
database bdb
suffix "o=INT,c=FR"
rootdn "cn=Manager,o=INT,c=FR"
# Cleartext passwords, especially for
the rootdn, should
# be avoid. See slappasswd(8) and
slapd.conf(5) for details.
# Use of strong authentication encouraged.
rootpw PW_FOR_OPENLDAPXXX
# The database directory MUST exist prior
to running slapd AND
# should only be accessible by the slapd/tools.
Mode 700 recommended.
directory /usr/local/var/openldap-data
# Indices to maintain
index objectClass eq
En ce qui concerne la création du nouveau schéma pki.schema qui nous sera utile par la suite pour l'utilisation de OpenCA, voici la marche à suivre :
Editez un fichier pki.schema (par exemple) que vous enregistrerez dans
le répertoire /usr/local/etc/openldap/schema contenant les lignes
suivantes :
objectclass ( 1.2.840.113533.7.67.4 NAME
'uniquelyIdentifiedUser'
SUP top AUXILIARY
MUST ( serialNumber
)
)
Les différentes installations et configurations des logiciels
pour faire fonctionner OpenLDAP sont terminées.
Pour installer et configurer les logiciels adéquats de création
et de gestion des certificats avec OpenCA/OpenLDAP, référez
vous aux documents [Ver03] et [Mak03].
[Mak03]
« Gestion de certificats par OpenCA », Maryline MAKNAVICIUS,
octobre 2003
[Ver03]
«Installation de OpenCA», Pascal VERRECCHIA, Maryline MAKNAVICIUS,
octobre 2003
OpenLDAP : http://www.openldap.org/
Cyrus SASL : http://asg.web.cmu.edu/cyrus/
Berkeley DB : http://www.sleepycat.com/
OpenSSL : http://www.openssl.org/