LDAP-Logs von Red Hat Directory Server erfassen
In diesem Dokument wird beschrieben, wie Sie LDAP-Logs von Red Hat Directory Server mit dem Bindplane-Agent in Google Security Operations aufnehmen.
Red Hat Directory Server ist ein LDAP-Verzeichnisdienst der Enterprise-Klasse, der auf offenen Standards basiert und eine zentrale Verwaltung von Nutzeridentitäten, Authentifizierung und Zugriffssteuerung für Linux- und UNIX-Umgebungen bietet. Der Verzeichnisserver speichert Zugriffs-, Fehler-, Audit-, Audit-Fehler- und Sicherheitslogs im Verzeichnis /var/log/dirsrv/slapd-instance_name/. Dabei werden Clientverbindungen, LDAP-Vorgänge, Konfigurationsänderungen, fehlgeschlagene Vorgänge und Sicherheitsereignisse wie Authentifizierungsversuche und Autorisierungsprobleme aufgezeichnet.
Hinweis
Prüfen Sie, ob folgende Voraussetzungen erfüllt sind:
- Eine Google SecOps-Instanz
- Einen Linux-Host mit
systemd - Netzwerkverbindung zwischen dem Bindplane-Agent und dem Red Hat Verzeichnisserver-Host
- Wenn der Agent hinter einem Proxy ausgeführt wird, müssen die Firewallports gemäß den Anforderungen des Bindplane-Agents geöffnet sein.
- Root- oder sudo-Zugriff auf den Red Hat Verzeichnisserver-Host
- Red Hat Directory Server 11 oder höher ist installiert und wird ausgeführt.
- Der Dienst
rsyslogist auf dem Verzeichnisserver-Host installiert und wird ausgeführt.
Google SecOps-Anmeldedaten für den Bindplane-Agenten abrufen
Wählen Sie eine der folgenden Methoden aus, um den Bindplane-Agent bei Google SecOps zu authentifizieren:
- Neue Deployments: 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.
Option 1: Dienstkonto für die Chronicle API erstellen (empfohlen)
- 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.
- Rufen Sie IAM & Verwaltung > Dienstkonten auf.
- Klicken Sie auf Dienstkonto erstellen.
- 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).
- Name des Dienstkontos: Geben Sie einen Namen für das Konto ein, z. B.
- Klicken Sie auf Erstellen und fortfahren.
- Klicken Sie im Abschnitt Diesem Dienstkonto Zugriff auf das Projekt erteilen auf Rolle auswählen und wählen Sie Chronicle Editor aus.
- Klicken Sie auf Weiter und dann auf Fertig.
- Klicken Sie auf das erstellte Dienstkonto und rufen Sie dann den Tab Schlüssel auf.
- Klicken Sie auf Schlüssel hinzufügen > Neuen Schlüssel erstellen.
- Wählen Sie JSON aus und klicken Sie auf Erstellen. Die Schlüsseldatei wird auf Ihren Computer heruntergeladen.
- Speichern Sie die Schlüsseldatei als
ingestion-auth.jsonim Bindplane-Collector-Verzeichnis (/opt/observiq-otel-collector/ingestion-auth.jsonunter Linux oderC:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.jsonunter Windows) oder aktualisieren Siecreds_file_pathinconfig.yaml, damit der Pfad mit dem Pfad übereinstimmt, in dem Sie die Datei speichern. - 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 Datenaufnahme herunterladen (Legacy)
- Melden Sie sich in der Google SecOps-Konsole an.
- Rufen Sie die SIEM-Einstellungen > Erfassungs-Agents auf.
- Laden Sie die Authentifizierungsdatei für die Aufnahme herunter.
- Speichern Sie die Datei sicher auf dem System, auf dem der Bindplane-Agent installiert werden soll.
Google SecOps-Kundennummer abrufen
- Melden Sie sich in der Google SecOps-Konsole an.
- Rufen Sie die SIEM-Einstellungen > Profil auf.
Kopieren und speichern Sie die Kundennummer aus dem Bereich Organization Details (Organisationsdetails).
BindPlane-Agent installieren
Installieren Sie den Bindplane-Agent auf Ihrem Linux-Betriebssystem gemäß der folgenden Anleitung.
Linux-Installation
- Öffnen Sie ein Terminal mit Root- oder sudo-Berechtigungen.
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.shWarten Sie, bis die Installation abgeschlossen ist.
Überprüfen Sie die Installation mit folgendem Befehl:
sudo systemctl status observiq-otel-collectorDer Dienst sollte als active (running) angezeigt werden.
Zusätzliche Installationsressourcen
Weitere Installationsoptionen und Informationen zur Fehlerbehebung finden Sie in der Installationsanleitung für den Bindplane-Agenten.
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
Konfigurationsdatei bearbeiten
Ersetzen Sie den gesamten Inhalt von
config.yamldurch die folgende Konfiguration:receivers: udplog: listen_address: "0.0.0.0:514" exporters: chronicle/redhat_ds: 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: REDHAT_DIRECTORY_SERVER raw_log_field: body service: pipelines: logs/redhat_ds: receivers: - udplog exporters: - chronicle/redhat_ds
Konfigurationsparameter
Ersetzen Sie die folgenden Platzhalter:
Empfängerkonfiguration:
udplog: Der Empfängertyp basierend auf dem Protokoll:udplogfür UDP-Syslogtcplogfür TCP-Syslogsyslogfü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 für die Überwachung einer Schnittstelle
514: Portnummer, an der gelauscht werden soll (z. B.514,1514,6514)
Exporter-Konfiguration:
<customer_id>: Kundennummer aus dem vorherigen Schrittlocation: Ersetzen Sie<LOCATION>durch die Region Ihrer Google SecOps-Instanz (z. B.us,europeoderasia-southeast1). Der Exporter stellt diesem Wertchronicle.googleapis.comvoran. 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 Einstellungchronicle.googleapis.combei.- Passen Sie
creds_file_pathje nach Plattform an den Pfad der JSON-Schlüsseldatei Ihres Dienstkontos an (Option 1):- Linux:
/opt/observiq-otel-collector/ingestion-auth.json
- Linux:
Legacy-Ingestion-API-Exporter
Wenn Sie die Authentifizierungsdatei für die Datenaufnahme aus Option 2 verwenden, ersetzen Sie den Block
exportersdurch Folgendes. Legen Siecreds_file_pathauf den Pfad zur Datei für die Authentifizierung bei der Aufnahme fest. Wenn sich Ihre Instanz außerhalb der USA befindet, ersetzen Siemalachiteingestion-pa.googleapis.comdurch Ihren regionalen Endpunkt (z. B.europe-malachiteingestion-pa.googleapis.com).exporters: chronicle/redhat_ds: compression: gzip creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json' customer_id: '<customer_id>' endpoint: malachiteingestion-pa.googleapis.com log_type: REDHAT_DIRECTORY_SERVER raw_log_field: body
Konfigurationsdatei speichern
- Speichern Sie die Datei nach der Bearbeitung:
- Linux: Drücken Sie
Ctrl+O, dannEnterund dannCtrl+X.
- Linux: Drücken Sie
Starten Sie den Bindplane-Agent neu, um die Änderungen zu übernehmen.
Führen Sie den folgenden Befehl aus, um den Bindplane-Agent unter Linux neu zu starten:
sudo systemctl restart observiq-otel-collectorPrüfen Sie, ob der Dienst ausgeführt wird:
sudo systemctl status observiq-otel-collectorPrüfen Sie die Logs auf Fehler:
sudo journalctl -u observiq-otel-collector -f
Audit- und Audit-Fehler-Logging in Red Hat Directory Server aktivieren
Standardmäßig aktiviert Red Hat Verzeichnisserver Zugriffs-, Fehler- und Sicherheitslogging, deaktiviert aber Audit- und Audit-Fehler-Logging. Aktivieren Sie diese Protokolle, um alle Verzeichnisänderungen und fehlgeschlagenen Vorgänge zu erfassen.
- Öffnen Sie auf dem Verzeichnisserver-Host ein Terminal mit Root- oder sudo-Berechtigungen.
Aktivieren Sie das Audit-Log mit dem folgenden Befehl:
dsconf -D "cn=Directory Manager" instance_name config replace nsslapd-auditlog-logging-enabled=onAktivieren Sie das Audit-Fehlerprotokoll mit dem folgenden Befehl:
dsconf -D "cn=Directory Manager" instance_name config replace nsslapd-auditfaillog-logging-enabled=onPrüfen Sie, ob alle Logtypen aktiviert sind:
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-enabledPrüfen Sie, ob die Logdateien im Logverzeichnis vorhanden sind:
ls -la /var/log/dirsrv/slapd-instance_name/
Optional: Logging über die Webkonsole aktivieren
- Melden Sie sich in der Webkonsole des Red Hat Directory Servers an.
- Wählen Sie die Instanz aus.
- Rufen Sie Server > Logging auf.
- Wählen Sie den Protokolltyp aus, den Sie aktivieren möchten (z. B. Audit-Log).
- Aktivieren Sie die Logging-Option für den ausgewählten Logtyp.
- Klicken Sie auf Save Log Settings (Protokolleinstellungen speichern).
rsyslog so konfigurieren, dass Directory Server-Logs an den Bindplane-Agenten weitergeleitet werden
Red Hat Verzeichnisserver schreibt Protokolle in Dateien in /var/log/dirsrv/slapd-instance_name/ und nicht direkt in syslog. Verwenden Sie das rsyslog-Modul imfile, um diese Logdateien zu überwachen und die Einträge an den Bindplane-Agent weiterzuleiten.
Erstellen Sie eine neue rsyslog-Konfigurationsdatei für die Weiterleitung von Directory Server-Protokollen:
sudo nano /etc/rsyslog.d/rhds-forward.confFügen Sie der Konfigurationsdatei den folgenden Inhalt hinzu:
# 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:514Prüfen Sie die Syntax der rsyslog-Konfiguration:
sudo rsyslogd -N1Starten Sie den rsyslog-Dienst neu, um die Änderungen zu übernehmen:
sudo systemctl restart rsyslogPrüfen Sie, ob die Verzeichnisserver-Logs weitergeleitet werden. Sehen Sie sich dazu die Bindplane-Agent-Logs an:
sudo journalctl -u observiq-otel-collector -f
UDM-Zuordnungstabelle
| Logfeld | UDM-Zuordnung | Logik |
|---|---|---|
attrs_label |
about.labels |
Zusammengeführt |
cn_label |
about.labels |
Zusammengeführt |
conn_label |
about.labels |
Zusammengeführt |
csn_label |
about.labels |
Zusammengeführt |
err_label |
about.labels |
Zusammengeführt |
etime_label |
about.labels |
Zusammengeführt |
fd_label |
about.labels |
Zusammengeführt |
filter_label |
about.labels |
Zusammengeführt |
label |
about.labels |
Zusammengeführt |
method_label |
about.labels |
Zusammengeführt |
msgid_label |
about.labels |
Zusammengeführt |
name_label |
about.labels |
Zusammengeführt |
nentries_label |
about.labels |
Zusammengeführt |
offset_label |
about.labels |
Zusammengeführt |
op_label |
about.labels |
Zusammengeführt |
optime_label |
about.labels |
Zusammengeführt |
org_label |
about.labels |
Zusammengeführt |
ou_label |
about.labels |
Zusammengeführt |
scope_label |
about.labels |
Zusammengeführt |
slot_label |
about.labels |
Zusammengeführt |
tag_label |
about.labels |
Zusammengeführt |
targetop_label |
about.labels |
Zusammengeführt |
version_label |
about.labels |
Zusammengeführt |
wtime_label |
about.labels |
Zusammengeführt |
desc |
metadata.description |
Direkt zugeordnet |
creationDate |
metadata.event_timestamp |
Als UNIX_MS geparst |
recordDate |
metadata.event_timestamp |
Geparst als UNIX_MS |
time |
metadata.event_timestamp |
Als dd/MMM/yyyy:HH:mm:ss Z geparst |
ts |
metadata.event_timestamp |
Geparst als MMM d HH:mm:ss |
operation |
metadata.product_event_type |
Direkt zugeordnet |
mrId |
metadata.product_log_id |
Direkt zugeordnet |
properties._ecs_agent_version |
metadata.product_version |
Direkt zugeordnet |
host |
principal.asset.hostname |
Direkt zugeordnet |
oid |
principal.asset.product_object_id |
Direkt zugeordnet |
host |
principal.hostname |
Direkt zugeordnet |
client_ip |
principal.ip |
Zusammengeführt |
namespace |
principal.namespace |
Direkt zugeordnet |
user |
principal.user.userid |
Direkt zugeordnet |
sec_result |
security_result |
Zusammengeführt |
properties._hostname |
target.asset.hostname |
Direkt zugeordnet |
properties.host |
target.asset.hostname |
Direkt zugeordnet |
properties._hostname |
target.hostname |
Direkt zugeordnet |
properties.host |
target.hostname |
Direkt zugeordnet |
target_ip |
target.ip |
Zusammengeführt |
properties.country |
target.location.country_or_region |
Direkt zugeordnet |
properties._file_path |
target.process.file.full_path |
Direkt zugeordnet |
properties._file_size |
target.process.file.size |
Umbenannt/zugeordnet |
discipline_label |
target.resource.attribute.labels |
Zusammengeführt |
document_type_label |
target.resource.attribute.labels |
Zusammengeführt |
environment_label |
target.resource.attribute.labels |
Zusammengeführt |
hostgroup_label |
target.resource.attribute.labels |
Zusammengeführt |
platform_label |
target.resource.attribute.labels |
Zusammengeführt |
product_label |
target.resource.attribute.labels |
Zusammengeführt |
project_label |
target.resource.attribute.labels |
Zusammengeführt |
base |
target.user.group_identifiers |
Zusammengeführt |
dn |
target.user.group_identifiers |
Zusammengeführt |
| – | metadata.event_type |
Konstante: NETWORK_CONNECTION |
| – | metadata.product_name |
Konstante: REDHAT_DIRECTORY_SERVER |
| – | metadata.vendor_name |
Konstante: REDHAT |
| – | target.platform |
Konstante: LINUX |
properties._file_inode |
event.idm.read_only_udm.additional.fields |
Aus Änderungsprotokoll zugeordnet |
properties._file_offset |
event.idm.read_only_udm.additional.fields |
Aus Änderungsprotokoll zugeordnet |
conn |
event.idm.read_only_udm.additional.fields |
Aus Änderungsprotokoll zugeordnet |
op |
event.idm.read_only_udm.additional.fields |
Aus Änderungsprotokoll zugeordnet |
err |
event.idm.read_only_udm.additional.fields |
Aus Änderungsprotokoll zugeordnet |
tag |
event.idm.read_only_udm.additional.fields |
Aus Änderungsprotokoll zugeordnet |
nentries |
event.idm.read_only_udm.additional.fields |
Aus Änderungsprotokoll zugeordnet |
wtime |
event.idm.read_only_udm.additional.fields |
Aus Änderungsprotokoll zugeordnet |
optime |
event.idm.read_only_udm.additional.fields |
Aus Änderungsprotokoll zugeordnet |
etime |
event.idm.read_only_udm.additional.fields |
Aus Änderungsprotokoll zugeordnet |
csn |
event.idm.read_only_udm.additional.fields |
Aus Änderungsprotokoll zugeordnet |
cn |
event.idm.read_only_udm.additional.fields |
Aus Änderungsprotokoll zugeordnet |
ou |
event.idm.read_only_udm.additional.fields |
Aus Änderungsprotokoll zugeordnet |
filter |
event.idm.read_only_udm.additional.fields |
Aus Änderungsprotokoll zugeordnet |
attrs |
event.idm.read_only_udm.additional.fields |
Aus Änderungsprotokoll zugeordnet |
scope |
event.idm.read_only_udm.additional.fields |
Aus Änderungsprotokoll zugeordnet |
o |
event.idm.read_only_udm.additional.fields |
Aus Änderungsprotokoll zugeordnet |
targetop |
event.idm.read_only_udm.additional.fields |
Aus Änderungsprotokoll zugeordnet |
msgid |
event.idm.read_only_udm.additional.fields |
Aus Änderungsprotokoll zugeordnet |
method |
event.idm.read_only_udm.additional.fields |
Aus Änderungsprotokoll zugeordnet |
version |
event.idm.read_only_udm.additional.fields |
Aus Änderungsprotokoll zugeordnet |
fd |
event.idm.read_only_udm.additional.fields |
Aus Änderungsprotokoll zugeordnet |
slot |
event.idm.read_only_udm.additional.fields |
Aus Änderungsprotokoll zugeordnet |
name |
event.idm.read_only_udm.additional.fields |
Aus Änderungsprotokoll zugeordnet |
properties.discipline" ,"properties.document_type" ,"properties.environment" ,"properties.hostgroup" ,"properties.platform" ,"properties.product |
target.resource.attribute.labels |
Aus Änderungsprotokoll zugeordnet |
Änderungsprotokoll
Änderungsprotokoll für diesen Parser ansehen
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten