F5 AFM-Logs erfassen
In diesem Dokument wird beschrieben, wie Sie F5 AFM-Logs (Advanced Firewall Management) mit dem Bindplane-Agent in Google Security Operations aufnehmen.
F5 BIG-IP AFM ist ein Netzwerkfirewallmodul, das Syslog-Meldungen für Firewallregelaktionen (Annehmen, Verwerfen, Ablehnen), IP-Intelligence-Ereignisse und TCP-Fehler generiert. Der Parser extrahiert Felder aus CSV- oder 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 und F5 Advanced Firewall Management
Authentifizierungsdatei für die Aufnahme in Google SecOps abrufen
- Melden Sie sich in der Google SecOps-Konsole an.
- Rufen Sie die SIEM-Einstellungen > Collection 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 wird.
Google SecOps-Kundennummer abrufen
- Melden Sie sich in der Google SecOps-Konsole an.
- Rufen Sie die SIEM-Einstellungen > Profile auf.
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
- Öffnen Sie die Eingabeaufforderung oder PowerShell als Administrator.
Führen Sie dazu diesen Befehl aus:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quietWarten Sie, bis die Installation abgeschlossen ist.
Überprüfen Sie die Installation mit folgendem Befehl:
sc query observiq-otel-collectorDer Dienst sollte als RUNNING (Wird ausgeführt) angezeigt werden.
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 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.yamlWindows:
notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
Konfigurationsdatei bearbeiten
Ersetzen Sie den gesamten Inhalt von
config.yamldurch die folgende Konfiguration:receivers: tcplog: listen_address: "0.0.0.0:5145" exporters: chronicle/f5_afm: compression: gzip creds_file_path: '/etc/bindplane-agent/ingestion-auth.json' customer_id: '<customer_id>' endpoint: malachiteingestion-pa.googleapis.com log_type: F5_AFM raw_log_field: body service: pipelines: logs/f5_afm_to_chronicle: receivers: - tcplog exporters: - chronicle/f5_afm
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
5145wird für die F5 AFM-Hochgeschwindigkeitsprotokollierung verwendet (an Ihre F5-Konfiguration anpassen).
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
- Linux:
customer_id: Kunden-ID, die aus der Google SecOps Console kopiert wurdeendpoint: 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.
- USA:
Konfigurationsdatei speichern
- Speichern Sie die Datei nach der Bearbeitung:
- Linux: Drücken Sie
Ctrl+O, dannEnterund dannCtrl+X. - Windows: Klicken Sie auf Datei > Speichern.
- Linux: Drücken Sie
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-collectorPrüfen Sie, ob der Dienst ausgeführt wird:
sudo systemctl status observiq-otel-collectorLogs 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-collectorServices-Konsole:
- Drücken Sie
Win+R, geben Sieservices.mscein und drücken Sie die Eingabetaste. - Suchen Sie nach observIQ OpenTelemetry Collector.
- Klicken Sie mit der rechten Maustaste und wählen Sie Neu starten aus.
Prüfen Sie, ob der Dienst ausgeführt wird:
sc query observiq-otel-collectorLogs auf Fehler prüfen:
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
- Drücken Sie
F5 BIG-IP Advanced Firewall Manager aktivieren
- Melden Sie sich in der Verwaltungskonsole der BIG-IP-Appliance an.
- Gehen Sie zu System > Lizenz.
- Prüfen Sie, ob der Advanced Firewall Manager lizenziert und aktiviert ist.
- Um den Advanced Firewall Manager zu aktivieren, gehen Sie zu System > Ressource > Bereitstellung.
- Setzen Sie ein Häkchen in der Spalte „Bereitstellung“ und wählen Sie Nominal aus der Liste aus.
- Klicken Sie auf Senden.
Logging-Pool in F5 AFM konfigurieren
- Gehen Sie zu Lokaler Traffic > Pools.
- Klicken Sie auf Erstellen.
- Geben Sie die folgenden Konfigurationsdetails an:
- Name: Geben Sie einen Namen für den Logging-Pool ein, z. B. logging_pool.
- Health Monitor (Zustandsmonitor): Wählen Sie in der Liste Available (Verfügbar) die Option TCP aus und klicken Sie auf <<.
- Wählen Sie auf dem Tab Ressource in der Liste Knotenname den zuvor erstellten Logging Pool (Protokollierungspool) aus.
- Geben Sie im Feld Adresse die IP-Adresse des Bindplane-Agents ein.
- Geben Sie im Feld Service Port (Serviceport)
5145oder einen anderen Port ein, den Sie im Bindplane-Agenten definiert haben. - Klicken Sie auf Hinzufügen.
- Klicken Sie auf Beenden.
Ziel für formatiertes Log in F5 AFM konfigurieren
- Gehen Sie zu System> Protokolle> Konfiguration> Protokollziele.
- Klicken Sie auf Erstellen.
- Geben Sie die folgenden Konfigurationsdetails an:
- Name: Geben Sie einen Namen für das Ziel des Logging-Formats ein, z. B.
Logging_Format_Destination. - Beschreibung: Geben Sie eine Beschreibung ein.
- Typ: Wählen Sie Remote-Syslog aus.
- Syslog Format (Syslog-Format): Wählen Sie Syslog aus.
- High-Speed Log Destination (Ziel für High-Speed-Logs): Wählen Sie das Ziel für High-Speed-Logs aus, z. B.
Logging_HSL_Destination.
- Name: Geben Sie einen Namen für das Ziel des Logging-Formats ein, z. B.
- Klicken Sie auf Fertig.
Log Publisher in F5 AFM konfigurieren
- Gehen Sie zu System > Protokolle > Konfiguration > Log Publishers.
- Klicken Sie auf Erstellen.
- Geben Sie die folgenden Konfigurationsdetails an:
- Name: Geben Sie einen Namen für den Verlag oder Webpublisher ein, z. B.
Log_Publisher. - Beschreibung: Geben Sie eine Beschreibung ein.
- Ziele: Wählen Sie den Namen des Protokollziels aus, den Sie im Schritt Logging-Pool in F5 AFM konfigurieren erstellt haben, und klicken Sie auf <<, um Elemente der Liste Ausgewählt hinzuzufügen.
- Name: Geben Sie einen Namen für den Verlag oder Webpublisher ein, z. B.
Logging-Profil in F5 AFM konfigurieren
- Rufen Sie Sicherheit > Ereignisprotokolle > Protokollierungsprofil auf.
- Klicken Sie auf Erstellen.
- Geben Sie die folgenden Konfigurationsdetails an:
- Name: Geben Sie einen Namen für das Logprofil ein, z. B. Logging_Profile.
- Network Firewall (Netzwerk-Firewall): Klicken Sie das Kästchen Aktiviert an.
- Publisher: Wählen Sie den Log-Publisher aus, den Sie zuvor konfiguriert haben (z. B.
Log_Publisher). - Log Rule Matches (Regelübereinstimmungen protokollieren): Aktivieren Sie die Kästchen Accept (Annehmen), Drop (Verwerfen) und Reject (Ablehnen).
- IP-Fehler protokollieren: Wählen Sie das Kästchen Aktiviert aus.
- TCP-Fehler protokollieren: Klicken Sie das Kästchen Aktiviert an.
- TCP-Ereignisse protokollieren: Klicken Sie das Kästchen Aktiviert an.
- Speicherformat: Wählen Sie Feldliste aus.
- Trennzeichen: Geben Sie
,(Komma) als Trennzeichen für Ereignisse ein. - Speicheroptionen: Wählen Sie in der Liste Verfügbare Elemente alle Optionen aus und klicken Sie auf <<.
- Wählen Sie auf dem Tab IP Intelligence den konfigurierten Log-Publisher aus (z. B.
Log_Publisher).
- Klicken Sie auf Fertig.
Zuordnung von Virtual Server-Profilen in F5 AFM konfigurieren
- Gehen Sie zu Lokaler Traffic > Virtuelle Server.
- Wählen Sie den zu ändernden virtuellen Server aus.
- Rufen Sie den Tab „Sicherheit“ > „Richtlinien“ auf.
- Wählen Sie in der Liste Log Profile (Log-Profil) die Option Enabled (Aktiviert) aus.
- Wählen Sie im Feld Profil die Option Logging_Profile aus und klicken Sie auf <<.
- Klicken Sie auf Aktualisieren.
UDM-Zuordnungstabelle
| Logfeld | UDM-Zuordnung | Logik |
|---|---|---|
| acl_policy_name | security_result.detection_fields.acl_policy_name | Wert von „column22“, wenn das Logformat SYSLOG ist, andernfalls Wert von „column13“ |
| acl_policy_type | security_result.detection_fields.acl_policy_type | Wert von column21, wenn das Logformat SYSLOG ist, andernfalls Wert von column18 |
| acl_rule_name | security_result.rule_name | Wert von column23, wenn das Logformat SYSLOG ist, andernfalls Wert von column11 |
| acl_rule_uuid | security_result.rule_id | Wert des Felds „acl_rule_uuid“ aus dem Grok-Muster |
| Aktion | security_result.action | Wenn der Wert von „column25“ Drop, Reject oder Block ist, dann BLOCK. Andernfalls, wenn der Wert von „column25“ Accept, Accept decisively, Established oder Allow ist, dann ALLOW. |
| attackID | security_result.detection_fields.attackID | Wert von column12, wenn das Logformat CSV ohne src_ip ist |
| bigip_hostname | intermediary.hostname | Wert von „column2“, wenn das Log-Format SYSLOG ist, andernfalls Wert von „column3“ |
| bigip_ip | intermediary.ip | Wert von „column2“, wenn das Logformat SYSLOG ist, andernfalls Wert von „column1“ |
| context_name | additional.fields.context_name.string_value | Wert von „column4“, wenn das Logformat SYSLOG ist, andernfalls Wert von „column10“, wenn „src_ip“ vorhanden ist, andernfalls Wert von „column5“ |
| context_type | additional.fields.context_type.string_value | Wert von „column3“, wenn das Logformat SYSLOG ist, andernfalls Wert von „column4“, wenn „src_ip“ vorhanden ist, andernfalls Wert von „column4“ |
| dest_fqdn | additional.fields.dest_fqdn.string_value | Wert von „column7“, wenn das Logformat SYSLOG ist, andernfalls Wert von „column13“ |
| dest_geo | additional.fields.dest_geo.string_value | Wert von column14 |
| dest_ip | target.asset.ip, target.ip | Wert von „column8“, wenn das Logformat SYSLOG ist, andernfalls Wert von „column6“, wenn „src_ip“ vorhanden ist, andernfalls Wert von „column6“ |
| dest_port | target.port | Wert von „column10“, wenn das Logformat SYSLOG ist, andernfalls Wert von „column8“, wenn „src_ip“ vorhanden ist, andernfalls Wert von „column8“ |
| drop_reason | security_result.summary | Wert von „column26“, wenn das Logformat SYSLOG ist, andernfalls Wert von „column19“ |
| eventId | additional.fields.eventId.string_value | Im Grok-Muster erfasster Wert |
| flow_id | additional.fields.flow_id.string_value | Wert von „column29“, wenn das Logformat SYSLOG ist, andernfalls Wert von „column17“ |
| loglevel | security_result.severity | Wenn der Wert des Felds „loglevel“ aus dem Grok-Muster warning, debug oder notice ist, dann MEDIUM. Wenn der Wert info oder informational ist, dann INFORMATIONAL. Wenn der Wert err oder error ist, dann HIGH. Wenn der Wert alert, crit oder emer ist, dann CRITICAL. |
| packetsReceived | network.received_packets | Wert von column15, wenn das Logformat CSV ohne src_ip ist |
| verarbeiten | target.application | Wert des Prozessfelds aus dem Grok-Muster |
| protocol_number_src | network.ip_protocol | Wert von „column12“, wenn das Logformat SYSLOG ist. Andernfalls wird der Wert aus der Variablen „ip_protocol_out“ extrahiert. |
| route_domain | additional.fields.route_domain.string_value | Wert von „column13“, wenn das Logformat SYSLOG ist, andernfalls Wert von „column9“ |
| source_fqdn | additional.fields.source_fqdn.string_value | Wert von „column5“, wenn das Logformat SYSLOG ist, andernfalls Wert von „column7“ |
| src_geo | additional.fields.src_geo.string_value | Wert von „column8“ |
| src_ip | principal.asset.ip, principal.ip | Wert von „column6“, wenn das Logformat SYSLOG ist, andernfalls Wert von „column9“, wenn das Logformat CSV ohne „src_ip“ ist, andernfalls Wert von „column5“ |
| src_port | principal.port | Wert von „column9“, wenn das Logformat SYSLOG ist, andernfalls Wert von „column7“, wenn das Logformat CSV ohne „src_ip“ ist, andernfalls Wert von „column7“ |
| ts | metadata.event_timestamp | Wert des Felds „ts“ aus dem Grok-Muster |
| vlan | additional.fields.vlan.string_value | Wert von „column11“, wenn das Logformat SYSLOG ist, andernfalls Wert von „column21“ |
| metadata.event_type | Wenn src_ip und dest_ip vorhanden sind, dann NETWORK_CONNECTION, andernfalls, wenn nur src_ip vorhanden ist, dann STATUS_UPDATE, andernfalls GENERIC_EVENT | |
| metadata.log_type | F5_AFM | |
| metadata.product_name | Erweiterte Firewall-Verwaltung | |
| metadata.vendor_name | F5 |
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten