F5 VPN-Logs erfassen

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie F5 VPN-Logs mit dem Bindplane-Agent in Google Security Operations aufnehmen.

F5 BIG-IP Access Policy Manager (APM) ist eine VPN- und Zugriffsverwaltungslösung, die Syslog-Meldungen für Nutzerauthentifizierung, Sitzungsverwaltung, Richtlinienauswertung, Tunnelaufbau und Netzwerkzugriffsereignisse generiert. Der Parser extrahiert Felder aus Syslog-formatierten Logs und ordnet sie dem Unified Data Model (UDM) zu.

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 F5 BIG-IP-Gerät
  • Wenn Sie den Agent hinter einem Proxy ausführen, müssen die Firewallports gemäß den Anforderungen des Bindplane-Agents geöffnet sein.
  • Privilegierter Zugriff auf F5 BIG-IP tmsh (Version 11.x oder höher)

Authentifizierungsdatei für die Aufnahme in Google SecOps abrufen

  1. Melden Sie sich in der Google SecOps-Konsole an.
  2. Rufen Sie die SIEM-Einstellungen > Collection Agents auf.
  3. Laden Sie die Authentifizierungsdatei für die Aufnahme 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 > Profile auf.
  3. Kopieren und speichern Sie die Kunden-ID aus dem Bereich Organisationsdetails.

BindPlane-Agent installieren

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

Fenstereinbau

  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. Warten Sie, 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. Warten Sie, 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 Fehlerbehebung finden Sie in der Installationsanleitung für den Bindplane-Agent.

BindPlane-Agent zum Erfassen von Syslog-Daten und Senden an Google SecOps konfigurieren

Konfigurationsdatei suchen

  • Linux:

    sudo nano /etc/bindplane-agent/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/f5_vpn:
            compression: gzip
            creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
            customer_id: '<customer_id>'
            endpoint: malachiteingestion-pa.googleapis.com
            log_type: F5_VPN
            raw_log_field: body
    
    service:
        pipelines:
            logs/f5_vpn_to_chronicle:
                receivers:
                    - udplog
                exporters:
                    - chronicle/f5_vpn
    

Konfigurationsparameter

Ersetzen Sie die folgenden Platzhalter:

  • Empfängerkonfiguration:

    • listen_address: IP-Adresse und Port, auf die gewartet werden soll:
      • 0.0.0.0, um alle Schnittstellen zu überwachen (empfohlen)
      • Port 514 ist der Standard-Syslog-Port (erfordert Root unter Linux; verwenden Sie 1514 für Nicht-Root).
  • Exporter-Konfiguration:

    • creds_file_path: Vollständiger Pfad zur Datei für die Authentifizierung bei der Aufnahme:
      • Linux: /etc/bindplane-agent/ingestion-auth.json
      • Windows: C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
    • customer_id: Kunden-ID, die aus der Google SecOps Console kopiert wurde
    • endpoint: Regionale Endpunkt-URL:
      • USA: malachiteingestion-pa.googleapis.com
      • Europa: europe-malachiteingestion-pa.googleapis.com
      • Asien: asia-southeast1-malachiteingestion-pa.googleapis.com
      • Eine vollständige Liste finden Sie unter Regionale Endpunkte.

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.

Bindplane-Agent neu starten, 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-collector
    
    1. Prüfen Sie, ob der Dienst ausgeführt wird:

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

      sudo journalctl -u observiq-otel-collector -f
      
  • Wählen Sie eine der folgenden Optionen aus, um den Bindplane-Agent unter Windows neu zu starten:

    • Eingabeaufforderung oder PowerShell als Administrator:

      net stop observiq-otel-collector && net start observiq-otel-collector
      
    • Services-Konsole:

      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. Klicken Sie mit der rechten Maustaste und wählen Sie Neu starten aus.
      4. Prüfen Sie, ob der Dienst ausgeführt wird:

        sc query observiq-otel-collector
        
      5. Logs auf Fehler prüfen:

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

Syslog-Weiterleitung auf F5 BIG-IP APM konfigurieren

  1. Stellen Sie eine Verbindung zur F5 BIG-IP-Befehlszeile her.
  2. Öffnen Sie die tmsh-Shell:

    tmsh
    
  3. Konfigurieren Sie einen Remote-Syslog-Server mit dem folgenden Befehl:

    modify sys syslog remote-servers add { <Name> { host <bindplane-ip> remote-port <bindplane-port> } }
    

    Ersetzen Sie Folgendes:

    • <Name>: Ein eindeutiger Name für dieses Syslog-Ziel, z. B. bindplane_server.
    • <bindplane-ip>: Die IP-Adresse des Bindplane-Agent-Hosts.
    • <bindplane-port>: Der im Bindplane-Agent-Empfänger konfigurierte Port (Standard: 514).
  4. Konfiguration speichern:

    save sys config partitions all
    

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
cmd_data principal.process.command_line Der Wert wird aus dem Feld „msg“ extrahiert.
errdefs_msgno additional.fields.errdefs_msgno.string_value Der Wert wird aus dem Feld „msg“ extrahiert.
event_time metadata.event_timestamp Der Wert wird geparst und in einen Zeitstempel konvertiert.
hostname principal.hostname,, observer.hostname,, principal.asset.hostname,, observer.asset.hostname, Der Wert wird aus dem Nachrichtenfeld extrahiert und zum Ausfüllen der Hostname-Felder im UDM verwendet. Auch zum Füllen des Felds „hostip“ verwendet
msg security_result.description Der Wert wird aus dem Nachrichtenfeld extrahiert und zum Ausfüllen des Beschreibungsfelds im security_result-Objekt verwendet.
prin_ip principal.ip,, principal.asset.ip Der Wert wird aus dem Nachrichtenfeld extrahiert und zum Ausfüllen der IP-Adressfelder im UDM verwendet.
additional.fields.Canonical_Info.string_value Der Wert wird aus dem Logeintrag abgeleitet.
additional.fields.IDP.string_value Der Wert wird aus dem Logeintrag abgeleitet.
additional.fields.Plugin_Support.string_value Der Wert wird aus dem Logeintrag abgeleitet.
additional.fields.SMB, Stage.string_value Der Wert wird aus dem Logeintrag abgeleitet.
additional.fields.SP.string_value Der Wert wird aus dem Logeintrag abgeleitet.
additional.fields.Timezone.string_value Der Wert wird aus dem Logeintrag abgeleitet.
additional.fields.Tunnel, Type.string_value Der Wert wird aus dem Logeintrag abgeleitet.
additional.fields.UI_Mode.string_value Der Wert wird aus dem Logeintrag abgeleitet.
additional.fields.Version.string_value Der Wert wird aus dem Logeintrag abgeleitet.
additional.fields.from_rule_item.string_value Der Wert wird aus dem Logeintrag abgeleitet.
additional.fields.policy_result.string_value Der Wert wird aus dem Logeintrag abgeleitet.
additional.fields.ppp_id.string_value Der Wert wird aus dem Logeintrag abgeleitet.
additional.fields.resource.string_value Der Wert wird aus dem Logeintrag abgeleitet.
additional.fields.rule.string_value Der Wert wird aus dem Logeintrag abgeleitet.
additional.fields.server_vip_ip.string_value Der Wert wird aus dem Logeintrag abgeleitet.
additional.fields.server_vip_name.string_value Der Wert wird aus dem Logeintrag abgeleitet.
additional.fields.to_rule_item.string_value Der Wert wird aus dem Logeintrag abgeleitet.
additional.fields.tunnel_resource.string_value Der Wert wird aus dem Logeintrag abgeleitet.
metadata.description Der Wert wird aus dem Logeintrag abgeleitet.
metadata.event_type Der Wert ist für einige Ereignisse im Parsercode hartcodiert und wird für andere aus dem Logeintrag abgeleitet.
metadata.log_type Der Wert wird auf den Batchtyp festgelegt.
metadata.product_event_type Der Wert wird aus dem Logeintrag abgeleitet.
metadata.product_name Der Wert ist im Parsercode hartcodiert.
metadata.vendor_name Der Wert ist im Parsercode hartcodiert.
network.application_protocol Der Wert wird aus dem Logeintrag abgeleitet.
network.direction Der Wert wird aus dem Logeintrag abgeleitet.
network.http.method Der Wert wird aus dem Logeintrag abgeleitet.
network.http.parsed_user_agent Der Wert wird aus dem Feld „network.http.user_agent“ abgeleitet.
network.http.referral_url Der Wert wird aus dem Logeintrag abgeleitet.
network.http.response_code Der Wert wird aus dem Logeintrag abgeleitet.
network.http.user_agent Der Wert wird aus dem Logeintrag abgeleitet.
network.ip_protocol Der Wert wird aus dem Logeintrag abgeleitet.
network.received_bytes Der Wert wird aus dem Logeintrag abgeleitet.
network.sent_bytes Der Wert wird aus dem Logeintrag abgeleitet.
network.session_id Der Wert wird aus dem Logeintrag abgeleitet.
network.tls.cipher Der Wert wird aus dem Logeintrag abgeleitet.
network.tls.version Der Wert wird aus dem Logeintrag abgeleitet.
observer.asset.hostname Der Wert wird auf das Feld „Hostname“ festgelegt.
observer.asset.ip Der Wert wird auf das Feld „hostip“ festgelegt.
observer.hostname Der Wert wird auf das Feld „Hostname“ festgelegt.
observer.ip Der Wert wird auf das Feld „hostip“ festgelegt.
principal.application Der Wert wird aus dem Logeintrag abgeleitet.
principal.asset.hostname Der Wert wird auf das Feld „Hostname“ festgelegt.
principal.asset.ip Der Wert wird auf das Feld „hostip“ oder „prin_ip“ festgelegt, falls es vorhanden ist.
principal.asset.product_object_id Der Wert wird aus dem Logeintrag abgeleitet.
principal.hostname Der Wert wird auf das Feld „Hostname“ festgelegt.
principal.ip Der Wert wird auf das Feld „hostip“ oder „prin_ip“ festgelegt, falls es vorhanden ist.
principal.location.country_or_region Der Wert wird aus dem Logeintrag abgeleitet.
principal.platform Der Wert wird aus dem Logeintrag abgeleitet.
principal.port Der Wert wird aus dem Logeintrag abgeleitet.
principal.process.command_line Der Wert wird aus dem Logeintrag abgeleitet.
principal.process.pid Der Wert wird aus dem Logeintrag abgeleitet.
principal.resource.name Der Wert wird aus dem Logeintrag abgeleitet.
principal.resource.type Der Wert ist für einige Ereignisse im Parsercode hartcodiert und wird für andere aus dem Logeintrag abgeleitet.
principal.user.email_addresses Der Wert wird aus dem Logeintrag abgeleitet.
principal.user.userid Der Wert wird aus dem Logeintrag abgeleitet.
security_result.action Der Wert wird aus dem Logeintrag abgeleitet.
security_result.description Der Wert wird aus dem Logeintrag abgeleitet.
security_result.rule_name Der Wert wird aus dem Logeintrag abgeleitet.
security_result.severity Der Wert wird aus dem Logeintrag abgeleitet.
security_result.severity_details Der Wert wird aus dem Logeintrag abgeleitet.
security_result.summary Der Wert wird aus dem Logeintrag abgeleitet.
src.ip Der Wert wird aus dem Logeintrag abgeleitet.
src.location.country_or_region Der Wert wird aus dem Logeintrag abgeleitet.
src.port Der Wert wird aus dem Logeintrag abgeleitet.
target.asset.hostname Der Wert wird aus dem Logeintrag abgeleitet.
target.asset.ip Der Wert wird aus dem Logeintrag abgeleitet.
target.hostname Der Wert wird aus dem Logeintrag abgeleitet.
target.ip Der Wert wird aus dem Logeintrag abgeleitet.
target.port Der Wert wird aus dem Logeintrag abgeleitet.
target.process.command_line Der Wert wird aus dem Logeintrag abgeleitet.
target.process.pid Der Wert wird aus dem Logeintrag abgeleitet.
target.resource.id Der Wert wird aus dem Logeintrag abgeleitet.
target.url Der Wert wird aus dem Logeintrag abgeleitet.
target.user.userid Der Wert wird aus dem Logeintrag abgeleitet.

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