Raccogliere i log di Fortinet FortiMail

Supportato in:

Questo documento spiega come importare i log di Fortinet FortiMail in Google Security Operations utilizzando l'agente Bindplane.

Fortinet FortiMail è un gateway di sicurezza email che genera messaggi syslog per transazioni email, filtri antispam, rilevamento di virus, eventi di autenticazione e applicazione di policy. Il parser estrae le coppie chiave-valore, normalizza i timestamp e gli indirizzi IP e li mappa al modello Unified Data Model (UDM).

Prima di iniziare

Assicurati di soddisfare i seguenti prerequisiti:

  • Un'istanza Google SecOps
  • Windows Server 2016 o versioni successive oppure host Linux con systemd
  • Connettività di rete tra l'agente Bindplane e Fortinet FortiMail
  • Se l'agente viene eseguito dietro un proxy, assicurati che le porte del firewall siano aperte in base ai requisiti dell'agente Bindplane
  • Accesso privilegiato a Fortinet FortiMail

Recuperare il file di autenticazione dell'importazione di Google SecOps

  1. Accedi alla console Google SecOps.
  2. Vai a Impostazioni SIEM > Agenti di raccolta.
  3. Scarica il file di autenticazione dell'acquisizione.
  4. Salva il file in modo sicuro sul sistema in cui verrà installato l'agente Bindplane.

Recuperare l'ID cliente Google SecOps

  1. Accedi alla console Google SecOps.
  2. Vai a Impostazioni SIEM > Profilo.
  3. Copia e salva l'ID cliente dalla sezione Dettagli dell'organizzazione.

Installa l'agente Bindplane

Installa l'agente Bindplane sul sistema operativo Windows o Linux seguendo le istruzioni riportate di seguito.

Installazione di Windows

  1. Apri Prompt dei comandi o PowerShell come amministratore.
  2. Esegui questo comando:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    
  3. Attendi il completamento dell'installazione.

  4. Verifica l'installazione eseguendo:

    sc query observiq-otel-collector
    

    Il servizio dovrebbe essere visualizzato come IN ESECUZIONE.

Installazione di Linux

  1. Apri un terminale con privilegi root o sudo.
  2. Esegui questo comando:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    
  3. Attendi il completamento dell'installazione.

  4. Verifica l'installazione eseguendo:

    sudo systemctl status observiq-otel-collector
    

    Il servizio dovrebbe essere visualizzato come attivo (in esecuzione).

Risorse aggiuntive per l'installazione

Per ulteriori opzioni di installazione e risoluzione dei problemi, consulta la guida all'installazione dell'agente Bindplane.

Configura l'agente Bindplane per importare syslog e inviarli a Google SecOps

Individua il file di configurazione

  • Linux:

    sudo nano /etc/bindplane-agent/config.yaml
    
  • Windows:

    notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
    

Modifica il file di configurazione

  • Sostituisci l'intero contenuto di config.yaml con la seguente configurazione:

    receivers:
        udplog:
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/fortinet_fortimail:
            compression: gzip
            creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
            customer_id: '<customer_id>'
            endpoint: malachiteingestion-pa.googleapis.com
            log_type: FORTINET_FORTIMAIL
            raw_log_field: body
    
    service:
        pipelines:
            logs/fortinet_fortimail_to_chronicle:
                receivers:
                    - udplog
                exporters:
                    - chronicle/fortinet_fortimail
    

Parametri di configurazione

Sostituisci i seguenti segnaposto:

  • Configurazione del ricevitore:

    • listen_address: Indirizzo IP e porta da ascoltare:
      • 0.0.0.0 per ascoltare su tutte le interfacce (consigliato)
      • La porta 514 è la porta syslog standard (richiede l'accesso root su Linux; utilizza 1514 per l'accesso non root)
  • Configurazione dell'esportatore:

    • creds_file_path: percorso completo del file di autenticazione dell'acquisizione:
      • Linux: /etc/bindplane-agent/ingestion-auth.json
      • Windows: C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
    • customer_id: ID cliente copiato dalla console Google SecOps
    • endpoint: URL endpoint regionale:
      • Stati Uniti: malachiteingestion-pa.googleapis.com
      • Europa: europe-malachiteingestion-pa.googleapis.com
      • Asia: asia-southeast1-malachiteingestion-pa.googleapis.com
      • Per un elenco completo, vedi Endpoint regionali.

Salvare il file di configurazione

  • Dopo la modifica, salva il file:
    • Linux: premi Ctrl+O, poi Enter e infine Ctrl+X.
    • Windows: fai clic su File > Salva.

Riavvia l'agente Bindplane per applicare le modifiche

  • Per riavviare l'agente Bindplane in Linux, esegui questo comando:

    sudo systemctl restart observiq-otel-collector
    
    1. Verifica che il servizio sia in esecuzione:

      sudo systemctl status observiq-otel-collector
      
    2. Controlla i log per individuare eventuali errori:

      sudo journalctl -u observiq-otel-collector -f
      
  • Per riavviare l'agente Bindplane in Windows, scegli una delle seguenti opzioni:

    • Prompt dei comandi o PowerShell come amministratore:

      net stop observiq-otel-collector && net start observiq-otel-collector
      
    • Console dei servizi:

      1. Premi Win+R, digita services.msc e premi Invio.
      2. Individua observIQ OpenTelemetry Collector.
      3. Fai clic con il tasto destro del mouse e seleziona Riavvia.
      4. Verifica che il servizio sia in esecuzione:

        sc query observiq-otel-collector
        
      5. Controlla i log per individuare eventuali errori:

        type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
        

Configurare Syslog di Fortinet FortiMail

  1. Accedi all'interfaccia web del dispositivo FortiMail.
  2. Seleziona Log e report > Impostazioni log > Remoto.
  3. Fai clic su Nuovo per creare una nuova voce.
  4. Nella finestra di dialogo visualizzata, seleziona Attiva per consentire la registrazione su un host remoto.
  5. Fornisci i seguenti dettagli:
    • Nome: inserisci un nome univoco e significativo.
    • Nome/IP del server: inserisci l'indirizzo IP di Bindplane.
    • Porta server: inserisci il numero di porta UDP di Bindplane.
    • Livello: seleziona Informazioni come livello di gravità.
    • Struttura: inserisci un identificatore univoco della struttura e verifica che nessun altro dispositivo di rete utilizzi lo stesso identificatore.
    • Deseleziona Formato CSV.
    • Protocollo log: seleziona Syslog.
    • Configurazione della policy di logging: attiva l'inoltro di tutti i tipi di eventi o log.
  6. Fai clic su Crea.

Tabella di mappatura UDM

Campo log Mappatura UDM Logica
authid read_only_udm.target.user.email_addresses Se il campo authid contiene @, esegui il mapping a questo campo
authid read_only_udm.target.user.userid Mappa il campo authid a questo campo
cifrario read_only_udm.network.tls.cipher Mappa il campo cipher a questo campo
client_ip read_only_udm.principal.ip Mappa il campo client_ip a questo campo
client_name read_only_udm.principal.hostname Mappa il campo client_name a questo campo
dettaglio read_only_udm.security_result.summary Mappa il campo detail a questo campo
device_id read_only_udm.principal.resource.id Mappa il campo device_id a questo campo
devname read_only_udm.principal.resource.name Mappa il campo devname a questo campo
direction read_only_udm.network.direction Se il campo direction è uguale a out, mappa il valore OUTBOUND; se il campo direction è uguale a in, mappa il valore INBOUND; altrimenti, mappa il valore UNKNOWN_DIRECTION
disposizione read_only_udm.security_result.detection_fields.value Mappa il campo disposition a questo campo quando il campo chiave è uguale a Disposition
dominio read_only_udm.principal.administrative_domain Mappa il campo domain a questo campo
dst_ip read_only_udm.target.ip Mappa il campo dst_ip a questo campo
da read_only_udm.network.email.from Se il campo from contiene @, esegui il mapping a questo campo
log_id read_only_udm.metadata.product_log_id Mappa il campo log_id a questo campo
message_id read_only_udm.network.email.mail_id Mappa il campo message_id a questo campo
message_length read_only_udm.additional.fields.value.number_value Mappa il campo message_length a questo campo quando il campo chiave è uguale a message_length
msg read_only_udm.security_result.description Mappa il campo msg a questo campo
polid read_only_udm.security_result.detection_fields.value Mappa il campo polid a questo campo quando il campo chiave è uguale a Polid
inoltro read_only_udm.intermediary.ip Mappa il campo relay a questo campo
risolto read_only_udm.security_result.detection_fields.value Mappa il campo resolved a questo campo quando il campo chiave è uguale a Resolved
session_id read_only_udm.network.session_id Mappa il campo session_id a questo campo
src_type read_only_udm.additional.fields.value.string_value Mappa il campo src_type a questo campo quando il campo chiave è uguale a src_type
stat read_only_udm.metadata.description Mappa il campo stat a questo campo
subject read_only_udm.network.email.subject Mappa il campo subject a questo campo
a read_only_udm.network.email.to Se il campo to contiene @, esegui il mapping a questo campo
utente read_only_udm.principal.user.userid Mappa il campo user a questo campo
N/D read_only_udm.extensions.auth.mechanism Il valore di questo campo è hardcoded nel codice del parser come USERNAME_PASSWORD quando esiste il campo authid
N/D read_only_udm.extensions.auth.type Il valore di questo campo è hardcoded nel codice del parser come AUTHTYPE_UNSPECIFIED quando esiste il campo authid
N/D read_only_udm.metadata.event_type Il valore di questo campo è determinato dalla logica del parser in base a una combinazione di campi disponibili. Se esiste il campo from, il valore è EMAIL_TRANSACTION, altrimenti, se esiste il campo to, il valore è EMAIL_UNCATEGORIZED, altrimenti, se esistono entrambi i campi client_ip e dst_ip, il valore è NETWORK_CONNECTION, altrimenti, se esiste il campo authid, il valore è USER_LOGIN, altrimenti, se esiste il campo user, il valore è USER_UNCATEGORIZED, altrimenti, se esiste il campo client_ip, il valore è STATUS_UPDATE, altrimenti il valore è GENERIC_EVENT
N/D read_only_udm.metadata.log_type Il valore di questo campo è codificato nel codice del parser come FORTINET_FORTIMAIL
N/D read_only_udm.metadata.product_name Il valore di questo campo è codificato nel codice del parser come FORTINET_FORTIMAIL
N/D read_only_udm.metadata.vendor_name Il valore di questo campo è codificato nel codice del parser come FORTINET
N/D read_only_udm.principal.resource.resource_type Il valore di questo campo è codificato nel codice del parser come DEVICE

Log delle modifiche

Visualizza il log delle modifiche per questo parser

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