Netgate pfSense-Protokolle erfassen

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie die Netgate pfSense-Protokolle mithilfe eines Google Security Operations-Weiterleiters erfassen können.

Weitere Informationen finden Sie unter Datenaufnahme in Google SecOps.

Mit einem Datenaufnahmelabel wird der Parser angegeben, der Roh-Logdaten in das strukturierte UDM-Format normalisiert. Die Informationen in diesem Dokument beziehen sich auf den Parser mit dem Datenaufnahmelabel PFSENSE.

Netgate pfSense konfigurieren

  1. Melden Sie sich mit Administratoranmeldedaten in der pfSense-Benutzeroberfläche an.
  2. Führen Sie in den Einstellungen für das globale Protokoll die folgenden Schritte aus:
    1. Wählen Sie Status > Systemprotokolle > Einstellungen aus.
    2. Wählen Sie auf dem Tab Einstellungen die Option Allgemeine Protokollierungsoptionen aus und führen Sie die folgenden Schritte aus:
      1. Wählen Sie im Feld Lognachrichtenformat die Option Syslog (RFC 5424, mit Zeitstempeln im RFC 3339-Format mit Mikrosekundengenauigkeit) aus.
      2. Klicken Sie im Feld Firewall-Standardblockierungen protokollieren die folgenden Kästchen an:
        • Pakete protokollieren, die mit den Standardblockierungsregeln in der Regelsatzdatei übereinstimmen
        • Protokollpaket, das mit den in der Regelliste festgelegten Standard-Karten-/Ticketregeln übereinstimmt
        • Pakete protokollieren, die durch die Regeln „Block bogon networks“ blockiert wurden
        • Pakete protokollieren, die durch die Regeln „Private Netzwerke blockieren“ blockiert wurden
  3. Klicken Sie auf Speichern, um die neuen Einstellungen zu speichern.

Firewall-Protokolle an Google SecOps senden

  1. Wählen Sie in den Einstellungen für das globale Protokoll die Option Status > Systemprotokolle > Einstellungen aus.
  2. Wählen Sie auf dem Tab Einstellungen die Option Optionen für die Remote-Protokollierung aus und führen Sie die folgenden Schritte aus:
    • Klicken Sie im Feld Remote-Logging aktivieren auf das Kästchen Protokollmeldungen an Remote-Syslog-Server senden.
    • Behalten Sie im Feld Quelladresse den Standardwert Beliebig bei.
    • Wenn im Feld IP-Protokoll die Quelladresse als Standardwert ausgewählt ist, müssen Sie die IP-Adresse nicht angeben. Andernfalls geben Sie die IP-Adresse ein.
    • Geben Sie unter Remote-Log-Server die IP-Adresse des Google SecOps-Weiterleiters an.
    • Klicken Sie unter Remote syslog-Inhalt das Kästchen Firewall-Ereignisse an.
  3. Klicken Sie auf Speichern, um die Änderungen zu speichern.

Google SecOps-Weiterleiter für die Aufnahme von Netgate pfSense-Logs konfigurieren

  1. Wählen Sie SIEM-Einstellungen > Weiterleitungen aus.
  2. Klicken Sie auf Neuen Weiterleiter hinzufügen.
  3. Geben Sie im Feld Name des Absenders einen eindeutigen Namen für den Absender ein.
  4. Klicken Sie auf Senden und dann auf Bestätigen. Der Weiterleiter wird hinzugefügt und das Fenster Aufnehmerkonfiguration 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 Typ des Collectors die Option Syslog aus.
  8. Konfigurieren Sie die folgenden obligatorischen Eingabeparameter:
    • Protokoll: Geben Sie das Verbindungsprotokoll an, mit dem der Collector nach syslog-Daten sucht.
    • Address (Adresse): Geben Sie die Ziel-IP-Adresse oder den Hostnamen an, unter der bzw. dem sich der Collector befindet und auf syslog-Daten wartet.
    • Port: Gibt den Zielport an, an dem sich der Collector befindet und auf syslog-Daten wartet.
  9. Klicken Sie auf Senden.

Weitere Informationen zu 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 für die Feldzuordnung

Dieser pfSense-Firewall-Parser extrahiert Felder aus syslog-Nachrichten mithilfe von Grok-Mustern und verarbeitet verschiedene Protokollformate, einschließlich DHCP- und Firewall-Ereignissen. Diese extrahierten Felder werden dann dem UDM zugeordnet und die Daten werden um Kontextinformationen wie IP-Adressen, MAC-Adressen, Nutzernamen und Netzwerkdetails ergänzt.

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
Anwendung principal.application Der Wert wird mithilfe von Grok-Mustern aus der Protokollnachricht extrahiert. Bei syslog-Nachrichten wird der Name der Anwendung in der Regel nach dem Hostnamen und dem Zeitstempel angezeigt.
Befehl principal.process.command_line Wird aus dem Beschreibungsfeld extrahiert, wenn das Protokoll eine Befehlsausführung angibt.
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 die dhcp_type vorangestellt.
dhcp_type metadata.product_event_type Der DHCP-Nachrichtentyp (z.B. DHCPDISCOVER, DHCPOFFER) werden 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 es intermediary.hostname zugeordnet.
Host principal.hostname, principal.asset.hostname Wenn keine Haupt-IP-Adresse vorhanden ist, wird der Host als Haupt-Hostname behandelt.
mac principal.mac, network.dhcp.chaddr Die MAC-Adresse, die mit einer DHCP-Anfrage verknüpft ist, wird extrahiert und zugeordnet.
src_ip principal.ip, principal.asset.ip Sie werden mithilfe eines Grok-Musters aus bestimmten Protokollformaten extrahiert.
src_mac principal.mac Sie werden mithilfe eines Grok-Musters aus bestimmten Protokollformaten extrahiert.
dst_mac target.mac Sie werden mithilfe eines Grok-Musters aus bestimmten Protokollformaten extrahiert.
timestamp metadata.event_timestamp Der Zeitstempel wird aus der Protokollnachricht extrahiert und in ein UDM-Zeitstempelformat konvertiert. Die Zeitzoneninformationen (tz) werden vor der Umwandlung an den Zeitstempel angehängt, sofern verfügbar.
timestamp_no_year metadata.event_timestamp Wenn ein Zeitstempel ohne Jahr vorhanden ist, wird er analysiert und das aktuelle Jahr wird während des Analysevorgangs 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 „BLOCKIEREN“ oder „ZULASSEN“ umgewandelt.
column8 network.direction Wird aus der achten CSV-Spalte zugeordnet, wenn die Beschreibung im CSV-Format vorliegt. In „INBOUND“ oder „OUTBOUND“ umgewandelt.
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 (bei IPv6 und Spalte 9 mit dem Wert 6) Wird aus der sechzehnten CSV-Spalte zugeordnet, wenn die Beschreibung im CSV-Format vorliegt und Spalte 9 6 ist. Bei TCP/UDP-Ereignissen wird dieser Wert für die Protokollidentifikation verwendet, wenn column9 den Wert 4 hat.
column17 target.ip, target.asset.ip (bei IPv6 und nicht bei ip_failure) Wird aus der siebzehnten CSV-Spalte zugeordnet, wenn die Beschreibung im CSV-Format ist, Spalte9 = 6 und der Wert eine gültige IP-Adresse ist. Bei TCP/UDP-Ereignissen wird es zur Protokollidentifikation verwendet.
column18 principal.port (bei 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 network.received_bytes zugewiesen.
column19 target.port (bei UDP) Wird aus der 19. 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 20. 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“) Wird aus dem Beschreibungsfeld extrahiert und als zusätzliches Feld hinzugefügt.
Ab metadata.description Wird aus dem Nachrichtenfeld extrahiert und als Beschreibung verwendet.
principal_ip principal.ip, principal.asset.ip Wird aus dem Beschreibungsfeld extrahiert und stellt die Haupt-IP-Adresse dar.
principal_username principal.user.userid Wird aus dem Beschreibungsfeld extrahiert und entspricht dem Nutzernamen des Hauptkontos.
Status security_result.detection_fields (Schlüssel: „status“) Wird aus dem Beschreibungsfeld extrahiert und als Erkennungsfeld in das Sicherheitsergebnis eingefügt.
target_host target.hostname, target.asset.hostname Wird aus dem Beschreibungsfeld extrahiert und stellt den Zielhostnamen dar.
src_port principal.port Wird aus dem Beschreibungsfeld extrahiert und steht für den Quellport. Wird anhand verschiedener Protokollfelder und Parserlogik ermittelt. Kann NETWORK_CONNECTION, NETWORK_DHCP, STATUS_UPDATE oder GENERIC_EVENT sein. Hartcodiert auf „PFSENSE“. „PFSENSE“ ist hartcodiert. Hartcodiert auf „PFSENSE“. Legen Sie für DHCP-Ereignisse „DHCP“ fest. Legen Sie für DHCPDISCOVER und DHCPREQUEST „BOOTREQUEST“ und für DHCPOFFER und DHCPACK „BOOTREPLY“ fest. Legen Sie je nach Feld dhcp_type „DISCOVER“, „REQUEST“, „OFFER“ oder „ACK“ fest.

Änderungen

2024-05-08

  • Grok-Muster zum Parsen des Felds „description“ hinzugefügt.
  • „principal_ip“ wurde auf „principal.ip“ und „principal.asset.ip“ umgestellt.
  • „src_port“ wurde „principal.port“ zugeordnet.
  • „compression_algo“ wurde in „additional.fields“ umgewandelt.
  • „status“ wurde in „security_result.detection_fields“ geändert.
  • „principal_username“ wurde auf „principal.user.userid“ zugeordnet.
  • „target_host“ wurde „target.hostname“ und „target.asset.hostname“ zugeordnet.

2023-05-05

  • Vor dem Zuordnen von „network.ip_protocol“ wurde die Umwandlung in Großbuchstaben hinzugefügt.
  • „column18“ wurde auf „principal.port“ zugeordnet, wenn das Protokoll in „column13“ vorhanden ist.
  • „column19“ wurde in „target.port“ zugeordnet, wenn das Protokoll in „column13“ vorhanden ist.
  • „column20“ wurde „additional.fields“ als „data-length“ zugeordnet, wenn das Protokoll in „column13“ vorhanden ist.

2023-02-20

  • Grok-Muster hinzugefügt, um das neue Filterprotokollformat und das syslog-ng-Format zu unterstützen.

2022-10-04

  • Der Name des Firewallgeräts wurde für Protokolle, bei denen „event_types“ den Wert „NETWORK_CONNECTION“ hat, in „intermediary.hostname“ statt „principal.hostname“ geändert.

2022-09-05

  • Enhancement-
  • Für Logs im CSV-Format werden die folgenden Felder zugeordnet.
  • Grok-Muster zum Abrufen von „IP“ und „MAC“ hinzugefügt.
  • „column19“, also „source-address“, wurde „network.dhcp.yiaddr“ zugeordnet.
  • „security_result.action“ wurde „ALLOW“ zugeordnet, wenn „column7“ mit „pass“ übereinstimmt.
  • Wenn „Spalte9“ dem Wert „6“ entspricht, was für „IPv6“ steht, werden die folgenden Felder zugeordnet:
  • Spalte „column17“, also „Zieladresse“, wurde „target.ip“ zugeordnet.
  • Spalte „column16“, also „source-address“, wurde „principal.ip“ zugeordnet.
  • „event_type“ wurde „NETWORK_CONNECTION“ zugeordnet, wenn „column16“ und „column17“ nicht null sind.
  • „Spalte12“, also „hop_limit“, wurde „zusätzliche.felder“ zugeordnet.
  • „column13“, also „ip_protocol“, wurde „network.ip_protocol“ zugeordnet.
  • Die benutzerdefinierten Parser wurden in den Standardparser migriert.
  • Bedingte Prüfung hinzugefügt, um „event_type“ auf „STATUS_UPDATE“ festzulegen

2022-06-30

  • „ttl“ wurde „additional.fields“ zugeordnet.
  • „Id“ wurde „additional.fields“ zugeordnet.
  • „Offset“ wurde „additional.fields“ zugeordnet.
  • „Datenlänge“ wurde „additional.fields“ zugeordnet.
  • „Length“ wurde „additional.fields“ zugeordnet.
  • „Sequence-number“ wurde „additional.fields“ zugeordnet.

2022-04-11

  • Neu erstellter Parser