Gestione avanzata del collettore di log

Configura opzioni avanzate per i raccoglitori di log di scoperta cloud

Questo articolo descrive come configurare le opzioni avanzate per gli agenti di raccolta log di Cloud Discovery di Defender for Cloud Apps.

Il rilevamento del cloud di Defender for Cloud Apps continua a concentrarsi sui formati firewall di base. Le modifiche apportate ai log inoltrati a livello di firewall potrebbero non continuare a funzionare o potrebbero causare problemi con l'analisi. Se riscontri errori di parsing causati da formati di log del firewall modificati, ti consigliamo di continuare a usare il formato base del firewall o di utilizzare opzioni con il raccoglitore di log personalizzato. Per altre informazioni, vedere Usare un parser di log personalizzato.

Questo articolo descrive come modificare la configurazione di Defender per il Docker Cloud Discovery delle app cloud.

Modificare la configurazione FTP dell'agente di raccolta log

Usare la procedura descritta in Verificare la versione dell'agente di raccolta log, Modificare la password FTP e Aggiungere file di certificato per modificare la configurazione per il Defender for Cloud Apps Docker di Cloud Discovery.

Verificare la versione dell'agente di raccolta log

Per verificare la versione dell'agente di raccolta log attualmente installata nel sistema, connettersi all'host dell'agente di raccolta log ed eseguire il comando seguente per controllare la versione del componente dell'agente di raccolta installato:

cat /var/adallom/versions | grep columbus-

Modificare la password FTP

Questa procedura descrive come modificare la password usata per accedere ai file dell'agente di raccolta log:

  1. Connettiti all'host del raccoglitore di log ed esegui:

    docker exec -it <collector name> pure-pw passwd <ftp user>
    
  2. Immettere la nuova password e quindi immetterla di nuovo per confermare.

  3. Eseguire il comando seguente per applicare la modifica:

    docker exec -it <collector name> pure-pw mkdb
    

Nella directory radice del server FTP del collettore di log dovrebbe essere possibile visualizzare i seguenti contenuti:

  • run_logs
  • ssl_update
  • config.json

Aggiungere file di certificato

Questa procedura descrive come aggiungere i file di certificato necessari usati per le connessioni sicure all'istanza di Docker di individuazione cloud.

  1. Aprire un client FTP e connettersi all'host dell'agente di raccolta log.

  2. Passare alla ssl_update directory e caricare i nuovi file di certificato, inclusi i file seguenti:

    Tipo di ricevitore File obbligatori
    FTP - pure-ftpd.pem: include i dati della chiave e del certificato
    Syslog - ca.pem: certificato dell'autorità di certificazione usato per firmare il certificato del client.
    - server-key.pem e server-cert.pem: il certificato e la chiave dell'agente di raccolta log

    I messaggi syslog vengono inviati tramite TLS all'agente di raccolta log, che richiede l'autenticazione TLS reciproca, inclusa l'autenticazione dei certificati client e server.

I file sono obbligatori. Se uno dei file per il tipo di ricevitore non è presente, l'aggiornamento non riesce.

  1. In una finestra del terminale eseguire:

    docker exec -t <collector name> update_certs
    

    L'output dovrebbe essere simile al codice seguente:

    root@DockerPlayground:~# docker exec -t columbus update_certs
    rsyslog: stopped
    rsyslog: started
    ftpd: stopped
    ftpd: started
    root@DockerPlayground:~#
    
  2. In una finestra del terminale eseguire:

    docker exec <collector name> chmod -R 700 /etc/ssl/private/
    

Abilita il collettore di log dietro un proxy

Se il sistema è in esecuzione dietro un proxy, l'utilità di raccolta log potrebbe avere problemi nell'invio dei dati a Defender for Cloud Apps. Ad esempio, gli errori di connessione potrebbero verificarsi perché l'agente di raccolta log non considera attendibile l'autorità di certificazione radice del proxy e non è in grado di connettersi a Microsoft Defender for Cloud Apps per recuperare la configurazione o caricare i log ricevuti.

Per abilitare il collettore di log dietro un proxy, configurare il collettore di log dietro un proxy, verificare la creazione del container Docker del collettore di log, copiare il certificato della CA radice del proxy nel container e configurare il sistema per usare il certificato della CA.

Consiglio

È anche possibile modificare i certificati usati dall'agente di raccolta log per Syslog o FTP oppure risolvere i problemi di connettività dai firewall e dai proxy all'agente di raccolta log. Per altre informazioni, vedere Modificare la configurazione FTP dell'agente di raccolta log.

Configurare il collettore di log dietro un proxy

Assicurarsi di aver eseguito i passaggi necessari per eseguire Docker in un computer Windows o Linux e di aver scaricato correttamente l'immagine Docker Defender for Cloud Apps nel computer host.

Per i prerequisiti di configurazione e i passaggi di implementazione, vedi Configurare upload automatico dei log per report continui.

Verificare la creazione del contenitore del raccoglitore di log di Docker

Verificare che il contenitore sia stato creato ed è in esecuzione. Nella shell, eseguire:

docker ps

Verrà visualizzato un risultato simile all'output seguente:

Screenshot del contenitore Docker in esecuzione.

Copiare il certificato CA radice del proxy nel contenitore

Dalla macchina virtuale copiare il certificato ca nel contenitore Defender for Cloud Apps. Nell'esempio seguente il contenitore è denominato Ubuntu-LogCollector e il certificato CA è denominato Proxy-CA.crt.

Il comando seguente copia il certificato della CA del proxy nella cartella discovery del container in esecuzione, in modo che il collettore di log possa fidarsi del proxy. Eseguire il comando nell'host Ubuntu:

docker cp Proxy-CA.crt Ubuntu-LogCollector:/var/adallom/ftp/discovery

Impostare la configurazione in modo che funzioni con il certificato ca

Seguire questa procedura per importare il certificato della CA proxy nel Java KeyStore del contenitore in modo che l'agente di raccolta log consideri attendibile il proxy.

  1. Entrare nel contenitore. Eseguire il comando seguente per aprire bash nel contenitore dell'agente di raccolta log:

    docker exec -it Ubuntu-LogCollector /bin/bash
    
  2. Da una finestra bash all'interno del contenitore passare alla cartella Java jre . Per evitare un errore di percorso correlato alla versione, usare il comando seguente:

    cd "$(find /opt/jdk/*/jre -name "bin" -printf '%h' -quit)"
    cd bin
    
  3. Importare il certificato radice copiato in precedenza dalla cartella discovery nel Java KeyStore e impostare una password.

    La password predefinita è changeit. Per modificare la password predefinita, vedere Modificare la password dell'archivio chiavi Java.

    ./keytool --import --noprompt --trustcacerts --alias SelfSignedCert --file /var/adallom/ftp/discovery/Proxy-CA.crt --keystore ../lib/security/cacerts --storepass <password>
    
  4. Verificare che il certificato sia stato importato correttamente nell'archivio chiavi della CA. Eseguire il comando seguente per cercare l'alias specificato durante l'importazione (SelfSignedCert):

    ./keytool --list --keystore ../lib/security/cacerts | grep self
    

    Viene visualizzato il certificato ca proxy importato.

Limitare gli indirizzi IP che inviano messaggi syslog all'agente di raccolta log in Linux

Per proteggere l'immagine docker e assicurarsi che sia consentito un solo indirizzo IP per inviare i messaggi syslog all'agente di raccolta log, creare una regola di tabella IP nel computer host per consentire il traffico di input e eliminare il traffico proveniente da porte specifiche, ad esempio TCP/601 o UDP/514, a seconda della distribuzione.

Il comando seguente illustra un esempio di come creare una regola di tabella IP che può essere aggiunta al computer host. Questa regola di tabella consente all'indirizzo 1.2.3.4 IP di connettersi al contenitore dell'agente di raccolta log sulla porta TCP 601 e di eliminare tutte le altre connessioni provenienti da altri indirizzi IP sulla stessa porta.

iptables -I DOCKER-USER \! --src 1.2.3.4 -m tcp -p tcp --dport 601 -j DROP

Impostare il collettore di log in modo che venga eseguito con la nuova configurazione

Il contenitore è ora pronto.

Eseguire il collector_config comando usando il token API usato durante la creazione dell'agente di raccolta log. Ad esempio:

Schermata della finestra di dialogo Crea collettore di log.

Quando si esegue il comando, specificare il proprio token API, ad esempio collector_config abcd1234abcd1234abcd1234abcd1234 ${CONSOLE} ${COLLECTOR}

Ad esempio:

Screenshot di un esempio di aggiornamento della configurazione.

L'agente di raccolta log è ora in grado di comunicare con Defender for Cloud Apps. Dopo aver inviato i dati a Defender for Cloud Apps, lo stato dell'agente di raccolta log passa da Integro a Connesso. Ad esempio:

Schermata dello stato del raccoglitore di log che passa da Integro a Connesso dopo aver caricato i dati.

Nota

Se è necessario aggiornare la configurazione dell'agente di raccolta log, per aggiungere o rimuovere un'origine dati, ad esempio, è in genere necessario eliminare il contenitore e ripetere i passaggi descritti in Configurare l'agente di raccolta log dietro un proxy tramite Impostare l'agente di raccolta log per l'esecuzione con la nuova configurazione.

Per evitare di eliminare e ricreare il container, puoi rieseguire lo strumento collector_config con il nuovo token API generato nel Defender for Cloud Apps.

Modificare la password dell'archivio chiavi Java

Seguire questa procedura per modificare la password dell'archivio chiavi Java usata dall'agente di raccolta log.

  1. Arresta il server Java KeyStore.

  2. Aprire una shell bash all'interno del contenitore e passare alla cartella appdata/conf .

  3. Per modificare la password dell'archivio chiavi del server, eseguire:

    keytool -storepasswd -new newStorePassword -keystore server.keystore
    -storepass changeit
    

    La password del server predefinita è changeit.

  4. Per modificare la password del certificato, eseguire:

    keytool -keypasswd -alias server -keypass changeit -new newKeyPassword -keystore server.keystore -storepass newStorePassword
    

    L'alias del server predefinito è server.

  5. In un editor di testo aprire il file server-install\conf\server\secured-installed.properties . Aggiungere le righe di codice seguenti e quindi salvare le modifiche:

    1. Specificare la nuova password dell'archivio chiavi Java per il server: server.keystore.password=newStorePassword
    2. Specificare la nuova password del certificato per il server: server.key.password=newKeyPassword
  6. Avviare il server.

Spostare l'agente di raccolta log in una partizione di dati diversa in Linux

Molte aziende hanno il requisito di spostare i dati in una partizione separata. Questa procedura descrive come spostare le immagini Docker del raccoglitore di log di Defender for Cloud Apps in una partizione dati del tuo host Linux.

Questa procedura descrive lo spostamento dei dati in una partizione denominata archivio dati e presuppone che la partizione sia già stata montata. Ad esempio:

Schermata delle partizioni del disco Linux che mostra la partizione datastore montata per i dati del collettore di log.

L'aggiunta e la configurazione di una nuova partizione nell'host Linux non rientrano nell'ambito di questa guida.

Per spostare il collettore di log in una partizione diversa:

  1. Arrestare il servizio Docker. Eseguire:

    service docker stop
    
  2. Spostare i dati del collettore di log nella nuova partizione. Eseguire:

    mv /var/lib/docker /datastore/docker
    
  3. Rimuovere la directory di archiviazione Docker precedente (/var/lib/docker) e creare un collegamento simbolico alla nuova directory (/datastore/docker). Eseguire:

    rm -rf /var/lib/docker && ln -s /datastore/docker /var/lib/
    
  4. Avviare il servizio Docker. Eseguire:

    service docker start
    
  5. Facoltativamente, verificare che il container del raccoglitore di log sia in esecuzione elencando i container Docker attivi. Eseguire:

    docker ps
    

Verificare l'utilizzo del disco del collettore di log su Linux

Questa procedura descrive come verificare l'utilizzo del disco e la sua posizione del collettore di log.

  1. Individuare il percorso della directory in cui sono archiviati i dati del collettore di log. Eseguire:

    docker inspect <collector_name> | grep WorkDir
    

    Ad esempio:

    Schermata che mostra come identificare la directory del raccoglitore di log.

  2. Ottieni la dimensione su disco del raccoglitore di log utilizzando il percorso identificato senza il suffisso "/work". Eseguire:

    du -sh /var/lib/docker/overlay2/<log_collector_id>/
    

    Schermata dell'output del comando du che mostra la dimensione della directory del collettore di log su disco.

    Nota

    Se è necessario conoscere solo le dimensioni su disco, è possibile usare invece il comando seguente: docker ps -s

Sposta il collettore di log in un host accessibile

Negli ambienti regolamentati, l'accesso agli hub Docker in cui è ospitata l'immagine dell'agente di raccolta log può essere bloccato. Ciò impedisce Defender for Cloud Apps di importare i dati dall'agente di raccolta log e può essere risolto spostando l'immagine dell'agente di raccolta log in un host accessibile.

Questa procedura descrive come scaricare l'immagine dell'agente di raccolta log usando un computer che ha accesso a Docker Hub e importarla nell'host di destinazione.

L'immagine scaricata può essere importata sia nel repository privato sia direttamente sul tuo host. Questa procedura descrive come scaricare l'immagine dell'agente di raccolta log nel computer Windows e quindi usare WinSCP per spostare l'agente di raccolta log nell'host di destinazione.

Prerequisiti

Prima di iniziare, assicurarsi che siano soddisfatti i prerequisiti seguenti.

  1. Assicurarsi di avere Docker installato nell'host. Ad esempio, usare uno dei download seguenti:

  2. Dopo il download, usare la guida all'installazione offline di Docker per installare il sistema operativo.

    Avvia la procedura di trasferimento offline esportando l'immagine del raccoglitore di log e poi importando l'immagine nell'host di destinazione.

Esporta l'immagine del raccoglitore di log da Docker Hub

Per esportare l'immagine dell'agente di raccolta log, usare Esporta l'immagine in Linux o Esporta l'immagine in Windows, a seconda del sistema operativo.

Esportare l'immagine in Linux

Usare la procedura seguente per esportare l'immagine dell'agente di raccolta log da un computer Linux.

  1. In un computer Linux che ha accesso al Docker Hub eseguire il comando seguente per installare Docker e scaricare l'immagine dell'agente di raccolta log.

    curl -o /tmp/MCASInstallDocker.sh https://discoveryresources-cdn-prod.cloudappsecurity.com/prod1/public-files/MCASInstallDocker.sh && chmod +x /tmp/MCASInstallDocker.sh; /tmp/MCASInstallDocker.sh 
    
  2. Esporta l'immagine del raccoglitore di log. Eseguire:

    docker save --output /tmp/mcasLC.targ mcr.microsoft.com/mcas/logcollector
    chmod +r /tmp/mcasLC.tar
    

    Importante

    Assicurarsi di usare il parametro di output per scrivere in un file invece di STDOUT.

  3. Scarica l'immagine del raccoglitore di log sul tuo computer Windows sotto C:\mcasLogCollector\ usando WinSCP. Ad esempio:

    Schermata del download del raccoglitore di log su un computer Windows.

Esportare l'immagine in Windows

Utilizza i seguenti passaggi per esportare l'immagine del collettore di log da una macchina Windows.

  1. In un computer Windows 10 che ha accesso alla Docker Hub installare Docker Desktop.

  2. Scarica l'immagine del raccoglitore di log. Eseguire:

    docker login -u caslogcollector -p C0llector3nthusiast
    docker pull mcr.microsoft.com/mcas/logcollector
    
  3. Esporta l'immagine del raccoglitore di log. Eseguire:

    docker save --output C:\mcasLogCollector\mcasLC.targ mcr.microsoft.com/mcas/logcollector
    

    Importante

    Assicurarsi di usare il parametro di output per scrivere in un file invece di STDOUT.

Importare e caricare l'immagine del collettore di log sull'host di destinazione

Questa procedura descrive come trasferire l'immagine esportata all'host di destinazione.

  1. Caricare l'immagine dell'agente di raccolta log nell'host di destinazione in /tmp/. Ad esempio:

    Schermata della finestra di trasferimento di WinSCP che mostra il file immagine del collettore di log caricato sull'host di destinazione.

  2. Sull'host di destinazione, importare l'immagine del raccoglitore di log nel repository di immagini Docker. Eseguire:

    docker load --input /tmp/mcasLC.tar
    

    Ad esempio:

    Schermata dell'output del comando docker load che conferma che l'immagine del raccoglitore di log è stata aggiunta al repository locale.

  3. Facoltativamente, verificare che l'importazione sia stata completata correttamente. Eseguire:

    docker image ls
    

    Ad esempio:

    Schermata che mostra che l'importazione del collettore di log è riuscita.

    Ora puoi procedere con la creazione del tuo collettore di log utilizzando l'immagine dell'host di destinazione.

Definire porte personalizzate per i ricevitori Syslog e FTP per gli agenti di raccolta log in Linux

Alcune organizzazioni hanno il requisito di definire porte personalizzate per i servizi Syslog e FTP.

Quando si aggiunge un'origine dati, i collettori di log di Defender for Cloud Apps usano numeri di porta specifici per rimanere in ascolto dei log di traffico provenienti da una o più origini dati.

La tabella seguente elenca le porte di ascolto predefinite per i ricevitori:

Tipo di ricevitore Porte
Syslog * UDP/514 - UDP/51x
* TCP/601 - TCP/60x
FTP * TCP/21

Per definire porte personalizzate, seguire questa procedura:

  1. Nel portale Microsoft Defender selezionare Impostazioni. Scegliere quindi App cloud.

  2. In Cloud Discovery selezionare Caricamento automatico del log. Quindi seleziona la scheda Raccoglitori di log.

  3. Nella scheda Agenti di raccolta log aggiungere o modificare un agente di raccolta log e, dopo aver aggiornato le origini dati, copiare il comando esegui dalla finestra di dialogo. Ad esempio:

    Schermata della procedura guidata dello strumento di raccolta log che mostra il comando di esecuzione generato, che può essere copiato.

    Se usato così com'è fornito, il comando fornito dalla procedura guidata configura il collettore di log per utilizzare le porte 514/udp e 515/udp. Ad esempio:

    (echo <credentials>) | docker run --name LogCollector1 -p 514:514/udp -p 515:515/udp -p 21:21 -p 20000-20099:20000-20099 -e "PUBLICIP='10.0.0.100'" -e "PROXY=" -e "SYSLOG=true" -e "CONSOLE=machine.us2.portal.cloudappsecurity.com" -e "COLLECTOR=LogCollector1" --security-opt apparmor:unconfined --cap-add=SYS_ADMIN --restart unless-stopped -a stdin -i mcr.microsoft.com/mcas/logcollector starter
    

    Ad esempio:

    Schermata del comando eseguito dalla procedura guidata del collettore di log.

  4. Prima di usare il comando nel computer host, modificare il comando per usare le porte personalizzate. Ad esempio, per configurare l'agente di raccolta log per l'uso delle porte UDP 414 e 415, modificare il comando come indicato di seguito:

    (echo <credentials>) | docker run --name LogCollector1 -p 414:514/udp -p 415:515/udp -p 21:21 -p 20000-20099:20000-20099 -e "PUBLICIP='10.0.0.100'" -e "PROXY=" -e "SYSLOG=true" -e "CONSOLE=machine.us2.portal.cloudappsecurity.com" -e "COLLECTOR=LogCollector1" --security-opt apparmor:unconfined --cap-add=SYS_ADMIN --restart unless-stopped -a stdin -i mcr.microsoft.com/mcas/logcollector starter
    

    Ad esempio:

    Schermata di un comando Esegui personalizzato.

    Nota

    Viene modificato solo il mapping Docker. Le porte assegnate internamente non vengono modificate, consentendo di scegliere qualsiasi porta di ascolto sull'host.

Verificare il traffico e il formato dei log ricevuti dal collettore di log su Linux

In alcuni casi, potrebbe essere necessario analizzare problemi come i seguenti:

  • Gli agenti di raccolta log ricevono dati: verificare che gli agenti di raccolta log ricevano messaggi Syslog dalle appliance e non siano bloccati dai firewall.
  • I dati ricevuti sono nel formato di log corretto: convalidare il formato del log per risolvere gli errori di analisi confrontando il formato di log previsto da Defender for Cloud Apps e quello inviato dall'appliance.

Seguire questa procedura per verificare che il traffico venga ricevuto dagli agenti di raccolta log:

  1. Accedere al server che ospita il contenitore Docker.

  2. Verificare che l'agente di raccolta log stia ricevendo messaggi Syslog usando uno dei metodi seguenti:

    • Usare tcpdump o un comando simile per analizzare il traffico di rete sulla porta 514:

      tcpdump -Als0 port 514
      

      Se tutto è configurato correttamente, dovrebbe essere visualizzato il traffico di rete dalle appliance. Ad esempio:

      Schermata dell'output di tcpdump che mostra il traffico Syslog in ingresso dalle appliance sulla porta 514.

    • Usare netcat o un comando simile per analizzare il traffico di rete nel computer host:

      1. Installare netcat e wget.

      2. Scarica un file di log di esempio dal portale Defender. Se necessario, decomprimere il file di log.

        1. Nel portale Defender, in Cloud Apps seleziona Cloud Discovery>Azioni>Crea report snapshot di Cloud Discovery.

        2. Selezionare l'origine dati da cui caricare i file di log.

        3. Selezionare Visualizza e verificare , quindi fare clic con il pulsante destro del mouse su Scarica log di esempio e copiare il collegamento all'indirizzo URL.

        4. Selezionare Chiudi>annulla.

      3. Eseguire:

        wget <URL_address_to_sample_log>
        
      4. Eseguire netcat per trasmettere i dati all'agente di raccolta log.

        cat <path_to_downloaded_sample_log>.log | nc -w 0 localhost <datasource_port>
        

      Se l'agente di raccolta è configurato correttamente, i dati di log sono presenti nel file dei messaggi e vengono caricati in Defender for Cloud Apps poco dopo la scrittura.

    • Esaminare i file rilevanti all'interno del contenitore Docker Defender for Cloud Apps:

      1. Accedere al contenitore. Eseguire:

        docker exec -it <Container Name> bash
        
      2. Determinare se i messaggi Syslog vengono scritti nel file di messaggi. Eseguire:

        cat /var/adallom/syslog/<your_log_collector_port>/messages
        

      Se tutto è configurato correttamente, dovrebbe essere visualizzato il traffico di rete dalle appliance. Ad esempio:

      Screenshot dell'analisi del traffico tramite il comando cat.

      Nota

      Questo file continuerà a essere scritto finché non raggiunge i 40 KB. Ad esempio:

  3. Esaminare i log caricati in Defender for Cloud Apps nella /var/adallom/discoverylogsbackup directory. Ad esempio:

    Schermata dei file di log caricati nella directory discoverylogsbackup che mostra le voci di Syslog raccolte.

  4. Convalida il formato di log ricevuto dal collettore di log confrontando i messaggi archiviati in /var/adallom/discoverylogsbackup con il formato di log di esempio fornito nella procedura guidata di Defender for Cloud Apps Crea collettore di log.

Scrivere l'output del file dei messaggi in un file locale

Se si vuole usare il proprio log di esempio ma non si ha accesso all'appliance, è possibile acquisire messaggi Syslog in ingresso da una porta di origine dati specifica a un file locale per la risoluzione dei problemi.

Esegui il seguente comando per trasmettere i messaggi Syslog del collector per una data data source in un file locale sull'host, così da poter convalidare l'ingestione dei log o risolvere i problemi della connettività:

docker exec CustomerLogCollectorName tail -f -q /var/adallom/syslog/<datasource_port>/messages > /tmp/log.log

Confrontare il file di output (/tmp/log.log) con i messaggi archiviati nella /var/adallom/discoverylogsbackup directory.

Aggiornare la versione del collettore di log

Quando aggiorni il collettore di log:

  • Prima di installare la nuova versione, assicuratevi di arrestare il collettore di log e rimuovere l'immagine corrente.
  • Dopo aver installato la nuova versione, aggiornare i file del certificato.

Passaggi successivi

Se si verificano problemi, siamo qui per aiutarti. Per ottenere assistenza o supporto per il problema del prodotto, aprire un ticket di supporto.