Partilhar via


Gerenciamento avançado de coletores de logs

Este artigo descreve como configurar opções avançadas para coletores de log de descoberta na nuvem do Defender for Cloud Apps.

A descoberta na nuvem do Defender for Cloud Apps continua a se concentrar nos formatos básicos de firewall. As alterações nos logs que estão sendo encaminhados no nível do firewall podem não continuar a funcionar ou podem causar problemas com a análise. Se você encontrar erros desse tipo, recomendamos que continue a usar o formato de firewall base ou use opções com o coletor de log personalizado. Para obter mais informações, consulte Usar um analisador de log personalizado.

Este artigo descreve como modificar a configuração do Docker de descoberta na nuvem do Defender for Cloud Apps.

Modificar a configuração FTP do coletor de log

Use estas etapas nas seções a seguir para modificar a configuração do Docker de descoberta na nuvem do Defender for Cloud Apps.

Verificar a versão do coletor de log

Para verificar a versão do coletor de log atualmente instalado em seu sistema, conecte-se ao host do coletor de log e execute:

cat /var/adallom/versions | grep columbus-

Alterar a palavra-passe do FTP

Este procedimento descreve como alterar a senha usada para acessar arquivos do coletor de log:

  1. Conecte-se ao host do coletor de log e execute:

    docker exec -it <collector name> pure-pw passwd <ftp user>
    
  2. Introduza a sua nova palavra-passe e, em seguida, introduza-a novamente para confirmar.

  3. Execute o seguinte comando para aplicar a alteração:

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

Você deve ser capaz de visualizar o seguinte conteúdo:

  • run_logs
  • ssl_update
  • config.json

Personalizar arquivos de certificado

Este procedimento descreve como personalizar os arquivos de certificado usados para conexões seguras com a instância do Docker de descoberta em nuvem.

  1. Abra um cliente FTP e conecte-se ao host do coletor de log.

  2. Navegue até o ssl_update diretório e carregue os novos arquivos de certificado, incluindo os seguintes arquivos:

    Tipo de recetor Ficheiros necessários
    FTP - pure-ftpd.pem: Inclui os dados da chave e do certificado
    Syslog - ca.pem: O certificado da autoridade de certificação que foi usado para assinar o certificado do cliente.
    - server-key.pem e server-cert.pem: O certificado e a chave do coletor de logs

    As mensagens do Syslog são enviadas por TLS para o coletor de logs, o que requer autenticação TLS mútua, incluindo a autenticação dos certificados do cliente e do servidor.

    Os nomes dos ficheiros são obrigatórios. Se algum dos arquivos estiver faltando, a atualização falhará.

  3. Numa janela do terminal, execute:

    docker exec -t <collector name> update_certs
    

    A saída deve ser semelhante ao seguinte código:

    root@DockerPlayground:~# docker exec -t columbus update_certs
    rsyslog: stopped
    rsyslog: started
    ftpd: stopped
    ftpd: started
    root@DockerPlayground:~#
    
  4. Numa janela do terminal, execute:

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

Habilitar o coletor de log por trás de um proxy

Se você estiver executando atrás de um proxy, o coletor de logs pode ter problemas para enviar dados para o Defender for Cloud Apps. Por exemplo, isso pode acontecer porque o coletor de log não confia na autoridade de certificação raiz do proxy e não consegue se conectar ao Microsoft Defender for Cloud Apps para recuperar sua configuração ou carregar os logs recebidos.

Os procedimentos a seguir descrevem como habilitar seu coletor de log por trás de um proxy.

Gorjeta

Você também pode querer alterar os certificados usados pelo coletor de log para Syslog ou FTP ou resolver problemas de conectividade dos firewalls e proxies para o coletor de log. Para obter mais informações, consulte Modificar a configuração FTP do coletor de log.

Configurar o coletor de log atrás de um proxy

Certifique-se de que executou as etapas necessárias para executar o Docker em uma máquina Windows ou Linux e baixou com êxito a imagem do Docker do Defender for Cloud Apps em sua máquina host.

Para obter mais informações, consulte Configurar o carregamento automático de logs para relatórios contínuos.

Validar a criação do contêiner do coletor de logs do Docker

Verifique se o contêiner foi criado e está em execução. No shell, execute:

docker ps

Deverá ver algo semelhante ao resultado seguinte:

Captura de tela do contêiner do Docker em execução.

Copie o certificado da autoridade de certificação raiz do proxy para o contêiner

Na máquina virtual, copie o certificado da autoridade de certificação para o contêiner do Defender for Cloud Apps. No exemplo a seguir, o contêiner é chamado Ubuntu-LogCollector e o certificado da autoridade de certificação é chamado Proxy-CA.crt.

O comando a seguir copia o certificado para uma pasta no contêiner em execução. Execute o comando no host Ubuntu:

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

Definir a configuração para funcionar com o certificado da autoridade de certificação

  1. Vá para o recipiente. Execute o seguinte comando para abrir bash no contêiner do coletor de log:

    docker exec -it Ubuntu-LogCollector /bin/bash
    
  2. Em uma janela bash dentro do contêiner, vá para a pasta Java jre . Para evitar um erro de caminho relacionado à versão, use o seguinte comando:

    cd "$(find /opt/jdk/*/jre -name "bin" -printf '%h' -quit)"
    cd bin
    
  3. Importe o certificado raiz copiado anteriormente da pasta de descoberta para o Java KeyStore e defina uma senha.

    A senha padrão é changeit. Para obter mais informações, consulte Alterar a senha do Java KeyStore.

    ./keytool --import --noprompt --trustcacerts --alias SelfSignedCert --file /var/adallom/ftp/discovery/Proxy-CA.crt --keystore ../lib/security/cacerts --storepass <password>
    
  4. Verifique se o certificado foi importado corretamente para o keystore da autoridade de certificação. Execute o seguinte comando para procurar o alias fornecido durante a importação (SelfSignedCert):

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

Seu certificado de CA proxy importado é exibido.

Restringir endereços IP enviando mensagens syslog para o coletor de log no Linux

Para proteger a imagem do docker e garantir que apenas um endereço IP tenha permissão para enviar as mensagens syslog para o coletor de log, crie uma regra de tabela IP na máquina host para permitir o tráfego de entrada e descartar o tráfego vindo por portas específicas, como TCP/601 ou UDP/514, dependendo da implantação.

O comando a seguir mostra um exemplo de como criar uma regra de tabela IP que pode ser adicionada à máquina host. Esta regra de tabela permite que o endereço IP '1.2.3.4'' se conecte ao contêiner do coletor de log pela porta TCP 601 e solte todas as outras conexões provenientes de outros endereços IP pela mesma porta.

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

Definir o coletor de log para ser executado com a nova configuração

O contentor está agora pronto.

Execute o comando collector_config usando o token de API que você usou durante a criação do coletor de log. Por exemplo:

Captura de tela da caixa de diálogo Criar coletor de log.

Ao executar o comando, especifique seu próprio token de API, como collector_config abcd1234abcd1234abcd1234abcd1234 ${CONSOLE} ${COLLECTOR}

Por exemplo:

Captura de tela de um exemplo de atualização de configuração.

O coletor de logs agora pode se comunicar com o Defender for Cloud Apps. Depois de enviar dados para o Defender for Cloud Apps, o status do coletor de logs muda de Íntegro para Conectado. Por exemplo:

Captura de ecrã do estado do carregamento.

Nota

Se você tiver que atualizar a configuração do coletor de log, para adicionar ou remover uma fonte de dados, por exemplo, normalmente terá que excluir o contêiner e executar as etapas anteriores novamente.

Para evitar isso, você pode executar novamente a ferramenta collector_config com o novo token de API gerado no portal do Defender for Cloud Apps.

Alterar a senha do Java KeyStore

  1. Pare o servidor Java KeyStore.

  2. Abra um shell bash dentro do contêiner e vá para a pasta appdata/conf .

  3. Para alterar a senha KeyStore do servidor, execute:

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

    A senha padrão do servidor é changeit.

  4. Para alterar a senha do certificado, execute:

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

    O alias de servidor padrão é server.

  5. Em um editor de texto, abra o arquivo server-install\conf\server\secured-installed.properties . Adicione as seguintes linhas de código e salve as alterações:

    1. Especifique a nova senha do Java KeyStore para o servidor: server.keystore.password=newStorePassword
    2. Especifique a nova senha do certificado para o servidor: server.key.password=newKeyPassword
  6. Inicie o servidor.

Mover o coletor de log para uma partição de dados diferente no Linux

Muitas empresas têm o requisito de mover dados para uma partição separada. Este procedimento descreve como mover suas imagens do coletor de log do Docker do Defender for Cloud Apps para uma partição de dados em seu host Linux.

Este procedimento descreve a movimentação de dados para uma partição chamada armazenamento de dados e pressupõe que você já tenha montado a partição. Por exemplo:

Lista de partições Linux.

Adicionar e configurar uma nova partição em seu host Linux não está no escopo deste guia.

Para mover o coletor de log para uma partição diferente:

  1. Pare o serviço Docker. Executar:

    service docker stop
    
  2. Mova os dados do coletor de log para a nova partição. Executar:

    mv /var/lib/docker /datastore/docker
    
  3. Remova o diretório de armazenamento antigo do Docker (/var/lib/docker) e crie um link simbólico para o novo diretório (/datastore/docker). Executar:

    rm -rf /var/lib/docker && ln -s /datastore/docker /var/lib/
    
  4. Inicie o serviço Docker. Executar:

    service docker start
    
  5. Opcionalmente, verifique o status do coletor de logs. Executar:

    docker ps
    

Inspecione o uso do disco coletor de logs no Linux

Este procedimento descreve como revisar o uso e o local do disco coletor de log.

  1. Identifique o caminho para o diretório onde os dados do coletor de log estão armazenados. Executar:

    docker inspect <collector_name> | grep WorkDir
    

    Por exemplo:

    Captura de tela de como identificar o diretório do coletor de log.

  2. Obtenha o tamanho no disco do coletor de log usando o caminho identificado sem o sufixo "/work". Executar:

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

    Captura de tela de como identificar o tamanho do coletor de log no disco.

    Nota

    Se você só precisa saber o tamanho no disco, você pode usar o seguinte comando: docker ps -s

Mover o coletor de log para um host acessível

Em ambientes regulamentados, o acesso aos Hubs do Docker onde a imagem do coletor de logs está hospedada pode ser bloqueado. Isso impede que o Defender for Cloud Apps importe os dados do coletor de log e pode ser resolvido ao mover a imagem do coletor de log para um host acessível.

Este procedimento descreve como baixar a imagem do coletor de log usando um computador que tenha acesso ao Docker Hub e importá-la para o host de destino.

A imagem baixada pode ser importada em seu repositório privado ou diretamente em seu host. Este procedimento descreve como baixar a imagem do coletor de log para o computador Windows e, em seguida, usar o WinSCP para mover o coletor de log para o host de destino.

Pré-requisitos

  1. Certifique-se de que tem o Docker instalado no seu anfitrião. Por exemplo, use um dos seguintes downloads:

  2. Após o download, use o guia de instalação offline do Docker para instalar seu sistema operacional.

    Inicie o processo exportando a imagem do coletor de log e, em seguida, importe a imagem para o host de destino.

Exportar a imagem do coletor de logs do Docker Hub

Os procedimentos a seguir descrevem como exportar a imagem do coletor de log, usando Linux ou Windows.

Exportar a imagem no Linux

  1. Em um computador Linux que tenha acesso ao Docker Hub, execute o seguinte comando para instalar o Docker e baixar a imagem do coletor de log.

    curl -o /tmp/MCASInstallDocker.sh https://adaprodconsole.blob.core.windows.net/public-files/MCASInstallDocker.sh && chmod +x /tmp/MCASInstallDocker.sh; /tmp/MCASInstallDocker.sh
    
  2. Exporte a imagem do coletor de log. Executar:

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

    Importante

    Certifique-se de usar o parâmetro output para gravar em um arquivo em vez de STDOUT.

  3. Transfira a imagem do coletor de registos para o computador Windows em C:\mcasLogCollector\ utilizar o WinSCP. Por exemplo:

    Captura de ecrã a mostrar a transferência do coletor de registos para um computador Windows.

Exportar a imagem no Windows

  1. Em um computador com Windows 10 que tenha acesso ao Docker Hub, instale o Docker Desktop.

  2. Faça o download da imagem do coletor de logs. Executar:

    docker login -u caslogcollector -p C0llector3nthusiast
    docker pull mcr.microsoft.com/mcas/logcollector
    
  3. Exporte a imagem do coletor de log. Executar:

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

    Importante

    Certifique-se de usar o parâmetro output para gravar em um arquivo em vez de STDOUT.

Importar e carregar a imagem do coletor de log para o host de destino

Este procedimento descreve como transferir a imagem exportada para o host de destino.

  1. Carregue a imagem do coletor de logs para o host de destino em /tmp/. Por exemplo:

    Captura de tela do upload do coletor de logs para o host de destino.

  2. No host de destino, importe a imagem do coletor de logs para o repositório de imagens do Docker. Executar:

    docker load --input /tmp/mcasLC.tar
    

    Por exemplo:

    Captura de tela da importação da imagem do coletor de logs para o repositório do Docker.

  3. Opcionalmente, verifique se a importação foi concluída com êxito. Executar:

    docker image ls
    

    Por exemplo:

    Captura de tela mostrando a verificação de que a importação do coletor de logs foi bem-sucedida.

    Agora você pode continuar a criar seu coletor de log usando a imagem do host de destino.

Definir portas personalizadas para recetores Syslog e FTP para coletores de log no Linux

Algumas organizações têm um requisito para definir portas personalizadas para serviços Syslog e FTP.

Quando você adiciona uma fonte de dados, os coletores de log do Defender for Cloud Apps usam números de porta específicos para ouvir logs de tráfego de uma ou mais fontes de dados.

A tabela a seguir lista as portas de escuta padrão para recetores:

Tipo de recetor Portas
Syslog * UDP/514 - UDP/51x
* TCP/601 - TCP/60x
FTP * TCP/21

Use as seguintes etapas para definir portas personalizadas:

  1. No Portal do Microsoft Defender, selecione Configurações. Em seguida, escolha Cloud Apps.

  2. Em Cloud Discovery, selecione Carregamento automático de registos. Em seguida, selecione a guia Coletores de log.

  3. Na guia Coletores de log, adicione ou edite um coletor de log e, depois de atualizar as fontes de dados, copie o comando executar da caixa de diálogo. Por exemplo:

    Comando Copy run do assistente do coletor de log.

    Se usado conforme fornecido, o comando fornecido pelo assistente configura o coletor de log para usar as portas 514/udp e 515/udp. Por exemplo:

    (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
    

    Por exemplo:

    Captura de tela do comando executado a partir do assistente do coletor de logs.

  4. Antes de usar o comando em sua máquina host, modifique o comando para usar suas portas personalizadas. Por exemplo, para configurar o coletor de log para usar as portas UDP 414 e 415, altere o comando da seguinte maneira:

    (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
    

    Por exemplo:

    Captura de ecrã de um comando de execução personalizado.

    Nota

    Somente o mapeamento do Docker é modificado. As portas atribuídas internamente não são alteradas, permitindo que você escolha qualquer porta de escuta no host.

Validar o tráfego e o formato de log recebidos pelo coletor de logs no Linux

Ocasionalmente, pode ser necessário investigar problemas como os seguintes:

  • Os coletores de log estão recebendo dados: valide se os coletores de log estão recebendo mensagens Syslog de seus dispositivos e não estão bloqueados por firewalls.
  • Os dados recebidos estão no formato de log correto: valide o formato de log para ajudá-lo a solucionar erros de análise comparando o formato de log esperado pelo Defender for Cloud Apps e o enviado pelo seu dispositivo.

Use as seguintes etapas para verificar se o tráfego é recebido pelos coletores de log:

  1. Faça login no servidor que hospeda o contêiner do Docker.

  2. Valide se o coletor de log está recebendo mensagens Syslog usando qualquer um dos seguintes métodos:

    • Use tcpddump ou um comando semelhante para analisar o tráfego de rede na porta 514:

      tcpdump -Als0 port 514
      

      Se tudo estiver configurado corretamente, você verá o tráfego de rede de seus aparelhos. Por exemplo:

      Captura de tela da análise do tráfego de rede via tcpdump.

    • Use o netcat ou um comando semelhante para analisar o tráfego de rede na máquina host:

      1. Instale o netcat e o wget.

      2. Baixe um arquivo de log de exemplo do Microsoft Defender XDR. Se necessário, descompacte o arquivo de log.

        1. No Microsoft Defender XDR, em Cloud Apps, selecione Cloud Discovery>Actions>Create Cloud Discovery snapshot report.

        2. Selecione a Origem de dados a partir da qual quer carregar os ficheiros de registo.

        3. Selecione Exibir e verificar e, em seguida, clique com o botão direito do mouse em Baixar log de exemplo e copie o link do endereço URL.

        4. Selecione Fechar>Cancelar.

      3. Executar:

        wget <URL_address_to_sample_log>
        
      4. Execute netcat para transmitir os dados para o coletor de log.

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

      Se o coletor estiver configurado corretamente, os dados de log estarão presentes no arquivo de mensagens e, logo depois, serão carregados no portal do Defender for Cloud Apps.

    • Inspecione arquivos relevantes dentro do contêiner do Docker do Defender for Cloud Apps:

      1. Inicie sessão no contentor. Executar:

        docker exec -it <Container Name> bash
        
      2. Determine se as mensagens Syslog estão sendo gravadas no arquivo de mensagens. Executar:

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

      Se tudo estiver configurado corretamente, você verá o tráfego de rede de seus aparelhos. Por exemplo:

      Captura de tela da análise do tráfego usando o comando cat.

      Nota

      Este ficheiro continuará a ser gravado até atingir 40 KB de tamanho. Por exemplo:

  3. Revise os logs que foram carregados para o /var/adallom/discoverylogsbackup Defender for Cloud Apps no diretório. Por exemplo:

    Revise os arquivos de log carregados.

  4. Valide o formato de log recebido pelo coletor de log comparando as mensagens armazenadas com /var/adallom/discoverylogsbackup o formato de log de exemplo fornecido no assistente Criar coletor de log do Defender for Cloud Apps.

Gravar a saída do arquivo de mensagens em um arquivo local

Se você quiser usar seu próprio log de exemplo, mas não tiver acesso ao dispositivo, use os seguintes comandos para gravar a saída do arquivo de mensagens , localizado no diretório syslog do coletor de logs, em um arquivo local no host:

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

Compare o arquivo de saída (/tmp/log.log) com as mensagens armazenadas no /var/adallom/discoverylogsbackup diretório.

Atualizar a versão do coletor de log

Ao atualizar seu coletor de log:

  • Antes de instalar a nova versão, certifique-se de parar o coletor de log e remover a imagem atual.
  • Depois de instalar a nova versão, atualize os arquivos de certificado.

Próximos passos

Se tiver algum problema, estamos aqui para ajudar. Para obter assistência ou suporte para o problema do seu produto, abra um ticket de suporte.