informatique:reseau:ldap:accesslog

Ceci est une ancienne révision du document !


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 :

  • Créer le fichier /tmp/load-module.ldif :
    cat << EOF > /tmp/load-module.ldif
    dn: cn=module{0},cn=config
    changetype: modify
    add: olcModuleLoad
    olcModuleLoad: accesslog
    EOF
  • Jouer ce LDIF via ldapmodify :
    ldapmodify -x -D cn=admin,cn=config -W -f /tmp/load-module.ldif
    # Ou :
    ldapmodify -Y EXTERNAL -H ldapi:/// -f /tmp/load-module.ldif

Il faut ensuite créer la base LDAP qui servira au stockage de l'historique :

  • Créer le dossier de stockage de cette base :
    mkdir /var/lib/ldap/my-database-accesslog/
    chown openldap: /var/lib/ldap/my-database-accesslog/
  • Créer le fichier /tmp/historic-database.ldif :
    cat << EOF > /tmp/historic-database.ldif
    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
  • Jouer ce LDIF avec ldapadd :
    ldapadd -x -D cn=admin,cn=config -W -f /tmp/historic-database.ldif
    # Ou :
    ldapadd -Y EXTERNAL -H ldapi:/// -f /tmp/historic-database.ldif

Pour finir, il faut configurer l'overlay accesslog pour votre base :

  • Créer le fichier /tmp/config-accesslog.ldif :
    cat << EOF > /tmp/config-accesslog.ldif
    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
  • Jouer ce LDIF avec ldapadd :
    ldapadd -x -D cn=admin,cn=config -W -f /tmp/config-accesslog.ldif
    # Ou :
    ldapadd -Y EXTERNAL -H ldapi:/// -f /tmp/config-accesslog.ldif
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.
  • informatique/reseau/ldap/accesslog.1658244461.txt.gz
  • Dernière modification : 2022/07/19 15:27
  • de bn8