informatique:reseau:ldap:accesslog

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.

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
Dans cet exemple, les opérations relatives aux écritures et aux sessions utilisateurs seront historisés. La rétention de ces entrées est de 365 jours et la purge est exécutée en tâche de fond tous les jours. Pour plus d'informations, consulter la documentation, le manuel (man slapo-accesslog) ou encore le guide LDAP sur Zytrax.com.

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.

  • informatique/reseau/ldap/accesslog.txt
  • Dernière modification : 2024/03/06 08:52
  • de bn8