Raccogliere i log di Netgate pfSense

Supportato in:

Questo documento descrive come raccogliere i log di Netgate pfSense utilizzando un forwarder di Google Security Operations.

Per ulteriori informazioni, vedi Importazione dei dati in Google SecOps.

Un'etichetta di importazione identifica il parser che normalizza i dati di log non elaborati in formato UDM strutturato. Le informazioni contenute in questo documento si applicano al parser con l'etichetta di importazione PFSENSE.

Configura Netgate pfSense

  1. Accedi all'interfaccia pfSense con le credenziali amministrative.
  2. Nelle impostazioni Log globale, segui questi passaggi:
    1. Seleziona Stato > Log di sistema > Impostazioni.
    2. Nella scheda Impostazioni, seleziona Opzioni di logging generali e procedi nel seguente modo:
      1. Nel campo Formato messaggio di log, seleziona syslog (RFC 5424, con timestamp di precisione al microsecondo RFC 3339).
      2. Nel campo Registra blocchi predefiniti del firewall, seleziona le seguenti caselle di controllo:
        • Pacchetti di log corrispondenti alle regole di blocco predefinite nel ruleset
        • Pacchetto di log corrispondente alle regole di approvazione predefinite inserite nel ruleset
        • Registrare i pacchetti bloccati dalle regole "Blocca reti bogon"
        • Pacchetti di log bloccati dalle regole "Blocca reti private"
  3. Per salvare le nuove impostazioni, fai clic su Salva.

Invia i log firewall a Google SecOps

  1. Nelle impostazioni Log globale, seleziona Stato > Log di sistema > Impostazioni.
  2. Nella scheda Impostazioni, seleziona Opzioni di logging remoto e procedi nel seguente modo:
    • Nel campo Abilita logging remoto, seleziona la casella di controllo Invia messaggi di log al server syslog remoto.
    • Nel campo Indirizzo di origine, lascia il valore predefinito Qualsiasi.
    • Nel campo Protocollo IP, se l'indirizzo di origine è selezionato come valore predefinito, non devi specificare l'indirizzo IP. Altrimenti, inserisci l'indirizzo IP.
    • In Remote log servers (Server di log remoti), specifica l'indirizzo IP del forwarder Google SecOps.
    • In Contenuti syslog remoto, seleziona la casella di controllo Eventi firewall.
  3. Per salvare le modifiche, fai clic su Salva.

Configura il forwarder Google SecOps per importare i log Netgate pfSense

  1. Seleziona Impostazioni SIEM > Forwarder.
  2. Fai clic su Aggiungi nuovo inoltro.
  3. Nel campo Nome del forwarder, inserisci un nome univoco per il forwarder.
  4. Fai clic su Invia e poi su Conferma. Il forwarder viene aggiunto e viene visualizzata la finestra Aggiungi configurazione del raccoglitore.
  5. Nel campo Nome del raccoglitore, digita un nome univoco per il raccoglitore.
  6. Seleziona pfSense come Tipo di log.
  7. Nel campo Tipo di raccoglitore, seleziona Syslog.
  8. Configura i seguenti parametri di input obbligatori:
    • Protocollo: specifica il protocollo di connessione utilizzato dal collettore per ascoltare i dati syslog.
    • Indirizzo: specifica l'indirizzo IP o il nome host di destinazione in cui risiede il raccoglitore e ascolta i dati syslog.
    • Porta: specifica la porta di destinazione in cui risiede il raccoglitore e ascolta i dati syslog.
  9. Fai clic su Invia.

Per saperne di più sui forwarder Google SecOps, consulta Gestire le configurazioni dei forwarder tramite la UI di Google SecOps.

Se riscontri problemi durante la creazione degli inoltri, contatta l'assistenza Google SecOps.

Riferimento alla mappatura dei campi

Questo parser del firewall pfSense estrae i campi dai messaggi syslog utilizzando i pattern grok, gestendo vari formati di log, inclusi eventi DHCP e firewall. Successivamente, mappa questi campi estratti nell'UDM, arricchendo i dati con informazioni contestuali come indirizzi IP, indirizzi MAC, nomi utente e dettagli di rete.

Tabella di mappatura UDM

Campo log Mappatura UDM Logic
applicazione principal.application Il valore viene estratto dal messaggio di log utilizzando i pattern grok. Per i messaggi syslog, il nome dell'applicazione si trova in genere dopo l'hostname e il timestamp.
comando principal.process.command_line Estratto dal campo della descrizione quando il log indica l'esecuzione di un comando.
description metadata.description Il campo della descrizione è mappato alla descrizione dei metadati UDM, ad eccezione dei log dell'applicazione syslog-ng, in cui è mappato a metadata.description. Per gli eventi DHCP, dhcp_type viene anteposto alla descrizione.
dhcp_type metadata.product_event_type Il tipo di messaggio DHCP (ad es. DHCPDISCOVER, DHCPOFFER) viene estratto e mappato.
host intermediary.hostname OPPURE intermediary.ip Se il valore host è un indirizzo IP valido, viene mappato su intermediary.ip. In caso contrario, viene mappato a intermediary.hostname.
host principal.hostname, principal.asset.hostname Se non è presente alcun IP principale, l'host viene considerato come nome host principale.
mac principal.mac, network.dhcp.chaddr L'indirizzo MAC associato a una richiesta DHCP viene estratto e mappato.
src_ip principal.ip, principal.asset.ip Estratti da formati di log specifici utilizzando un pattern grok.
src_mac principal.mac Estratti da formati di log specifici utilizzando un pattern grok.
dst_mac target.mac Estratti da formati di log specifici utilizzando un pattern grok.
timestamp metadata.event_timestamp Il timestamp viene estratto dal messaggio di log e convertito in un formato timestamp UDM. Se disponibili, le informazioni sul fuso orario (tz) vengono aggiunte al timestamp prima della conversione.
timestamp_no_year metadata.event_timestamp Se è presente un timestamp senza anno, viene analizzato e l'anno corrente viene aggiunto durante il processo di analisi.
utente principal.user.userid Il nome utente associato a un evento viene estratto e mappato.
colonna1 security_result.rule_id Mappata dalla prima colonna CSV se la descrizione è in formato CSV.
column6 security_result.rule_type Mappata dalla sesta colonna del file CSV se la descrizione è in formato CSV.
column7 security_result.action Mappata dalla settima colonna CSV se la descrizione è in formato CSV. Convertito in "BLOCK" (BLOCCO) o "ALLOW" (CONSENTI).
column8 network.direction Mappata dalla ottava colonna CSV se la descrizione è in formato CSV. Convertito in "INBOUND" o "OUTBOUND".
column13 network.ip_protocol (se UDP o ICMP) Mappato dalla tredicesima colonna del file CSV se la descrizione è in formato CSV e il protocollo è UDP o ICMP. Per gli eventi TCP/UDP, viene utilizzato per creare un campo aggiuntivo con la chiave "Id".
column16 principal.ip, principal.asset.ip (se IPv6 e la colonna 9 è 6) Mappato dalla sedicesima colonna CSV se la descrizione è in formato CSV e la colonna 9 è 6. Per gli eventi TCP/UDP, viene utilizzato per l'identificazione del protocollo se column9 è 4.
column17 target.ip, target.asset.ip (se IPv6 e non ip_failure) Mappato dalla diciassettesima colonna CSV se la descrizione è in formato CSV, la colonna 9 è 6 e il valore è un IP valido. Per gli eventi TCP/UDP, viene utilizzato per l'identificazione del protocollo.
column18 principal.port (se UDP) Mappato dalla diciottesima colonna CSV se la descrizione è in formato CSV e il protocollo è UDP. Per gli eventi TCP/UDP, viene mappato a network.received_bytes.
column19 target.port (se UDP) Mappato dalla diciannovesima colonna CSV se la descrizione è in formato CSV e il protocollo è UDP. Per gli eventi DHCP, viene mappato a network.dhcp.yiaddr. Per gli altri eventi, viene mappato a principal.ip, principal.asset.ip.
column20 additional.fields (chiave: "data_length") (se UDP) Mappato dalla ventesima colonna CSV se la descrizione è in formato CSV e il protocollo è UDP. Per gli altri eventi, viene mappato a target.ip, target.asset.ip.
column21 principal.port (se TCP/UDP) Mappato dalla ventunesima colonna del file CSV se la descrizione è in formato CSV e il protocollo è TCP o UDP.
column22 target.port (se TCP/UDP) Mappato dalla ventiduesima colonna del file CSV se la descrizione è in formato CSV e il protocollo è TCP o UDP.
column23 additional.fields (chiave: "data_length") (se TCP/UDP) Mappato dalla ventitreesima colonna del file CSV se la descrizione è in formato CSV e il protocollo è TCP o UDP.
column24 additional.fields (chiave: "tcp_flags") (se TCP) Mappato dalla ventiquattresima colonna del file CSV se la descrizione è in formato CSV e il protocollo è TCP.
column25 additional.fields (chiave: "sequence_number") (se TCP/UDP) Mappato dalla venticinquesima colonna del file CSV se la descrizione è in formato CSV e il protocollo è TCP o UDP.
column29 additional.fields (chiave: "tcp_options") (se TCP) Mappato dalla ventinovesima colonna CSV se la descrizione è in formato CSV e il protocollo è TCP.
compression_algo additional.fields (chiave: "Compression Algorithm") Estratto dal campo Descrizione e aggiunto come campo aggiuntivo.
decr metadata.description Estratto dal campo del messaggio e utilizzato come descrizione.
principal_ip principal.ip, principal.asset.ip Estratto dal campo Descrizione e rappresenta l'indirizzo IP principale.
principal_username principal.user.userid Estratto dal campo della descrizione e rappresenta il nome utente principale.
stato security_result.detection_fields (chiave: "status") Estratto dal campo della descrizione e aggiunto come campo di rilevamento all'interno del risultato di sicurezza.
target_host target.hostname, target.asset.hostname Estratto dal campo della descrizione e rappresenta il nome host di destinazione.
src_port principal.port Estratto dal campo Descrizione e rappresenta la porta di origine. Determinato in base a vari campi di log e alla logica del parser. Può essere NETWORK_CONNECTION, NETWORK_DHCP, STATUS_UPDATE o GENERIC_EVENT. Codificato in modo permanente su "PFSENSE". Codificato in modo permanente su "PFSENSE". Codificato in modo permanente su "PFSENSE". Imposta "DHCP" per gli eventi DHCP. Imposta "BOOTREQUEST" per DHCPDISCOVER e DHCPREQUEST e "BOOTREPLY" per DHCPOFFER e DHCPACK. Imposta "DISCOVER", "REQUEST", "OFFER" o "ACK" in base al campo dhcp_type.

Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.