Archives par étiquette : openldap configuration

Activer le Log OpenLDAP

Objectif: Cette 3eme partie de la série OpenLDAP tutorial a pour objectif d’activer le log OpenLDAP. Pour atteindre cet objectif il faut paramétrer l’installation du serveur d’annuaire OpenLDAP. Cette production est très importante, voire indispensable pour la surveillance et l’utilisation correcte de ce serveur.

Pré-requis: OpenlDAP est installé et pré-configuré sur une machine Debian, Ubuntu ou compatibles. cf. la partie 1 et la partie 2 de cette série OpenLDAP Tutorial.

1. Activer les fichiers journaux (Log) du serveur OpenLDAP

sudo ldapsearch -Y external -H ldapi:/// -b cn=config "(objectClass=olcGlobal)" olcLogLevel -LLL > slapdlog.ldif

Cette commande crée le fichier slapdlog.ldif dont le contenu est le résultat de la requête LDAP exécutée par l’utilitaire ldapsearch:

dn: cn=config
olcLogLevel: none

La première ligne contient le DN (distinguished name) qui est l’identifiant unique de l’entrée. La deuxième ligne contient l’unique attribut demandée par la requête avec comme valeur: none. La génération de log est désactivée par défaut.
Modifier ce fichier pour que son contenu devienne:

dn: cn=config
changeType: modify
replace: olcLogLevel
olcLogLevel: stats

Maintenant ce fihier LDIF (Lightweight data interchange format) contient une commande de modification: la deuxième ligne déclare qu’on veut modifier l’entrée, la troisième indique qu’il s’agit d’un remplacement de contenu de l’attribut olcLogLevel de cette entrée et la troisième indique la nouvelle valeur de cet attribut. stats permet de générer les logs des connexions, des opérations et de leurs résultats ce qui est parfait pour une surveillance quotidienne.
Pour exécuter la commande de ce fichier sur le serveur, on utilise:

sudo ldapmodify -Y external -H ldapi:/// -f slapdlog.ldif

Si on obtient le message: modifying entry « cn=config », l’opération a réussi.
Pour vérifier:

sudo ldapsearch -Y external -H ldapi:/// -b cn=config "(objectClass=olcGlobal)" olcLogLevel

Normalement la prise en compte par le serveur est immédiate et aucun redémarrage n’est nécessaire. Le serveur envoi les logs produits au mécanisme de gestion des logs système. Il s’agit de rsyslog pour les versions récentes.

2. Prise en compte des log OpenLDAP par rsyslog

Créer un fichier de configuration dans dans le dossier /etc/rsyslog.d/, choisir un nom quelconque: 10-slapd.conf par exemple. Le chiffre dans le nom permet de classer les fichiers dans ce dossier. Ce fichier contient l’unique ligne:

local4.*    /var/log/slapd.log;slapdtmpl

slapdtmpl est un nom au choix qui désigne un format de présentation du contenu de ce fichier de log. Il s’agit donc de créer ce format, cela se fait dans le fichier de configuration de rsyslog:

sudo vi /etc/rsyslog.conf

Dans l’éditeur ajouter ce qui suit, en dessous de la première ligne à partir du début qui commence par $template:

$template slapdtmpl,"[%$DAY%-%$MONTH%-%$YEAR% %timegenerated:12:19:date-rfc3339%] %app-name% %syslogseverity-text% %msg%\n"

Pour plus de détails sur la créations de format pour rsyslog consulter le manuel:

man rsyslog.conf

Voir, notamment, le paragraphe TEMPLATES.
Enfin il faut redémarrer rsyslog pour que le nouveau paramétrage soit pris en compte:

service rsyslog restart

3. Tester cette fonctionnalité du serveur OpenLDAP

Lancer une requête et consulter le contenu du fichier /var/log/slapd.log:

sudo ldapsearch -Y external -H ldapi:/// -b dc=ldaptuto,dc=net
sudo cat /var/log/slapd.log

Normalement, on doit avoir un contenu assez significatif de ce qui a été exécuté par le serveur OpenLDAP.

OpenLDAP tutorial (2) – Modifier les paramètres par défaut

Objectif: Ce 2eme article de la série  «OpenLDAP tutorial» vise à améliorer la configuration basique du serveur vue dans le 1er article. Il s’agit d’une reconfiguration qui permet de personnaliser les paramètres pris par défaut par la procédure d’installation. Cette reconfuguration permet de préparer le servuer à une utilisation dans un environnement réel.

Pré-requis: Le serveur OpenLDAP est installé avec sa configuration par défaut. L’installation est supposée faite sur une machine Debian / Ubuntu ou compatibles.

L’installation initiale par l’utilitaire apt-get utilise les paramètres systèmes pour effectuer certaines configurations, notamment le DIT de l’annuaire. Ceci peut être reconfiguré. Toutefois cette reconfiguration doit être faite avant toute alimentation du serveur d’annuaire avec des données. La raison est que cette opération réinitialise la base de données et remet son contenu à zéro.
Cette reconfiguration se fait avec la commande:

sudo dpkg-reconfigure slapd

Suite à cela une série d’écrans s’affichent l’un après l’autre pour demander de saisir des paramètres ou effectuer des choix.

Reconfiguration d’OpenLDAP – étape 1Reconfiguration d’OpenLDAP – étape 2

Par défaut c’est le nom de domaine configuré pour la machine hôte qui est pris. Saisir le nom de domaine, ceci fixe le DIT de l’annuaire. Ici : dc=ldaptuto,dc=net (pour la saisie de ldaptuto.net).

Reconfiguration d’OpenLDAP – étape 3

Saisir le nom de l’organisation, un libellé rattaché au DIT de l’annuaire. Ne sert que pour l’information.

Reconfiguration d’OpenLDAP – étape 4

Mot de passe de l’administrateur de l’annuaire qui est cn=admin,dc=ldaptuto,dc=net. L’adminstrateur possède tous les droits et n’est soumis à aucune restriction configurée (équivalent de root pour les systèmes unix).

Reconfiguration d’OpenLDAP – étape 5

Le type de base de données à utiliser. OpenLDAP peut fonctionne avec plusieurs types de bases de données dont BDB, HDB et MDB qui sont proposées par la procédure d’installation. MDB est la base de données recommandée. Elle est plus compacte et performante que HDB et BDB. MDB fonctionne sans configuration particulière et permet de renommer un sous ensemble de l’annuaire (un  noeud quelconque) tout comme HDB.

Reconfiguration d’OpenLDAP – étape 6

Comportement à la désinstallation puis la purge du paquet slapd. Choisir si les fichiers des données doivent être supprimés ou non (<Non> est plus prudent, <Oui> est plus efficace).

Reconfiguration d’OpenLDAP – étape 7

Répondre par <Oui>. les fichiers de données seront déplacés de /var/lib/ldap vers /var/backup

Reconfiguration d’OpenLDAP – étape 8

Répondre <Non>, sauf il y a une bonne raison (généralement maintenir une compatibilité avec un système ancien) pour le faire.

A la suite de cette étape, le serveur d’annuaire est réinitialisé et redémarré.

Vérifier le nouveau paramétrage

sudo ldapsearch -Y external -H ldapi:///  -b dc=ldaptuto,dc=net ↵

SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
# extended LDIF
#
# LDAPv3
# base <dc=ldaptuto,dc=net> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#

# ldaptuto.net
dn: dc=ldaptuto,dc=net
objectClass: top
objectClass: dcObject
objectClass: organization
o: OpenLDAP tutorial
dc: ldaptuto

# admin, ldaptuto.net
dn: cn=admin,dc=ldaptuto,dc=net
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator

# search result
search: 2
result: 0 Success

# numResponses: 3
# numEntries: 2

On remarquera dc=ldaptuto,dc=net et le libellé du DIT o: OpenLDAP tutorial

Openldap tutorial – Installation et configuration de base

Premier article d’une serie « OpenLDAP tutorial », basée sur la pratique. La démarche de l’exposé se fait pas à pas en montrant tous les détails nécessaires au bon fonctionnement final. L’installation exposée comprend une configuration minimale pour un fonctionnement correcte. D’autres articles suivront pour améliorer l’installation sur différents aspects. Il est conseillé de suivre cette serie d’articles dans l’ordre.

  1. Cet article: Installation et configuration de base
  2. Modifier les paramètres par défaut
  3. Activer le Log OpenLDAP
  4. Accès à la configuration dynamique par l’administrateur
  5. Organisation et types de données
  6. Ajouter des données à l’annuaire
  7. Utilisation pour protéger l’accès à un site web
  8. OpenLDAP password policy – gérer les comptes des utilisateurs

Pré-requis: Aucun à propos du serveur OpenLDAP.

There is an english version of this series of articles.

Openldap tutorial, étape 1: Configurer correctement l’hôte Debian / Ubuntu.

La procédure d’installation du serveur met en place systématiquement une base de données. Le DIT (équivalent de l’instance pour les bases de données relationnelles) est sélectionné en fonction du nom de domaine de la machine hôte.

hostname -f

Cette commande retourne le nom complet (full) de la machine. Exemple: desktop.meddeb.net. Dans ce cas la base de données aura pour DIT: dc=meddeb,dc=net (la partie droite du nom à partir du 1er point rencontré).
Si la configuration ne vous convient pas, il faudrait la modifier (fichier /etc/hostname et /etc/hosts)

Openldap tutorial, étape 2: installer le serveur Openldap sur Debian / Ubuntu.

sudo apt-get purge slapd
sudo apt-get install slapd

La procédure d’installation se lance et demande le mot de passe de l’administrateur du serveur.

openldap tutorial, openldap ubuntu, openldap debianEn plus des fichiers binaires exécutables, il est installé dans les dossiers:

  • /usr/lib/ldap/ : librairies des modules (overlay), fichiers binaires natifs
  • /etc/ldap/schema/ : Schémas disponibles par défaut, fichiers texte.
  • /etc/ldap/slap.d/ : Configuration dynamique, fichiers texte.
  • /var/lib/ldap/ : Données, fichiers de la base de données installée.
  • /var/run/slapd/ : Paramètres d’exécution, fichiers texte.

Openldap tutorial, étape 3: installer les utilitaires client de Openldap.

sudo apt-get install ldap-utils

Ceci installe les utilitaires clients Openldap, notamment l’utilitaire d’interrogation ldapsearch. Le fichier de configuration de ces utilitaires /etc/ldap/ldap.conf peut être très utile dans le mesure où il permet de fixer des paramètres par défaut. Cela simplifie l’interaction avec le serveur. Un contenu typique de ce fichier est:

BASE   dc=meddeb,dc=net
URI    ldap://localhost
SIZELIMIT      12
TIMELIMIT      15
DEREF          never
# TLS certificates (needed for GnuTLS)
TLS_CACERT      /etc/ssl/certs/ca-certificates.crt

Openldap tutorial, étape 4: Vérifier l’installation.

slapd -V ↵

@(#) $OpenLDAP: slapd  (Ubuntu) (May 11 2016 16:12:05) $
        buildd@lgw01-10:/build/openldap-mF7Kfq/openldap-2.4.42+dfsg/debian/build/servers/slap

La version du serveur installée est 2.4.42

ldapsearch -Y external  -H ldapi:/// -b cn=config "(objectClass=olcGlobal)" -LLL ↵
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
dn: cn=config
objectClass: olcGlobal
cn: config
olcArgsFile: /var/run/slapd/slapd.args
olcLogLevel: none
olcPidFile: /var/run/slapd/slapd.pid
olcToolThreads: 1

Ceci donne la partie globale de la configuration mise en place par défaut. On retrouve l’indication des deux fichiers des paramètres d’exécution dans le dossier /var/run/slapd/.

On remarquera le paramètre olcLogLevel à none, à modifier impérativement.

sudo ldapsearch -Y external  -H ldapi:/// -b dc=meddeb,dc=net -LLL ↵

ASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
dn: dc=meddeb,dc=net
objectClass: top
objectClass: dcObject
objectClass: organization
o: meddeb.net
dc: meddeb

dn: cn=admin,dc=meddeb,dc=net
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator

Ceci donne les deux seules entrées créées dans l’annuaire par défaut:

  • dc=meddeb,dc=net, qui représente le DIT de l’annuaire.
  • cn=admin,dc=meddeb,dc=net, qui est l’administrateur de l’annuaire dont le mot de passe a été saisie au cours de l’installation.