Netgate pfSense-Protokolle erfassen

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie die Netgate pfSense-Logs mit einem Google Security Operations-Forwarder erfassen können.

Weitere Informationen finden Sie unter Datenaufnahme in Google SecOps.

Mit einem Ingestion-Label wird der Parser identifiziert, der Rohdaten in das strukturierte UDM-Format normalisiert. Die Informationen in diesem Dokument beziehen sich auf den Parser mit dem Ingestion-Label PFSENSE.

Netgate pfSense konfigurieren

  1. Melden Sie sich mit Administratoranmeldedaten in der pfSense-Oberfläche an.
  2. Gehen Sie in den Einstellungen für Global log (Globales Log) so vor:
    1. Wählen Sie Status > Systemlogs > Einstellungen aus.
    2. Wählen Sie auf dem Tab Einstellungen die Option Allgemeine Protokollierungsoptionen aus und gehen Sie so vor:
      1. Wählen Sie im Feld Log message format (Logmeldungsformat) die Option syslog (RFC 5424, with RFC 3339 microsecond-precision timestamps) (syslog (RFC 5424, mit RFC 3339-Zeitstempeln mit Mikrosekundenpräzision)) aus.
      2. Klicken Sie im Feld Standardmäßige Firewallblockierungen protokollieren die folgenden Kästchen an:
        • Log-Pakete, die mit den Standardblockierungsregeln im Regelsatz übereinstimmen
        • Log-Paket, das mit den Standardregeln für das Bestehen des Tests im Regelsatz übereinstimmt
        • Von Regeln zum Blockieren von Bogon-Netzwerken blockierte Pakete protokollieren
        • Von Regeln zum Blockieren privater Netzwerke blockierte Log-Pakete
  3. Klicken Sie auf Speichern, um die neuen Einstellungen zu speichern.

Firewall-Logs an Google SecOps senden

  1. Wählen Sie in den Global log-Einstellungen Status > Systemprotokolle > Einstellungen aus.
  2. Wählen Sie auf dem Tab Einstellungen die Option Optionen für die Remote-Protokollierung aus und gehen Sie so vor:
    • Wählen Sie im Feld Remote-Logging aktivieren das Kästchen Logmeldungen an Remote-Syslog-Server senden aus.
    • Übernehmen Sie im Feld Source address den Standardwert Any.
    • Wenn die Quelladresse im Feld IP-Protokoll als Standardwert ausgewählt ist, müssen Sie die IP-Adresse nicht angeben. Geben Sie andernfalls die IP-Adresse ein.
    • Geben Sie unter Remote-Protokollserver die IP-Adresse des Google SecOps-Forwarders an.
    • Wählen Sie unter Remote-Syslog-Inhalte das Kästchen Firewall-Ereignisse aus.
  3. Klicken Sie auf Speichern, um die Änderungen zu speichern.

Google SecOps-Forwarder zum Erfassen von Netgate pfSense-Logs konfigurieren

  1. Wählen Sie SIEM Settings > Forwarders aus.
  2. Klicken Sie auf Neuen Weiterleitungsdienst hinzufügen.
  3. Geben Sie im Feld Name des Weiterleitungsdienstes einen eindeutigen Namen für den Weiterleitungsdienst ein.
  4. Klicken Sie auf Senden und dann auf Bestätigen. Der Weiterleiter wird hinzugefügt und das Fenster Collector-Konfiguration hinzufügen wird angezeigt.
  5. Geben Sie im Feld Name des Collectors einen eindeutigen Namen für den Collector ein.
  6. Wählen Sie pfSense als Logtyp aus.
  7. Wählen Sie im Feld Collector-Typ die Option Syslog aus.
  8. Konfigurieren Sie die folgenden obligatorischen Eingabeparameter:
    • Protokoll: Geben Sie das Verbindungsprotokoll an, das der Collector verwendet, um auf Syslog-Daten zu warten.
    • Adresse: Geben Sie die Ziel-IP-Adresse oder den Hostnamen an, auf dem sich der Collector befindet und auf Syslog-Daten wartet.
    • Port: Geben Sie den Zielport an, auf dem sich der Collector befindet und auf dem er Syslog-Daten empfängt.
  9. Klicken Sie auf Senden.

Weitere Informationen zu den Google SecOps-Weiterleitungen finden Sie unter Weiterleitungskonfigurationen über die Google SecOps-Benutzeroberfläche verwalten.

Wenn beim Erstellen von Weiterleitungen Probleme auftreten, wenden Sie sich an den Google SecOps-Support.

Referenz zur Feldzuordnung

Dieser pfSense-Firewall-Parser extrahiert Felder aus Syslog-Nachrichten mithilfe von Grok-Mustern und verarbeitet verschiedene Logformate, einschließlich DHCP- und Firewall-Ereignisse. Anschließend werden diese extrahierten Felder dem UDM zugeordnet und die Daten werden mit Kontextinformationen wie IP-Adressen, MAC-Adressen, Nutzernamen und Netzwerkdetails angereichert.

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
Anwendung principal.application Der Wert wird mithilfe von Grok-Mustern aus der Log-Nachricht extrahiert. Bei Syslog-Meldungen befindet sich der Anwendungsname in der Regel nach dem Hostnamen und dem Zeitstempel.
Befehl principal.process.command_line Wird aus dem Beschreibungsfeld extrahiert, wenn das Protokoll auf die Ausführung eines Befehls hinweist.
description metadata.description Das Feld „description“ wird der UDM-Metadatenbeschreibung zugeordnet, mit Ausnahme von syslog-ng-Anwendungsprotokollen, bei denen es metadata.description zugeordnet wird. Bei DHCP-Ereignissen wird der Beschreibung dhcp_type vorangestellt.
dhcp_type metadata.product_event_type Der DHCP-Nachrichtentyp (z.B. DHCPDISCOVER, DHCPOFFER) wird extrahiert und zugeordnet.
Host intermediary.hostname ODER intermediary.ip Wenn der Hostwert eine gültige IP-Adresse ist, wird er intermediary.ip zugeordnet. Andernfalls wird sie intermediary.hostname zugeordnet.
Host principal.hostname, principal.asset.hostname Wenn keine Haupt-IP vorhanden ist, wird der Host als Haupt-Hostname behandelt.
mac principal.mac, network.dhcp.chaddr Die MAC-Adresse, die einer DHCP-Anfrage zugeordnet ist, wird extrahiert und zugeordnet.
src_ip principal.ip, principal.asset.ip Aus bestimmten Logformaten mit einem Grok-Muster extrahiert.
src_mac principal.mac Aus bestimmten Logformaten mit einem Grok-Muster extrahiert.
dst_mac target.mac Aus bestimmten Logformaten mit einem Grok-Muster extrahiert.
timestamp metadata.event_timestamp Der Zeitstempel wird aus der Log-Nachricht extrahiert und in ein UDM-Zeitstempelformat konvertiert. Die Zeitzoneninformationen (tz) werden dem Zeitstempel vor der Konvertierung angehängt, sofern verfügbar.
timestamp_no_year metadata.event_timestamp Wenn ein Zeitstempel ohne Jahr vorhanden ist, wird er geparst und das aktuelle Jahr wird während des Parsens hinzugefügt.
Nutzer principal.user.userid Der mit einem Ereignis verknüpfte Nutzername wird extrahiert und zugeordnet.
Spalte1 security_result.rule_id Wird aus der ersten CSV-Spalte zugeordnet, wenn die Beschreibung im CSV-Format vorliegt.
column6 security_result.rule_type Wird aus der sechsten CSV-Spalte zugeordnet, wenn die Beschreibung im CSV-Format vorliegt.
column7 security_result.action Wird aus der siebten CSV-Spalte zugeordnet, wenn die Beschreibung im CSV-Format vorliegt. In „BLOCK“ oder „ALLOW“ konvertiert.
column8 network.direction Wird aus der achten CSV-Spalte zugeordnet, wenn die Beschreibung im CSV-Format vorliegt. In „INBOUND“ oder „OUTBOUND“ konvertiert.
column13 network.ip_protocol (bei UDP oder ICMP) Wird aus der dreizehnten CSV-Spalte zugeordnet, wenn die Beschreibung im CSV-Format vorliegt und das Protokoll UDP oder ICMP ist. Bei TCP/UDP-Ereignissen wird damit ein zusätzliches Feld mit dem Schlüssel „Id“ erstellt.
column16 principal.ip, principal.asset.ip (wenn IPv6 und column9 = 6) Wird aus der sechzehnten CSV-Spalte zugeordnet, wenn die Beschreibung im CSV-Format vorliegt und column9 den Wert 6 hat. Bei TCP/UDP-Ereignissen wird sie zur Protokollidentifizierung verwendet, wenn column9 den Wert 4 hat.
column17 target.ip, target.asset.ip (wenn IPv6 und nicht „ip_failure“) Wird aus der siebzehnten CSV-Spalte zugeordnet, wenn die Beschreibung im CSV-Format vorliegt, column9 gleich 6 ist und der Wert eine gültige IP-Adresse ist. Bei TCP/UDP-Ereignissen wird es zur Protokollidentifizierung verwendet.
column18 principal.port (falls UDP) Wird aus der 18. CSV-Spalte zugeordnet, wenn die Beschreibung im CSV-Format vorliegt und das Protokoll UDP ist. Bei TCP/UDP-Ereignissen wird sie network.received_bytes zugeordnet.
column19 target.port (falls UDP) Wird aus der neunzehnten CSV-Spalte zugeordnet, wenn die Beschreibung im CSV-Format vorliegt und das Protokoll UDP ist. Bei DHCP-Ereignissen wird es network.dhcp.yiaddr zugeordnet. Bei anderen Ereignissen wird es principal.ip, principal.asset.ip zugeordnet.
column20 additional.fields (Schlüssel: „data_length“) (bei UDP) Wird aus der zwanzigsten CSV-Spalte zugeordnet, wenn die Beschreibung im CSV-Format vorliegt und das Protokoll UDP ist. Bei anderen Ereignissen wird es target.ip, target.asset.ip zugeordnet.
column21 principal.port (bei TCP/UDP) Wird aus der 21. CSV-Spalte zugeordnet, wenn die Beschreibung im CSV-Format vorliegt und das Protokoll TCP oder UDP ist.
column22 target.port (bei TCP/UDP) Wird aus der 22. CSV-Spalte zugeordnet, wenn die Beschreibung im CSV-Format vorliegt und das Protokoll TCP oder UDP ist.
column23 additional.fields (Schlüssel: „data_length“) (bei TCP/UDP) Wird aus der 23. CSV-Spalte zugeordnet, wenn die Beschreibung im CSV-Format vorliegt und das Protokoll TCP oder UDP ist.
column24 additional.fields (Schlüssel: „tcp_flags“) (bei TCP) Wird aus der 24. CSV-Spalte zugeordnet, wenn die Beschreibung im CSV-Format vorliegt und das Protokoll TCP ist.
column25 additional.fields (Schlüssel: „sequence_number“) (bei TCP/UDP) Wird aus der 25. CSV-Spalte zugeordnet, wenn die Beschreibung im CSV-Format vorliegt und das Protokoll TCP oder UDP ist.
column29 additional.fields (Schlüssel: „tcp_options“) (bei TCP) Wird aus der 29. CSV-Spalte zugeordnet, wenn die Beschreibung im CSV-Format vorliegt und das Protokoll TCP ist.
compression_algo additional.fields (Schlüssel: „Compression Algorithm“) Aus dem Beschreibungsfeld extrahiert und als zusätzliches Feld hinzugefügt.
Ab metadata.description Aus dem Nachrichtenfeld extrahiert und als Beschreibung verwendet.
principal_ip principal.ip, principal.asset.ip Wird aus dem Feld „Beschreibung“ extrahiert und stellt die primäre IP-Adresse dar.
principal_username principal.user.userid Wird aus dem Feld „Beschreibung“ extrahiert und stellt den Hauptnutzernamen dar.
Status security_result.detection_fields (Schlüssel: „status“) Aus dem Beschreibungsfeld extrahiert und als Erkennungsfeld im Sicherheitsergebnis hinzugefügt.
target_host target.hostname, target.asset.hostname Wird aus dem Feld „Beschreibung“ extrahiert und stellt den Zielhostnamen dar.
src_port principal.port Wird aus dem Feld „Beschreibung“ extrahiert und stellt den Quellport dar. Wird anhand verschiedener Logfelder und der Parserlogik ermittelt. Kann NETWORK_CONNECTION, NETWORK_DHCP, STATUS_UPDATE oder GENERIC_EVENT sein. Fest codiert auf „PFSENSE“. Fest codiert auf „PFSENSE“. Fest codiert auf „PFSENSE“. Für DHCP-Ereignisse auf „DHCP“ festlegen. Auf „BOOTREQUEST“ für DHCPDISCOVER und DHCPREQUEST und auf „BOOTREPLY“ für DHCPOFFER und DHCPACK festlegen. Legen Sie basierend auf dem Feld dhcp_type „DISCOVER“, „REQUEST“, „OFFER“ oder „ACK“ fest.

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