OpenLDAP dispose d’un module interne d’audit des différentes actions (write, read, bind, unbind etc.). J’ai cherché à l’utiliser pour auditer les connexions au serveur LDAP (statistiques d’utilisation des comptes). Le stockage des logs se fait dans une base de données (idem que les backends traditionnels OpenLDAP). La configuration du module se fait par le slapd.conf :
moduleload accesslog
[...]
database bdb
suffix cn=accesslog
directory /var/lib/ldap/accesslog
rootdn cn=accesslog
[...]
overlay accesslog
logdb cn=accesslog
logops bind
Explications : on charge le module (moduleload accesslog) puis on définit la base de données qui va stocker nos logs (ici une base de donnée BerkleyDB dans une arborescence du système de fichier distincte de la base principale). Enfin, on configure l’overlay en lui demandant de reporter les tentatives de bind dans les logs (directive logops).
Redémarrage du LDAP et la hop : ça marche (moyennant la création d’un répertoire /var/lib/ldap/accesslog avec les bon droits dessus !).
J’essaie de visionner les logs depuis une machine lambda (dans un vrai cas d’utilisation, il aurait fallu mettre des ACLs pour éviter que la planète entière ne récupère les logs) :
[garnett@irondick]# ldapsearch -x -h monldap.example.org -b "cn=accesslog"
It works, voila la sortie :
dn: reqStart=20081204135447.000003Z,cn=accesslog
objectClass: auditBind
reqStart: 20081204135447.000003Z
reqEnd: 20081204135447.000004Z
reqType: bind
reqSession: 29
reqAuthzID:
reqDN: cn=garnett,dc=example,dc=org
reqResult: 0
reqVersion: 3
reqMethod: SIMPLE
On a pas mal d’informations : la date du bind, le compte utilisé, la méthode d’authentification (simple ou via SASL) et la version utilisée du protocole LDAP. Seulement pas de mention de l’hôte à l’origine du bind, c’est dommage ! Après consultation du schéma détaillé dans le man de slapo-accesslog cette information n’y figure pas.
Un autre truc qui m’a refroidi (extrait du man) :
It is also noted that the schema describe here is a work in progress, and hence subject to change without notice.
Aie !!