Raccogliere i log di Netgate pfSense
Questo documento descrive come raccogliere i log di Netgate pfSense utilizzando un forwarder Google Security Operations.
Per saperne di più, consulta 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
- Accedi all'interfaccia pfSense con le credenziali di amministratore.
- Nelle impostazioni Log globale, segui questi passaggi:
- Seleziona Stato > Log di sistema > Impostazioni.
- Nella scheda Impostazioni, seleziona Opzioni di registrazione generali e procedi nel seguente modo:
- Nel campo Formato messaggio di log, seleziona syslog (RFC 5424, con timestamp di precisione al microsecondo RFC 3339).
- 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 passaggio predefinite inserite nel ruleset
- Registrare i pacchetti bloccati dalle regole "Blocca reti bogon"
- Pacchetti di log bloccati dalle regole "Blocca reti private"
- Per salvare le nuove impostazioni, fai clic su Salva.
Invia i log firewall a Google SecOps
- Nelle impostazioni Log globale, seleziona Stato > Log di sistema > Impostazioni.
- 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 Server di log remoti, specifica l'indirizzo IP dell'agente di inoltro di Google SecOps.
- In Contenuti syslog remoto, seleziona la casella di controllo Eventi firewall.
- Per salvare le modifiche, fai clic su Salva.
Configura il forwarder Google SecOps per importare i log Netgate pfSense
- Seleziona Impostazioni SIEM > Forwarder.
- Fai clic su Aggiungi nuovo inoltro.
- Nel campo Nome forwarder, inserisci un nome univoco per il forwarder.
- Fai clic su Invia e poi su Conferma. Il forwarder viene aggiunto e viene visualizzata la finestra Aggiungi configurazione del raccoglitore.
- Nel campo Nome del raccoglitore, digita un nome univoco per il raccoglitore.
- Seleziona pfSense come Tipo di log.
- Nel campo Tipo di raccoglitore, seleziona Syslog.
- Configura i seguenti parametri di input obbligatori:
- Protocollo: specifica il protocollo di connessione utilizzato dal raccoglitore 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 si trova il raccoglitore e ascolta i dati syslog.
- 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. |
| descrizione | 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 O 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 il 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 la procedura 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 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 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 column9 è 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 CSV se la descrizione è in formato CSV e il protocollo è TCP o UDP. |
| column22 | target.port (se TCP/UDP) |
Mappato dalla ventiduesima colonna 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 CSV se la descrizione è in formato CSV e il protocollo è TCP. |
| column25 | additional.fields (chiave: "sequence_number") (se TCP/UDP) |
Mappato dalla venticinquesima colonna 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.