Installa e configura il forwarder

Supportato in:

Questo documento descrive come installare e configurare il forwarder di Google Security Operations su sistemi Linux e Windows utilizzando Docker.

Il forwarder è un componente software che puoi installare su una macchina o un dispositivo, ad esempio un server, all'interno della tua rete. it raccoglie i dati di log e inoltra questi dati alla la tua istanza Google SecOps.

Puoi usare il forwarding per inviare i log direttamente dal tuo ambiente a Google SecOps, senza bisogno di bucket cloud o API di terze parti per i tipi di log non supportati. Il forwarder funge da soluzione pronta per il deployment, eliminando la necessità di integrazione manuale con l'API di importazione.

Google SecOps fornisce un contenitore Docker per il deployment di un forwarder sicuro. Puoi eseguire e gestire il container Docker su macchine fisiche o virtuali.

Requisiti di sistema

Di seguito sono riportati alcuni consigli generali. Per consigli specifici per i tuoi contatta l'assistenza di Google SecOps.

Sistema Linux

Il forwarding è supportato su varie distribuzioni Linux, come Debian, Ubuntu, Red Hat e Suse. Per ottenere un rendimento ottimale, consigliamo di utilizzare Docker versione 20.10.21 o successiva.

  • RAM: è richiesta 1 GB di RAM per ogni tipo di dati raccolto che Google SecOps accetta per l'importazione. Ad esempio, se specifichi quattro diversi collector, occorre 4 GB di RAM per raccogliere i dati per tutti e quattro.

  • CPU: sono sufficienti due CPU per gestire fino a 10.000 eventi al secondo (EPS) in tutti i tipi di dati. Se prevedi che il tuo forwarder gestirà più di 10.000 EPS, alloca da quattro a sei CPU.

  • Disco: è consigliato 20 GB di spazio su disco, indipendentemente dalla quantità di dati gestita dal forwarder.

Sistema Windows

Il forwarding è supportato su Microsoft Windows Server 2022. Per prestazioni ottimali, si consiglia di utilizzare Docker versione 20.10.21 o successive.

  • RAM: sono necessari 1,5 GB di RAM per ogni tipo di dati raccolti accettato da Google SecOps per l'importazione. Ad esempio, se specifichi quattro diversi raccoglitori, Occorrono 6 GB di RAM per raccogliere i dati per tutti e quattro.

  • CPU: sono sufficienti due CPU per gestire fino a 10.000 eventi al secondo (EPS) per tutti i tipi di dati. Se prevedi che il tuo forwarder gestirà più di 10.000 EPS, alloca da quattro a sei CPU.

  • Disco: è consigliato 20 GB di spazio su disco, indipendentemente dalla quantità di dati gestita dall'inoltra.

Prima di iniziare

Prima di iniziare l'implementazione dello strumento di inoltro, prendi in considerazione quanto segue.

Intervalli di indirizzi IP di Google

Quando configuri il forwarding, potresti dover regolare le impostazioni del firewall prevede la specifica di intervalli di indirizzi IP. Gli intervalli IP dei domini predefiniti utilizzati dalle API e dai servizi Google vengono allocati in modo dinamico e cambiano spesso. Consulta Individuare gli intervalli di indirizzi IP di Google per ulteriori informazioni.

Verifica la configurazione del firewall

Se il container di inoltro è protetto da firewall o proxy autenticati, dovrai aprire l'accesso ai seguenti host:

Tipo di connessione Destinazione Port (Porta)
TCP malachiteingestion-pa.googleapis.com 443
TCP asia-northeast1-malachiteingestion-pa.googleapis.com 443
TCP asia-south1-malachiteingestion-pa.googleapis.com 443
TCP asia-southeast1-malachiteingestion-pa.googleapis.com 443
TCP australia-southeast1-malachiteingestion-pa.googleapis.com 443
TCP europe-malachiteingestion-pa.googleapis.com 443
TCP europe-west2-malachiteingestion-pa.googleapis.com 443
TCP europe-west3-malachiteingestion-pa.googleapis.com 443
TCP europe-west6-malachiteingestion-pa.googleapis.com 443
TCP europe-west12-malachiteingestion-pa.googleapis.com 443
TCP me-central1-malachiteingestion-pa.googleapis.com 443
TCP me-central2-malachiteingestion-pa.googleapis.com 443
TCP me-west1-malachiteingestion-pa.googleapis.com 443
TCP northamerica-northeast2-malachiteingestion-pa.googleapis.com 443
TCP accounts.google.com 443
TCP gcr.io 443
TCP oauth2.googleapis.com 443
TCP storage.googleapis.com 443

Pianifica l'implementazione

Prima di iniziare a configurare il forwarder, pianifica l'implementazione. In questo modo è utile per allineare le origini dati e gli attributi di configurazione alle gli obiettivi, le funzionalità dell'infrastruttura e i requisiti di scalabilità.

Determina i dati da importare

Identifica le origini dati più pertinenti per il tuo forwarder tra le seguenti opzioni:

  • Splunk: ideale se utilizzi già Splunk per la gestione dei log.

  • Syslog: versatile per i log di sistema e delle applicazioni di diversi dispositivi.

  • File: flessibile per l'importazione di file di log.

  • Pacchetto: offre una visibilità approfondita della rete acquisendo il traffico non elaborato.

  • Kafka: ideale per l'aggregazione di log a volumi elevati e in tempo reale da sistemi operativi.

  • WebProxy: ideale per approfondimenti sul traffico web e sul comportamento degli utenti.

Determina la configurazione

Prima di installare lo strumento di inoltro, determina i seguenti attributi chiave per assicurarti una corretta implementazione.

Compressione dei dati

La compressione dei dati o dei log riduce il consumo di larghezza di banda della rete durante il trasferimento log a Google SecOps. Tuttavia, potrebbe causare un aumento dell'utilizzo della CPU. L'equilibrio ottimale tra il risparmio di larghezza di banda e l'utilizzo della CPU dipende come tipo di log, comprimibilità dei dati, risorse CPU disponibili e i vincoli della larghezza di banda della rete.

Ad esempio, i log basati su testo in genere si comprimono bene e possono offrire risparmi sostanziali in termini di larghezza di banda con un utilizzo ridotto della CPU, mentre i dati criptati o binari potrebbero non comprimersi in modo efficiente e comportare un utilizzo più elevato della CPU.

Per impostazione predefinita, la compressione dei log è disattivata. Valuta il compromesso in base al tuo ambiente specifico e alla natura dei dati dei log.

Buffering del disco

Ti consigliamo di attivare il buffering del disco. Il buffering del disco consente di eseguire il buffer dei messaggi in backlog su disco anziché su disco memoria, per evitare la perdita di dati in caso di arresti anomali dell'host o del server di inoltro. Tuttavia, l'attivazione del buffering del disco può influire sulle prestazioni.

Se il buffering del disco è disattivato, il forwarder alloca 1 GB di memoria (RAM) per ogni tipo di log (ad esempio, per connettore). La memoria massima consentita per il disco il buffering è di 4 GB.

Filtri basati su espressioni regolari

I filtri delle espressioni regolari ti consentono di filtrare i log associando i pattern ai dati non elaborati dei log. I filtri utilizzano la sintassi RE2. I filtri devono includere un'espressione regolare e, facoltativamente, definire un comportamento in caso di corrispondenza.

Etichette arbitrarie

Le etichette vengono utilizzate per associare metadati personalizzati ai log utilizzando coppie chiave-valore. Puoi configurare le etichette per un intero mittente o all'interno di un collettore specifico del mittente. Se sono presenti entrambi, le etichette a livello di raccoglitore sostituiscono l'inoltro le etichette dei livelli se le chiavi si sovrappongono.

Spazi dei nomi

Puoi utilizzare le etichette dello spazio dei nomi per identificare i log di segmenti di rete distinti e per risolvere i conflitti relativi agli indirizzi IP sovrapposti. Puoi configurare un'etichetta dello spazio dei nomi per l'intero spedizioniere o all'interno di un raccoglitore specifico dello stesso. Se entrambi sono presente, lo spazio dei nomi a livello di raccoglitore sostituisce lo spazio dei nomi a livello di inoltro.

Tipo di log

Google SecOps supporta una serie di tipi di log. Per un elenco completo, consulta Set di dati supportati.

Opzioni di bilanciamento del carico e alta disponibilità

Il bilanciamento del carico è supportato solo per il tipo di raccolta syslog.

Il forwarder può essere implementato in ambienti in cui è installato un bilanciatore del carico di livello 4 tra le istanze dell'origine dati e del forwarder. Questo consente di distribuire la raccolta dei log tra più forwardinger, migliorando l'affidabilità reindirizzando i log a un altro forwarding in caso di errore.

Il server di inoltro dispone di un server HTTP integrato che risponde ai controlli di integrità bilanciatori del carico ed evita la perdita di log durante l'avvio e l'arresto. Puoi configurare il server HTTP, il bilanciamento del carico e le opzioni di alta disponibilità per specificare le durate del timeout e i codici di stato per i controlli di integrità. Questa configurazione è compatibile sia con deployment basati su container che con bilanciatori del carico.

Impostazione Descrizione
Timeout temporaneo Il periodo di tempo per cui vengono accettate nuove connessioni dopo il il sistema di inoltro restituisce uno stato unready in risposta a un controllo di integrità. È anche il tempo di attesa tra la ricezione di un segnale di arresto e l'inizio effettivo dell'arresto del server stesso. In questo modo il bilanciatore del carico ha il tempo di rimuovere il forwarder dal pool.

I valori validi sono espressi in secondi. Ad esempio, per specificare 10 secondi, digita 10. I valori decimali non sono consentiti.

Valore predefinito: 15 secondi
Timeout svuotamento Il tempo che il forwarder attende prima che le connessioni attive si chiudano autonomamente prima che vengano chiuse dal server. Ad esempio, per specificare 5 secondi, digita 5. I valori decimali non sono consentiti.

Predefinito:10 secondi
Port (Porta) Il numero di porta su cui il server HTTP rimane in ascolto per i controlli di integrità dal bilanciatore del carico. Il valore deve essere compreso tra 1024 e 65.535.

Predefinito: 8080
Indirizzo IP o nome host L'indirizzo IP o un nome host che può essere risolto in un indirizzo IP, che il server deve ascoltare.

Predefinito: 0.0.0.0 (il sistema locale)
Timeout di lettura Utilizzato per ottimizzare il server HTTP. In genere, non è necessario modificarla rispetto all'impostazione predefinita. Il tempo massimo consentito per la lettura l'intera richiesta, sia l'intestazione che il corpo. Puoi impostare sia il campo timeout lettura sia il campo timeout lettura intestazione.

Valore predefinito: 3 secondi
Timeout lettura intestazione Utilizzato per ottimizzare il server HTTP. In genere, non è necessario modificarla rispetto all'impostazione predefinita. Il tempo massimo consentito per leggere le intestazioni della richiesta. La scadenza di lettura della connessione viene reimpostata dopo la lettura dell'intestazione.

Predefinito:3 secondi
Timeout scrittura Utilizzato per ottimizzare il server HTTP. In genere, non è necessario modificarla rispetto all'impostazione predefinita. Il tempo massimo consentito per l'invio una risposta. Viene reimpostato quando viene letto un nuovo intestazione di richiesta.

Valore predefinito: 3 secondi
Timeout di inattività Utilizzato per ottimizzare il server HTTP. In genere, non deve essere modificato rispetto all'impostazione predefinita. Il tempo massimo di attesa per la prossima richiesta quando le connessioni inattive sono abilitate. Se il campo idle timeout è impostato su zero, viene utilizzato il valore del campo read timeout. Se entrambi sono pari a zero, viene utilizzato il campo timeout lettura intestazione.

Predefinito:3 secondi
Codice stato disponibile Il codice di stato restituito dall'inoltro quando viene eseguito un controllo di attività ricevuto e il mittente è disponibile. Gli orchestratori e i programmatori dei container inviano spesso controlli di attività.

Valore predefinito: 204
Codice di stato Ready Il codice di stato restituito dal forwarder quando è pronto ad accettare il traffico in una delle seguenti situazioni:
  • Viene ricevuto un controllo di idoneità da uno scheduler di container strumento di orchestrazione.
  • Viene ricevuto un controllo di integrità da un bilanciatore del carico.
Valore predefinito: 204
Codice di stato non pronto Il codice di stato restituito dal mittente quando non è pronto ad accettare per via del traffico.

Predefinito:503

Passaggio 1: definisci la configurazione dello strumento di inoltro

Ogni utente che esegue il forwarding di cui è stato eseguito il deployment richiede un file di configurazione per il forwarding. R di configurazione del forwarding specifica le impostazioni in cui trasferire i dati la tua istanza Google SecOps. Ti consigliamo di generare un nuovo di configurazione del deployment per ogni host mantenere chiare differenze tra i raccoglitori associati a ciascuno di essi.

Google Cloud personalizza questi file di configurazione con metadati specifici per ogni istanza del forwarder. Puoi modificare questi file in base ai tuoi requisiti specifici e includere dettagli sui tipi di log da importare.

Puoi generare un file di configurazione del server di inoltro tramite l'interfaccia utente, manualmente l'API.

  • L'interfaccia utente fornisce un'interfaccia grafica per la configurazione inoltro ed è il metodo consigliato per creare una configurazione di inoltro. Questo è il modo più semplice per iniziare e non richiede alcuna per la programmazione. Per scaricare il file di configurazione utilizzando l'interfaccia utente di Google SecOps, consulta Gestire le configurazioni dei forwarder tramite l'interfaccia utente di Google SecOps.

  • L'API fornisce un metodo programmatico per configurare i forwarding. Per scaricare di inoltro in modo programmatico, consulta API Forwarder Management.

  • Puoi creare il file di configurazione manualmente e aggiungere la configurazione le opzioni disponibili. Ti consigliamo di utilizzare il metodo dell'interfaccia utente per generare il file di configurazione per garantire l'accuratezza e ridurre al minimo i potenziali errori. Per generare il file manualmente, consulta Gestire manualmente il file di configurazione del forwarder.

Passaggio 2: installa Docker

Questa sezione descrive come installare Docker sul tuo sistema.

Sistema Linux

Docker è open source e tutta la documentazione necessaria è disponibile nel una community Docker open source. Per istruzioni sull'installazione di Docker, consulta Installare Docker Engine.

Per verificare se Docker è installato correttamente sul tuo sistema, esegui questo comando: (richiede privilegi elevati):

   docker ps
  

La seguente risposta indica che Docker è stato installato correttamente:

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

Sistema Windows

Avvia Windows PowerShell con privilegi di amministratore e controlla la connettività di rete a Google Cloud seguendo questi passaggi:

  1. Fai clic su Avvia.

  2. Digita PowerShell e fai clic con il tasto destro del mouse su Windows PowerShell.

  3. Fai clic su Esegui come amministratore.

  4. Esegui questo comando:

    C:\> test-netconnection <host> -port <port>
    

    L'output del comando indica che lo stato di TcpTestSucceeded è true.

    Esempio:

    C:\> test-netconnection malachiteingestion-pa.googleapis.com -port 443
    ComputerName     :  malachiteingestion-pa.googleapis.com
    RemoteAddress    : 198.51.100.1
    RemotePort       : 443
    InterfaceAlias   : Ethernet
    SourceAddress    : 203.0.113.1
    TcpTestSucceeded : True
    

Per installare Docker, segui questi passaggi sul tuo server Windows.

  1. Attiva la funzionalità del contenitore di Microsoft Windows:

    Install-WindowsFeature containers -Restart
    
  2. Esegui il seguente comando in modalità amministratore PowerShell per installare Docker CE:

    Invoke-WebRequest -UseBasicParsing "https://raw.githubusercontent.com/microsoft/Windows-Containers/Main/helpful_tools/Install-DockerCE/install-docker-ce.ps1" -o install-docker-ce.ps1
    
    .\install-docker-ce.ps1
    
    
  3. Testa l'interfaccia a riga di comando Docker eseguendo il comando docker ps, che restituisce un elenco dei container in esecuzione. Se Docker non è installato correttamente, viene visualizzato un errore.

    Per ulteriori informazioni, consulta la guida introduttiva: preparazione di Windows per i container.

    Per i deployment aziendali, installa Mirantis Container Runtime, noto anche come Docker EE.

Passaggio 3: installa lo strumento di inoltro

Questa sezione descrive come installare il forwarder utilizzando un contenitore Docker.

Passaggio 3a: sposta i file di configurazione nella directory di inoltro

Il primo passaggio della procedura di installazione del forwarder prevede il posizionamento dei file di configurazione necessari nella directory del forwarder designata.

Sistema Linux

Inserisci i file di configurazione nella directory di inoltro seguendo questa procedura:

  1. Connettiti all'host del forwarder Linux utilizzando il terminale.

  2. Cambia la directory impostandola sulla home directory in cui viene eseguito il contenitore Docker.

  3. Crea una directory per archiviare i file di configurazione del forwarder.

      mkdir /opt/chronicle/'CONFIG'
    

    Puoi sostituire il nome della directory, CONFIG, con un nome a tua scelta. Ensure di usare lo stesso nome di directory durante l'esecuzione del comando docker run.

  4. Cambia la directory.

      cd /opt/chronicle/config
    

  5. Dopo il trasferimento dei file, assicurati che i file di configurazione si trovino nella directory /opt/chronicle/config.

      ls -l
    

Sistema Windows

Crea una cartella C:\config e inserisci al suo interno i file di configurazione. Puoi sostituire il nome della cartella, config, con un nome a tua scelta. Ensure di utilizzare lo stesso nome cartella durante l'esecuzione del comando docker run.

Passaggio 3b: esegui lo strumento di inoltro

Dopo che i file di configurazione sono stati posizionati all'interno del server di inoltro designato puoi avviare lo strumento di inoltro oppure esegui l'upgrade all'ultima versione del container Google SecOps.

Se stai eseguendo l'upgrade del container, esegui la pulizia di eventuali esecuzioni precedenti di Docker eseguendo questi comandi.

      docker stop 'cfps'
    

      docker rm 'cfps'
    

Nell'esempio, il nome del contenitore Docker è cfps.

Per avviare il forwarder per la prima volta o per eseguire l'upgrade alla versione più recente del contenitore Google SecOps, segui questi passaggi:

  1. Ottieni l'immagine Docker più recente da Google Cloud:

    Sistema Linux:

        docker pull gcr.io/chronicle-container/cf_production_stable
    

    Sistema Windows:

      docker pull gcr.io/chronicle-container/cf_production_stable_windows
    
  2. Avvia il forwarding dal container Docker:

    Sistema Linux:

      docker run \
        --detach \
        --name cfps \
        --restart=always \
        --log-opt max-size=100m \
        --log-opt max-file=10 \
        --net=host \
        -v /opt/chronicle/config:/opt/chronicle/external \
        gcr.io/chronicle-container/cf_production_stable
    

    Sistema Windows:

      docker run `
        --detach `
        --name cfps `
        --restart=always `
        --log-opt max-size=100m `
        --log-opt max-file=10 `
        -p 0.0.0.0:10515-10520:10515-10520/udp `
        -v C:\config\:C:/opt/chronicle/external `
        gcr.io/chronicle-container/cf_production_stable_windows
    

Le opzioni --log-opt sono disponibili a partire da Docker 1,13. Queste opzioni limitano le dimensioni dei file di log del contenitore e devono essere utilizzate se la versione di Docker che utilizzi le supporta.

Gestire il forwarder

Le seguenti sezioni forniscono indicazioni sulla gestione del gestore dell'inoltro.

Visualizza log di forwarding

  • Per visualizzare i log del forwarder, esegui il seguente comando:

    docker logs cfps
    
  • Per visualizzare il percorso del file in cui sono archiviati i log, esegui il comando seguente:

    docker inspect --format='{{.LogPath}}' CONTAINER_NAME
    
  • Per visualizzare i log in esecuzione in tempo reale, esegui il seguente comando:

    docker logs cfps -f
    
  • Per archiviare i log in un file, esegui questo comando:

    docker logs cfps &> logs.txt
    

Disinstalla il forwarder

I seguenti comandi Docker ti aiutano a interrompere, disinstallare o rimuovere il forwarder.

  • Per arrestare o disinstallare il container di forwarding, esegui questo comando:

    docker stop cfps
    
  • Per rimuovere il contenitore del forwarder, esegui il seguente comando:

    docker rm cfps
    

Aggiorna il forwarder

Il forwarder è costituito da due componenti, ciascuno con un processo di aggiornamento come segue:

  • Forwarder Bundle: questo componente viene aggiornato automaticamente, eliminando la necessità di un riavvio.

  • Immagine Docker del forwarder: gli aggiornamenti di questo componente vengono eseguiti manualmente. Devi interrompere l'istanza di inoltro corrente e avviarne una nuova, come descritto nel passaggio 3b.

Guide all'importazione del forwarding per set di dati specifici

Per scoprire come viene importato un determinato set di dati utilizzando i forwarder, consulta quanto segue: