Module accesslog
Ce module permet d'historiser les actions effecutés sur une base LDAP dans une autre base LDAP dédiée. Il est possible, via des paramètres de configuration de choisir quelles actions sont historisées (modification, recherche, bind, …) et combien de temps sont conservés les évènements historisés. Chaque évènement historisé le serra sous la forme d'un objet LDAP stocké à la racine de la base de stockage de l'historique.
Installation
Il faut d'abord charger le module dynlist :
ldapmodify -Y EXTERNAL -H ldapi:/// << EOF dn: cn=module{0},cn=config changetype: modify add: olcModuleLoad olcModuleLoad: accesslog EOF
Il faut ensuite créer la base LDAP qui servira au stockage de l'historique :
mkdir /var/lib/ldap/my-database-accesslog/ chown openldap: /var/lib/ldap/my-database-accesslog/ ldapadd -Y EXTERNAL -H ldapi:/// << EOF dn: olcDatabase={2}mdb,cn=config objectClass: olcDatabaseConfig objectClass: olcMdbConfig olcSuffix: cn=my-database-accesslog olcDbDirectory: /var/lib/ldap/my-database-accesslog/ olcAccess: {0}to * by dn.exact=gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth manage by * break olcDbIndex: reqDn,reqStart,reqEnd,reqType,reqSession,reqAuthzID,objectClass eq olcDbMaxSize: 1073741824 EOF
Pour finir, il faut configurer l'overlay accesslog pour votre base :
ldapadd -Y EXTERNAL -H ldapi:/// << EOF dn: olcOverlay={1}accesslog,olcDatabase={1}mdb,cn=config objectClass: olcAccesslogConfig objectClass: olcOverlayConfig objectClass: olcConfig objectClass: top olcOverlay: {1}accesslog olcAccessLogDB: cn=my-database-accesslog olcAccessLogOps: writes session olcAccessLogPurge: 365+00:00 1+00:00 olcAccessLogOld: objectClass=* EOF
man slapo-accesslog
) ou encore le guide LDAP sur Zytrax.com.
Purge/réduction des logs
Pour purger les logs, le plus simple est de stopper le service, purger toute la base et relancer le service :
service slapd stop rm -f /var/lib/ldap/accesslog/* service slapd start
Alternativement, vous pouvez réduire la période de rétention des logs en ajustant la valeur de l'attribut olcAccessLogPurge
dans la configuration de l'overlay accesslog
de votre database.
Ce paramètre contient deux valeurs, la première indiquant la rétention et la seconde la fréquence de purge. Par exemple, la valeur est 365+00:00 1+00:00
indique une rétention de 365 jours et une purge
une fois par jour. En cas de modification de cette valeur, une purge est lancée immédiatement.