OpenLDAP-Logs erfassen

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie OpenLDAP-Logs mit Bindplane in Google Security Operations aufnehmen.

OpenLDAP ist ein Open-Source-LDAP-Verzeichnisserver, der Zugriffs-, Audit- und Replikationslogs generiert. Der Parser extrahiert Felder aus OpenLDAP-Logeinträgen und ordnet sie dem Unified Data Model (UDM) zu. Dabei werden Nutzeridentität, Authentifizierungsereignisse, LDAP-Vorgänge und Sicherheitsergebnisse erfasst.

Hinweis

Prüfen Sie, ob folgende Voraussetzungen erfüllt sind:

  • Eine Google SecOps-Instanz
  • Windows Server 2016 oder höher oder Linux-Host mit systemd
  • Netzwerkverbindung zwischen dem Bindplane-Agent und dem OpenLDAP-Server
  • Wenn der Agent hinter einem Proxy ausgeführt wird, müssen die Firewallports gemäß den Anforderungen des Bindplane-Agents geöffnet sein.
  • Privilegierter Zugriff auf den OpenLDAP-Server mit Root- oder Administratorberechtigungen

Google SecOps-Anmeldedaten für den Bindplane-Agenten abrufen

Wählen Sie eine der folgenden Methoden aus, um den Bindplane-Agenten bei Google SecOps zu authentifizieren:

  • Neue Bereitstellungen: Verwenden Sie die Chronicle API (Option 1).
  • Legacy-Bereitstellungen: Verwenden Sie die Authentifizierungsdatei für die Datenaufnahme (Option 2) weiter, bis die Ingestion API am 20. Juli 2027 eingestellt wird.
  1. Melden Sie sich in der Google Cloud Console an und wählen Sie das Google Cloud -Projekt aus, das mit Ihrer Google SecOps-Instanz verknüpft ist.
  2. Rufen Sie IAM und Verwaltung > Dienstkonten auf.
  3. Klicken Sie auf Dienstkonto erstellen.
  4. Geben Sie die folgenden Konfigurationsdetails an:
    • Name des Dienstkontos: Geben Sie einen Namen für das Konto ein, z. B. bindplane-ingest.
    • Dienstkontobeschreibung: Geben Sie eine Beschreibung ein, z. B. Bindplane agent log ingestion.
  5. Klicken Sie auf Erstellen und fortfahren.
  6. Klicken Sie im Abschnitt Diesem Dienstkonto Zugriff auf das Projekt erteilen auf Rolle auswählen und wählen Sie Chronicle-Bearbeiter aus.
  7. Klicken Sie auf Weiter und dann auf Fertig.
  8. Klicken Sie auf das von Ihnen erstellte Dienstkonto und rufen Sie den Tab Schlüssel auf.
  9. Klicken Sie auf Schlüssel hinzufügen > Neuen Schlüssel erstellen.
  10. Wählen Sie JSON aus und klicken Sie auf Erstellen. Die Schlüsseldatei wird auf Ihren Computer heruntergeladen.
  11. Speichern Sie die Schlüsseldatei als ingestion-auth.json im Bindplane-Collector-Verzeichnis (/opt/observiq-otel-collector/ingestion-auth.json unter Linux oder C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json unter Windows) oder aktualisieren Sie creds_file_path in config.yaml, sodass der Pfad mit dem Pfad übereinstimmt, unter dem Sie die Datei speichern.
  12. Rufen Sie IAM und Verwaltung > Einstellungen auf und kopieren Sie die Projektnummer. Sie benötigen sie für die Konfiguration des Exporters.

Option 2: Authentifizierungsdatei für die Aufnahme herunterladen (Legacy)

  1. Melden Sie sich in der Google SecOps-Konsole an.
  2. Rufen Sie die SIEM-Einstellungen > Erfassungs-Agents auf.
  3. Laden Sie die Authentifizierungsdatei für die Datenaufnahme herunter.
  4. Speichern Sie die Datei sicher auf dem System, auf dem der Bindplane-Agent installiert wird.

Google SecOps-Kundennummer abrufen

  1. Melden Sie sich in der Google SecOps-Konsole an.
  2. Rufen Sie die SIEM-Einstellungen > Profil auf.
  3. Kopieren und speichern Sie die Kundennummer aus dem Bereich Organization Details (Organisationsdetails).

BindPlane-Agent installieren

Installieren Sie den Bindplane-Agenten gemäß der folgenden Anleitung auf Ihrem Windows- oder Linux-Betriebssystem.

Windows-Installation

  1. Öffnen Sie die Eingabeaufforderung oder PowerShell als Administrator.
  2. Führen Sie dazu diesen Befehl aus:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    
  3. Warte, bis die Installation abgeschlossen ist.

  4. Überprüfen Sie die Installation mit folgendem Befehl:

    sc query observiq-otel-collector
    

Der Dienst sollte als RUNNING (WIRD AUSGEFÜHRT) angezeigt werden.

Linux-Installation

  1. Öffnen Sie ein Terminal mit Root- oder sudo-Berechtigungen.
  2. Führen Sie dazu diesen Befehl aus:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    
  3. Warte, bis die Installation abgeschlossen ist.

  4. Überprüfen Sie die Installation mit folgendem Befehl:

    sudo systemctl status observiq-otel-collector
    

Der Dienst sollte als aktiv (wird ausgeführt) angezeigt werden.

Zusätzliche Installationsressourcen

Weitere Installationsoptionen und Informationen zur Problembehebung finden Sie im Installationsanleitung für den Bindplane-Agent.

Bindplane-Agent so konfigurieren, dass Syslog-Daten aufgenommen und an Google SecOps gesendet werden

Konfigurationsdatei suchen

  • Linux:

    sudo nano /opt/observiq-otel-collector/config.yaml
    
  • Windows:

    notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
    

Konfigurationsdatei bearbeiten

  • Ersetzen Sie den gesamten Inhalt von config.yaml durch die folgende Konfiguration:

    receivers:
      udplog:
        listen_address: "0.0.0.0:514"
    
    exporters:
      chronicle/openldap:
        protocol: https
        # Region of your instance, for example us, europe, asia-southeast1
        location: <LOCATION>
        # Project number of the Google Cloud project linked to the instance
        project: '<PROJECT_NUMBER>'
        compression: gzip
        creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json'
        customer_id: '<customer_id>'
        endpoint: chronicle.googleapis.com
        log_type: OPENLDAP
        raw_log_field: body
    
    service:
      pipelines:
        logs/openldap:
          receivers:
            - udplog
          exporters:
            - chronicle/openldap
    

Konfigurationsparameter

Ersetzen Sie die folgenden Platzhalter:

  • Empfängerkonfiguration:

    • udplog: Der Empfängertyp basierend auf dem Protokoll:
      • udplog für UDP-Syslog
      • tcplog für TCP-Syslog
      • syslog für RFC 3164/5424-Syslog
    • 0.0.0.0: IP-Adresse, auf der gelauscht werden soll:
      • 0.0.0.0, um auf allen Schnittstellen zuzuhören (empfohlen)
      • Bestimmte IP-Adresse, die auf einer Schnittstelle überwacht werden soll
    • 514: Portnummer, an der gelauscht werden soll (z. B. 514, 1514, 6514)
  • Exporter-Konfiguration:

    • <customer_id>: Kundennummer aus dem vorherigen Schritt
    • location: Ersetzen Sie <LOCATION> durch die Region Ihrer Google SecOps-Instanz (z. B. us, europe oder asia-southeast1). Der Exporter stellt diesem Wert chronicle.googleapis.com voran. Eine vollständige Liste finden Sie unter Regionale Endpunkte.
    • project: Ersetzen Sie <PROJECT_NUMBER> durch die Projektnummer unter IAM & Verwaltung > Einstellungen.
    • endpoint: Behalten Sie die Einstellung chronicle.googleapis.com bei.
    • Passen Sie creds_file_path je nach Plattform an den Pfad der JSON-Schlüsseldatei Ihres Dienstkontos an (Option 1):
      • Linux: /opt/observiq-otel-collector/ingestion-auth.json
      • Windows: C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json

Legacy-Ingestion-API-Exporter

  • Wenn Sie die Authentifizierungsdatei für die Datenaufnahme aus Option 2 verwenden, ersetzen Sie den Block exporters durch Folgendes. Legen Sie für creds_file_path den Pfad zur Authentifizierungsdatei für die Datenaufnahme fest. Wenn sich Ihre Instanz außerhalb der USA befindet, ersetzen Sie malachiteingestion-pa.googleapis.com durch Ihren regionalen Endpunkt (z. B. europe-malachiteingestion-pa.googleapis.com).

    exporters:
      chronicle/openldap:
        compression: gzip
        creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json'
        customer_id: '<customer_id>'
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: OPENLDAP
        raw_log_field: body
    

Konfigurationsdatei speichern

  • Speichern Sie die Datei nach der Bearbeitung:
    • Linux: Drücken Sie Ctrl+O, dann Enter und dann Ctrl+X.
    • Windows: Klicken Sie auf Datei > Speichern.

Starten Sie den Bindplane-Agent neu, um die Änderungen zu übernehmen.

So starten Sie den Bindplane-Agent unter Linux neu:

  1. Führen Sie dazu diesen Befehl aus:

    sudo systemctl restart observiq-otel-collector
    
  2. Prüfen Sie, ob der Dienst ausgeführt wird:

    sudo systemctl status observiq-otel-collector
    
  3. Logs auf Fehler prüfen:

    sudo journalctl -u observiq-otel-collector -f
    

So starten Sie den Bindplane-Agenten unter Windows neu:

  1. Wählen Sie eine der folgenden Optionen aus:

    • Eingabeaufforderung oder PowerShell als Administrator:
    net stop observiq-otel-collector && net start observiq-otel-collector
    
    • Dienstkonsole:
      1. Drücken Sie Win+R, geben Sie services.msc ein und drücken Sie die Eingabetaste.
      2. Suchen Sie nach observIQ OpenTelemetry Collector.
      3. Rechtsklicken Sie und wählen Sie Neu starten aus.
  2. Prüfen Sie, ob der Dienst ausgeführt wird:

    sc query observiq-otel-collector
    
  3. Prüfen Sie die Logs auf Fehler:

    type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
    

OpenLDAP-Syslog-Weiterleitung konfigurieren

OpenLDAP (slapd) kann so konfiguriert werden, dass Logs über Syslog erstellt werden. Konfigurieren Sie den Syslog-Daemon so, dass OpenLDAP-Logs an den Bindplane-Agenten weitergeleitet werden.

  1. Prüfen Sie, ob OpenLDAP für die Protokollierung in syslog konfiguriert ist. Suchen Sie in der slapd.conf oder cn=config nach der Anweisung loglevel:

    loglevel stats conns
    
  2. OpenLDAP protokolliert standardmäßig in der Syslog-Einrichtung local4. Konfigurieren Sie rsyslog so, dass diese Logs an den Bindplane-Agenten weitergeleitet werden. Konfigurationsdatei erstellen:

    sudo nano /etc/rsyslog.d/openldap-forward.conf
    
  3. Fügen Sie den folgenden Inhalt hinzu:

    local4.* @BINDPLANE_AGENT_IP:514
    
  4. Starten Sie den rsyslog-Dienst neu:

    sudo systemctl restart rsyslog
    

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
op, fd, ou, cn, dc, dc1, base1, base2, base3, scope_data, valueData, method, filter, tag_data, err, attrData, ou_2, ou_1, syslog_message, immutable_user_id, resource additional.fields Mit Labels zusammengeführt, die aus diesen Feldern erstellt wurden
extensions.auth.type Auf „AUTHTYPE_UNSPECIFIED“ festgelegt
caller_ip, proxy1_ip, proxy2_ip intermediary Zusammengeführt aus intermediary, proxy_1, proxy_2
msg1, inner_message metadata.description Wert aus „msg1“ oder „inner_message“
metadata.event_type Anfangs auf „GENERIC_EVENT“ festgelegt, dann auf „STATUS_UPDATE“, wenn die Haupt-IP-Adresse vorhanden ist, auf „USER_UNCATEGORIZED“, wenn der Nutzer vorhanden ist, und auf „USER_LOGIN“, wenn der Zeitstempel oder „inner_ts“ vorhanden ist.
ldap_action metadata.product_event_type Wert aus ldap_action in Kleinbuchstaben
ldap_conn metadata.product_log_id Wert aus ldap_conn nach dem Entfernen von „conn=“
user_agent network.http.user_agent Wert direkt kopiert
session_id network.session_id Wert direkt kopiert
principal_ip, prin_ip, caller_ip, r_ip_or_host, proxy_client_ip, src_ip, client_ip principal.asset.ip Zusammengeführt aus principal_ip (nach Ersetzen von - durch .), prin_ip, caller_ip, r_ip_or_host (wenn IP), proxy_client_ip, src_ip, client_ip
r_ip_or_host, src_host principal.hostname Wert aus r_ip_or_host, wenn Hostname, andernfalls src_host
principal_ip, prin_ip, caller_ip, r_ip_or_host, proxy_client_ip, src_ip, client_ip principal.ip Zusammengeführt aus principal_ip (nachdem „-“ durch „.“ ersetzt wurde), prin_ip, caller_ip, r_ip_or_host (falls IP), proxy_client_ip, src_ip, client_ip
country principal.location.country_or_region Wert direkt kopiert
prin_port, port, src_port principal.port Wert aus „prin_port“, „port“ oder „src_port“, in Ganzzahl konvertiert
syslog_process principal.process.file.full_path Wert direkt kopiert
syslog_pid principal.process.pid Wert direkt kopiert
org_name principal.user.company_name Wert direkt kopiert
user, cn, uid principal.user.userid Wert von user, cn oder uid
security_result security_result Direkt zusammengeführt
action, sec_action security_result.action Wert aus „action“ (basierend auf Fehlercodes) oder „sec_action“ (basierend auf „login_status“)
resource, immutable_user_id security_result.detection_fields Mit Labels aus der Ressource und „immutable_user_id“ zusammengeführt
inner_descrption, security_description security_result.description Wert aus inner_descrption oder security_description
tuser, username, userid target.user.userid Wert aus tuser, username oder userid
metadata.product_name Legen Sie diesen Wert auf „OpenLDAP“ fest.
metadata.vendor_name Auf „OpenLDAP“ festgelegt
eventType event.idm.read_only_udm.metadata.product_event_type Aus Änderungsprotokoll zugeordnet
cn event.idm.read_only_udm.additional.fields Aus Änderungsprotokoll zugeordnet
sequenceId event.idm.read_only_udm.additional.fields Aus Änderungsprotokoll zugeordnet
dc_2 event.idm.read_only_udm.additional.fields Aus Änderungsprotokoll zugeordnet
dc_3 event.idm.read_only_udm.additional.fields Aus Änderungsprotokoll zugeordnet
dc event.idm.read_only_udm.additional.fields Aus Änderungsprotokoll zugeordnet
dc_1 event.idm.read_only_udm.additional.fields Aus Änderungsprotokoll zugeordnet
user event.idm.read_only_udm.principal.user.userid Aus Änderungsprotokoll zugeordnet
path event.idm.read_only_udm.principal.process.file.full_path Aus Änderungsprotokoll zugeordnet
ip1 principal.ip Aus Änderungsprotokoll zugeordnet
base", "err", "attr", "tag", "scope", and "valueData additional.fields Aus Änderungsprotokoll zugeordnet
security_result.action ALLOW Aus Änderungsprotokoll zugeordnet
security_result.action BLOCK Aus Änderungsprotokoll zugeordnet

Änderungsprotokoll

Änderungsprotokoll für diesen Parser ansehen

Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten