Skip to content
Snippets Groups Projects
Select Git revision
  • d1ea00b0ee69dfb19c1fc49948bec667479efd50
  • main default protected
2 results

parselog-ldap

  • Clone with SSH
  • Clone with HTTPS
  • BOUTELIER Sebastien's avatar
    Sebastien Boutelier authored
    Le programme n'envoie plus directement au loghost mais renvoie les log au rsyslog local qui en fera ce qu'il veut. On retire donc l'option --loghost de la ligne de commande
    d1ea00b0
    History

    Parselog LDAP

    Getting started

    Le programme parselog-ldap permet de construire des logs LDAP lisibles et exploitables. Il doit se lancer sur le serveur LDAP. Il ne peut pas recevoir les logs de plusieurs serveurs LDAP car il pourrait y avoir plusieurs fois le même numéro de connexion et donc des logs inconsistants.

    Le programme prend en entrée un port sur lequel il va écouter en TCP sur 127.0.0.1 et va renvoyer les logs construits sur local5.info les logs qui ne sont pas des opérations sur local5.debug. Il faudra passer en argument du programme le port d'écoute TCP:

    parselog-ldap --listen=8080

    Il faudra ensuite indiquer au rsyslog local d'envoyer les log LDAP sur le port d'écoute du démon et traiter les logs envoyés sur local5.info et local5.debug. Avec rsyslog, exemple d'un fichier /etc/rsyslog.d/ldap.conf:

    local5.debug;local5.!info	-/var/log/ldap/ldap.log
    local5.info	@@LOGHOST:PORT
    local4.*        @@127.0.0.1:8080
    :programname, isequal, "slapd" stop

    Le démon parselog-ldap ne doit pas tourner en tant que root, il faut donc lui créer un utilisateur sous lequel il sera exécuté.

    Compilation

    Installer rust puis: cargo build -r

    Le binaire sera présent dans target/release

    Fonctionnement

    A la réception d'un log une première expression régulière va analyser la commande LDAP (BIND, ADD, DEL, SRCH...) et va envoyer le log dans la fonction adequat. Les logs sont construit en récupérant les info dans les logs et en utilisant le numéro de connexion et numéro d'opération. Tout est stocké dans des tables de hashage gérés dans le fichier hashmap.rs. Quand on tombe sur la commande RESULT, on va aller récupérer les infos préalablement stocké, construile la ligne de log à envoyer, l'envoyer avec la fonction sendlog() et nettoyer les tables de hashage.

    License

    Aucune

    Project status

    If you have run out of energy or time for your project, put a note at the top of the README saying that development has slowed down or stopped completely. Someone may choose to fork your project or volunteer to step in as a maintainer or owner, allowing your project to keep going. You can also make an explicit request for maintainers.