Collecter les journaux LDAP du serveur d'annuaire Red Hat

Compatible avec :

Ce document explique comment ingérer les journaux LDAP Red Hat Directory Server dans Google Security Operations à l'aide de l'agent Bindplane.

Red Hat Directory Server est un service d'annuaire LDAP de classe entreprise basé sur des normes ouvertes. Il fournit une gestion centralisée des identités utilisateur, de l'authentification et du contrôle des accès pour les environnements Linux et UNIX. Le serveur d'annuaire stocke les journaux d'accès, d'erreurs, d'audit, d'échec d'audit et de sécurité dans le répertoire /var/log/dirsrv/slapd-instance_name/. Il enregistre les connexions client, les opérations LDAP, les modifications de configuration, les opérations ayant échoué et les événements liés à la sécurité tels que les tentatives d'authentification et les problèmes d'autorisation.

Avant de commencer

Assurez-vous de remplir les conditions suivantes :

  • Une instance Google SecOps
  • Un hôte Linux avec systemd
  • Connectivité réseau entre l'agent BindPlane et l'hôte du serveur d'annuaire Red Hat
  • Si vous exécutez l'agent derrière un proxy, assurez-vous que les ports de pare-feu sont ouverts conformément aux exigences de l'agent Bindplane.
  • Un accès root ou sudo à l'hôte Red Hat Directory Server
  • Red Hat Directory Server 11 ou version ultérieure installé et en cours d'exécution
  • Le service rsyslog installé et exécuté sur l'hôte du serveur d'annuaire

Obtenir un fichier d'authentification d'ingestion Google SecOps

  1. Connectez-vous à la console Google SecOps.
  2. Accédez à Paramètres SIEM> Agents de collecte.
  3. Téléchargez le fichier d'authentification d'ingestion.
  4. Enregistrez le fichier de manière sécurisée sur le système où BindPlane sera installé.

Obtenir un numéro client Google SecOps

  1. Connectez-vous à la console Google SecOps.
  2. Accédez à Paramètres SIEM > Profil.
  3. Copiez et enregistrez le numéro client dans la section Détails de l'organisation.

Installer l'agent BindPlane

Installez l'agent Bindplane sur votre système d'exploitation Linux en suivant les instructions ci-dessous.

Installation sous Linux

  1. Ouvrez un terminal avec des privilèges root ou sudo.
  2. Exécutez la commande suivante :

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    
  3. Attendez que l'installation se termine.

  4. Vérifiez l'installation en exécutant la commande suivante :

    sudo systemctl status observiq-otel-collector
    

    Le service doit être indiqué comme actif (en cours d'exécution).

Autres ressources d'installation

Pour en savoir plus sur les options d'installation et le dépannage, consultez le guide d'installation de l'agent Bindplane.

Configurer l'agent Bindplane pour ingérer les journaux Syslog et les envoyer à Google SecOps

Localiser le fichier de configuration

  • Linux :

    sudo nano /opt/observiq-otel-collector/config.yaml
    

Modifiez le fichier de configuration

  • Remplacez l'intégralité du contenu de config.yaml par la configuration suivante :

    receivers:
        udplog:
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/redhat_ds:
            compression: gzip
            creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
            customer_id: '<customer_id>'
            endpoint: malachiteingestion-pa.googleapis.com
            log_type: REDHAT_DIRECTORY_SERVER
            raw_log_field: body
    
    service:
        pipelines:
            logs/redhat_ds:
                receivers:
                    - udplog
                exporters:
                    - chronicle/redhat_ds
    

Paramètres de configuration

Remplacez les espaces réservés suivants :

  • Configuration du récepteur :

    • udplog : type de récepteur basé sur le protocole :
      • udplog pour syslog UDP
      • tcplog pour syslog TCP
      • syslog pour le syslog RFC 3164/5424
    • 0.0.0.0 : adresse IP à écouter :
      • 0.0.0.0 pour écouter sur toutes les interfaces (recommandé)
      • Adresse IP spécifique à écouter sur une interface
    • 514 : numéro de port d'écoute (par exemple, 514, 1514, 6514)
  • Configuration de l'exportateur :

    • <customer_id> : ID client de l'étape précédente
    • malachiteingestion-pa.googleapis.com : URL du point de terminaison régional :
      • États-Unis : malachiteingestion-pa.googleapis.com
      • Europe : europe-malachiteingestion-pa.googleapis.com
      • Asie : asia-southeast1-malachiteingestion-pa.googleapis.com
      • Pour obtenir la liste complète, consultez Points de terminaison régionaux.
    • Ajustez creds_file_path en fonction de la plate-forme :
      • Linux : /etc/bindplane-agent/ingestion-auth.json

Enregistrez le fichier de configuration.

  • Après avoir modifié le fichier, enregistrez-le :
    • Linux : appuyez sur Ctrl+O, puis sur Enter, puis sur Ctrl+X.

Redémarrez l'agent Bindplane pour appliquer les modifications.

  • Pour redémarrer l'agent BindPlane sous Linux, exécutez la commande suivante :

    sudo systemctl restart observiq-otel-collector
    
    1. Vérifiez que le service est en cours d'exécution :

      sudo systemctl status observiq-otel-collector
      
    2. Recherchez les erreurs dans les journaux :

      sudo journalctl -u observiq-otel-collector -f
      

Activer la journalisation des audits et des échecs d'audit dans Red Hat Directory Server

Par défaut, Red Hat Directory Server active la journalisation des accès, des erreurs et de la sécurité, mais désactive la journalisation des audits et des échecs d'audit. Activez ces journaux pour capturer toutes les modifications apportées au répertoire et les opérations ayant échoué.

  1. Ouvrez un terminal avec des droits root ou sudo sur l'hôte du serveur d'annuaire.
  2. Activez le journal d'audit en exécutant la commande suivante :

    dsconf -D "cn=Directory Manager" instance_name config replace nsslapd-auditlog-logging-enabled=on
    
  3. Activez le journal des échecs d'audit en exécutant la commande suivante :

    dsconf -D "cn=Directory Manager" instance_name config replace nsslapd-auditfaillog-logging-enabled=on
    
  4. Vérifiez que tous les types de journaux sont activés :

    dsconf -D "cn=Directory Manager" instance_name config get nsslapd-accesslog-logging-enabled nsslapd-errorlog-logging-enabled nsslapd-auditlog-logging-enabled nsslapd-auditfaillog-logging-enabled nsslapd-securitylog-logging-enabled
    
  5. Vérifiez que les fichiers journaux existent dans le répertoire des journaux :

    ls -la /var/log/dirsrv/slapd-instance_name/
    

Facultatif : activer la journalisation à l'aide de la console Web

  1. Connectez-vous à la console Web Red Hat Directory Server.
  2. Sélectionnez l'instance.
  3. Accédez à Serveur > Journalisation.
  4. Sélectionnez le type de journal que vous souhaitez activer (par exemple, Journal d'audit).
  5. Activez le bouton bascule de journalisation pour le type de journal sélectionné.
  6. Cliquez sur Save Log Settings (Enregistrer les paramètres des journaux).

Configurer rsyslog pour transférer les journaux du serveur d'annuaire à l'agent Bindplane

Red Hat Directory Server écrit les journaux dans des fichiers situés dans /var/log/dirsrv/slapd-instance_name/ plutôt que directement dans syslog. Utilisez le module rsyslog imfile pour surveiller ces fichiers journaux et transférer les entrées à l'agent Bindplane.

  1. Créez un fichier de configuration rsyslog pour le transfert des journaux de serveur d'annuaire :

    sudo nano /etc/rsyslog.d/rhds-forward.conf
    
  2. Ajoutez le contenu suivant au fichier de configuration :

    # Load the imfile module to read log files
    module(load="imfile" PollingInterval="10")
    
    # Monitor the access log
    input(type="imfile"
        File="/var/log/dirsrv/slapd-instance_name/access"
        Tag="dirsrv-access"
        Severity="info"
        Facility="local6")
    
    # Monitor the error log
    input(type="imfile"
        File="/var/log/dirsrv/slapd-instance_name/errors"
        Tag="dirsrv-errors"
        Severity="err"
        Facility="local6")
    
    # Monitor the audit log
    input(type="imfile"
        File="/var/log/dirsrv/slapd-instance_name/audit"
        Tag="dirsrv-audit"
        Severity="info"
        Facility="local6")
    
    # Monitor the security log
    input(type="imfile"
        File="/var/log/dirsrv/slapd-instance_name/security"
        Tag="dirsrv-security"
        Severity="info"
        Facility="local6")
    
    # Forward all Directory Server logs to the Bindplane agent
    local6.* @BINDPLANE_IP:514
    
  3. Vérifiez la syntaxe de la configuration rsyslog :

    sudo rsyslogd -N1
    
  4. Redémarrez le service rsyslog pour appliquer les modifications :

    sudo systemctl restart rsyslog
    
  5. Vérifiez que les journaux du serveur d'annuaire sont transférés en consultant les journaux de l'agent BindPlane :

    sudo journalctl -u observiq-otel-collector -f
    

Table de mappage UDM

Champ de journal Mappage UDM Logique
attrs_label about.labels Fusionné
cn_label about.labels Fusionné
conn_label about.labels Fusionné
csn_label about.labels Fusionné
err_label about.labels Fusionné
etime_label about.labels Fusionné
fd_label about.labels Fusionné
filter_label about.labels Fusionné
label about.labels Fusionné
method_label about.labels Fusionné
msgid_label about.labels Fusionné
name_label about.labels Fusionné
nentries_label about.labels Fusionné
offset_label about.labels Fusionné
op_label about.labels Fusionné
optime_label about.labels Fusionné
org_label about.labels Fusionné
ou_label about.labels Fusionné
scope_label about.labels Fusionné
slot_label about.labels Fusionné
tag_label about.labels Fusionné
targetop_label about.labels Fusionné
version_label about.labels Fusionné
wtime_label about.labels Fusionné
desc metadata.description Mappé directement
creationDate metadata.event_timestamp Analysé en tant que UNIX_MS
recordDate metadata.event_timestamp Analysé en tant que UNIX_MS
time metadata.event_timestamp Analysé en tant que dd/MMM/yyyy:HH:mm:ss Z
ts metadata.event_timestamp Analysé en tant que MMM d HH:mm:ss
operation metadata.product_event_type Mappé directement
mrId metadata.product_log_id Mappé directement
properties._ecs_agent_version metadata.product_version Mappé directement
host principal.asset.hostname Mappé directement
oid principal.asset.product_object_id Mappé directement
host principal.hostname Mappé directement
client_ip principal.ip Fusionné
namespace principal.namespace Mappage direct
user principal.user.userid Mappé directement
sec_result security_result Fusionné
properties._hostname target.asset.hostname Mappage direct
properties.host target.asset.hostname Mappé directement
properties._hostname target.hostname Mappé directement
properties.host target.hostname Mappé directement
target_ip target.ip Fusionné
properties.country target.location.country_or_region Mappage direct
properties._file_path target.process.file.full_path Mappé directement
properties._file_size target.process.file.size Renommé/Mappé
discipline_label target.resource.attribute.labels Fusionné
document_type_label target.resource.attribute.labels Fusionné
environment_label target.resource.attribute.labels Fusionné
hostgroup_label target.resource.attribute.labels Fusionné
platform_label target.resource.attribute.labels Fusionné
product_label target.resource.attribute.labels Fusionné
project_label target.resource.attribute.labels Fusionné
base target.user.group_identifiers Fusionné
dn target.user.group_identifiers Fusionné
N/A metadata.event_type Constante : NETWORK_CONNECTION
N/A metadata.product_name Constante : REDHAT_DIRECTORY_SERVER
N/A metadata.vendor_name Constante : REDHAT
N/A target.platform Constante : LINUX
properties._file_inode event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
properties._file_offset event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
conn event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
op event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
err event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
tag event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
nentries event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
wtime event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
optime event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
etime event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
csn event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
cn event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
ou event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
filter event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
attrs event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
scope event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
o event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
targetop event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
msgid event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
method event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
version event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
fd event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
slot event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
name event.idm.read_only_udm.additional.fields Mappé à partir du journal des modifications
properties.discipline" ,"properties.document_type" ,"properties.environment" ,"properties.hostgroup" ,"properties.platform" ,"properties.product target.resource.attribute.labels Mappé à partir du journal des modifications

Journal des modifications

Afficher le journal des modifications de ce parseur

Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.