Fortinet Web Proxy-Logs erfassen
In diesem Dokument wird beschrieben, wie Sie Fortinet Web Proxy-Logs mit dem Bindplane-Agent in Google Security Operations aufnehmen.
Der Fortinet FortiGate-Webproxy generiert Protokolle für explizite und transparente Proxy-Sitzungen und erfasst HTTP-/HTTPS-Traffic, Entscheidungen zur URL-Filterung und Webzugriffsereignisse. Die Logs verwenden das Syslog-Schlüssel/Wert-Format und enthalten Netzwerkmetadaten, Sicherheitsaktionen und Informationen zur Nutzeridentität.
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 der FortiGate-Appliance
- 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 die FortiGate-Appliance mit Administratorberechtigungen
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 BindPlane 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 /opt/observiq-otel-collector/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: udplog: listen_address: "0.0.0.0:514" exporters: chronicle/fortinet_webproxy: compression: gzip creds_file_path: '/etc/bindplane-agent/ingestion-auth.json' customer_id: '<customer_id>' endpoint: malachiteingestion-pa.googleapis.com log_type: FORTINET_WEBPROXY raw_log_field: body ingestion_labels: env: production service: pipelines: logs/webproxy_to_chronicle: receivers: - udplog exporters: - chronicle/fortinet_webproxy
Konfigurationsparameter
Ersetzen Sie die folgenden Platzhalter:
Konfiguration des Empfängers:
udplog: Der Empfängertyp basierend auf dem Protokoll:udplogfür UDP-Syslogtcplogfür TCP-Syslog
0.0.0.0: IP-Adresse, auf der gelauscht werden soll:0.0.0.0, um alle Schnittstellen zu überwachen (empfohlen)- Bestimmte IP-Adresse, die auf einer Schnittstelle überwacht werden soll
514: Portnummer, die überwacht werden soll (z. B.514,1514,6514)
Exporter-Konfiguration:
fortinet_webproxy: Beschreibender Name für den Exportvorgangcreds_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 aus dem vorherigen Schrittendpoint: 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:
FORTINET_WEBPROXY: Logtyp genau wie in Chronicleingestion_labels: Optionale Labels im YAML-Format (z. B.env: production)
Pipelinekonfiguration:
webproxy_to_chronicle: Aussagekräftiger Name für die Pipeline
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
Syslog-Weiterleitung für Fortinet FortiGate-Webproxy konfigurieren
- Melden Sie sich in der Weboberfläche von FortiGate an.
- Gehen Sie zu Log & Report > Log Settings (Protokoll & Bericht > Protokolleinstellungen).
- Scrollen Sie nach unten zum Abschnitt Remote Logging and Archiving (Remote-Protokollierung und ‑Archivierung).
- Klicken Sie unter Syslog auf Hinzufügen.
- Geben Sie die folgenden Konfigurationsdetails an:
- Name: Geben Sie einen aussagekräftigen Namen ein, z. B.
Chronicle-Bindplane. - IP-Adresse/FQDN: Geben Sie die IP-Adresse des Bindplane-Agent-Hosts ein (z. B.
192.168.1.100). - Port: Geben Sie
514ein (muss mit dem Empfängerport des BindPlane-Agenten übereinstimmen). - Protokoll: Wählen Sie UDP aus.
- Mindeststufe: Wählen Sie Informationen oder Benachrichtigung aus.
- Name: Geben Sie einen aussagekräftigen Namen ein, z. B.
Achten Sie darauf, dass die Logkategorie Web-Proxy aktiviert ist. Alternativ können Sie den Syslog-Filter über die Befehlszeile konfigurieren:
config log syslogd setting set status enable set server <BINDPLANE_AGENT_IP> set port 514 end config log syslogd filter set filter "logid(0300)" set filter-type include end- Der Log-ID-Bereich
0300umfasst Webproxy-Ereignisse. Passen Sie den Filter an Ihre Umgebung an. - Ersetzen Sie
<BINDPLANE_AGENT_IP>durch die IP-Adresse des Bindplane-Agent-Hosts.
- Der Log-ID-Bereich
Klicken Sie zum Speichern auf OK.
Klicken Sie rechts oben auf Übernehmen, um die Konfiguration zu übernehmen.
Prüfen Sie anhand der Bindplane-Agent-Logs, ob Syslog-Nachrichten empfangen werden.
UDM-Zuordnungstabelle
| Logfeld | UDM-Zuordnung | Logik |
|---|---|---|
| group, profile, agent, subtype, catdesc, reqtype | additional.fields | Mit Labels zusammengeführt, die aus den einzelnen Feldern erstellt wurden |
| action, has_network, has_principal, has_target | metadata.event_type | Auf USER_LOGIN setzen, wenn die Aktion „auth-logon“ ist, andernfalls auf NETWORK_HTTP, wenn „has_network“ auf „true“ gesetzt ist, andernfalls auf NETWORK_CONNECTION, wenn „has_principal“ und „has_target“ auf „true“ gesetzt sind, andernfalls auf STATUS_UPDATE, wenn „has_principal“ auf „true“ gesetzt ist, andernfalls auf GENERIC_EVENT. |
| eventtype | metadata.product_event_type | Wert direkt kopiert |
| logid | metadata.product_log_id | Wert direkt kopiert |
| metadata.product_name | Auf „FORTINET_WEBPROXY“ festgelegt | |
| metadata.vendor_name | Auf „FORTINET_WEBPROXY“ festgelegt | |
| Dienst | network.application_protocol | Wert wird direkt kopiert, wenn der Dienst in HTTP oder HTTPS ist |
| direction | network.direction | Auf INBOUND festlegen, wenn die Richtung „incoming“, „inbound“ oder „response“ ist, andernfalls auf OUTBOUND, wenn die Richtung „outgoing“ oder „outbound“ ist. |
| httpmethod | network.http.method | Wert wird direkt kopiert, wenn httpmethod in GET, POST |
| referralurl | network.http.referral_url | Wert direkt kopiert |
| proto, subtype, service | network.ip_protocol | Auf UDP setzen, wenn proto=17, auf TCP, wenn proto=6 oder subtype=wad, auf IP6IN4, wenn proto=41, auf ICMP, wenn service=PING oder proto=1 oder service mit ICMP übereinstimmt |
| rcvdbyte | network.received_bytes | In vorzeichenlose Ganzzahl konvertiert |
| sentbyte | network.sent_bytes | In vorzeichenlose Ganzzahl konvertiert |
| sessionid | network.session_id | Wert direkt kopiert |
| devname | principal.asset.hostname | Wert direkt kopiert |
| srcip | principal.asset.ip | Wert direkt kopiert |
| devname | principal.hostname | Wert direkt kopiert |
| srcip | principal.ip | Wert direkt kopiert |
| srccountry | principal.location.country_or_region | Wert wird direkt kopiert, wenn er nicht reserviert und nicht leer ist |
| srcport | principal.port | In Ganzzahl konvertiert |
| srcuuid | principal.user.product_object_id | Wert direkt kopiert |
| vd | principal.user.user_display_name | Wert direkt kopiert |
| Nutzer | principal.user.userid | Wert direkt kopiert |
| filtername | security_result.about.resource.attribute.labels | Wird mit dem Label zusammengeführt, das aus dem Filternamen erstellt wurde, wenn dieser nicht leer und nicht „-“ ist. |
| Aktion | security_result.action | Auf BLOCK setzen, wenn action=blocked, auf ALLOW, wenn action in accept, passthrough |
| devid, policyid, srcintf, srcintfrole, ratemethod, cat | security_result.detection_fields | Mit Labels zusammengeführt, die aus den einzelnen Feldern erstellt wurden |
| msg | security_result.description | Wert direkt kopiert |
| poluuid | security_result.rule_id | Wert direkt kopiert |
| policytype | security_result.rule_type | Wert direkt kopiert |
| level | security_result.severity | Auf „HIGH“ setzen, wenn level=warning, auf „MEDIUM“, wenn level=notice |
| Typ | security_result.summary | Wert direkt kopiert |
| dstip | target.asset.ip | Wert direkt kopiert |
| filename | target.file.full_path | Wert direkt kopiert |
| filetype | target.file.mime_type | Wert direkt kopiert |
| filesize | target.file.size | In vorzeichenlose Ganzzahl konvertiert |
| Hostname | target.hostname | Wert direkt kopiert |
| dstip | target.ip | Wert direkt kopiert |
| dstcountry | target.location.country_or_region | Wert direkt kopiert |
| dstport | target.port | In Ganzzahl konvertiert |
| dstintf, dstintfrole | target.resource.attribute.labels | Mit Labels zusammengeführt, die aus den einzelnen Feldern erstellt wurden |
| dstuuid | target.resource.product_object_id | Wert direkt kopiert |
| URL | target.url | Wert direkt kopiert |
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten