Netgate pfSense-Protokolle erfassen
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
- Melden Sie sich mit Administratoranmeldedaten in der pfSense-Oberfläche an.
- Gehen Sie in den Einstellungen für Global log (Globales Log) so vor:
- Wählen Sie Status > Systemlogs > Einstellungen aus.
- Wählen Sie auf dem Tab Einstellungen die Option Allgemeine Protokollierungsoptionen aus und gehen Sie so vor:
- 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.
- 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
- Klicken Sie auf Speichern, um die neuen Einstellungen zu speichern.
Firewall-Logs an Google SecOps senden
- Wählen Sie in den Global log-Einstellungen Status > Systemprotokolle > Einstellungen aus.
- 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.
- Klicken Sie auf Speichern, um die Änderungen zu speichern.
Google SecOps-Forwarder zum Erfassen von Netgate pfSense-Logs konfigurieren
- Wählen Sie SIEM Settings > Forwarders aus.
- Klicken Sie auf Neuen Weiterleitungsdienst hinzufügen.
- Geben Sie im Feld Name des Weiterleitungsdienstes einen eindeutigen Namen für den Weiterleitungsdienst ein.
- Klicken Sie auf Senden und dann auf Bestätigen. Der Weiterleiter wird hinzugefügt und das Fenster Collector-Konfiguration hinzufügen wird angezeigt.
- Geben Sie im Feld Name des Collectors einen eindeutigen Namen für den Collector ein.
- Wählen Sie pfSense als Logtyp aus.
- Wählen Sie im Feld Collector-Typ die Option Syslog aus.
- 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.
- 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