Gestão avançada do recoletor de registos

Configure opções avançadas para coletores de logs de descoberta na nuvem

Este artigo descreve como configurar as opções avançadas dos coletores de logs para descoberta na nuvem do Defender para Aplicativos de Nuvem.

Defender para Aplicativos de Nuvem cloud discovery continua a focar-se nos formatos de firewall base. As alterações aos registos que estão a ser reencaminhados ao nível da firewall podem não continuar a funcionar ou podem causar problemas com a análise. Se você encontrar erros de análise causados por formatos modificados de log de firewall, recomendamos que continue usando o formato base do firewall ou utilize opções com o coletor de logs personalizado. Para obter mais informações, veja Utilizar um analisador de registos personalizado.

Este artigo descreve como modificar a configuração do Docker de descoberta de nuvem do Defender para Aplicativos de Nuvem.

Modificar a configuração de FTP do recoletor de registos

Use as etapas em Verificar a versão do coletor de logs, alterar a senha ftp e adicionar arquivos de certificado para modificar a configuração do Docker de descoberta de nuvem Defender para Aplicativos de Nuvem.

Verificar a versão do recoletor de registos

Para verificar a versão do coletor de logs atualmente instalada em seu sistema, conecte-se ao host do coletor de logs e execute o seguinte comando para verificar a versão do componente do coletor instalado:

cat /var/adallom/versions | grep columbus-

Alterar a palavra-passe de FTP

Este procedimento descreve como alterar a palavra-passe utilizada para aceder aos ficheiros do recoletor de registos:

  1. Ligue-se ao anfitrião do recoletor de registos 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
    

No diretório raiz ftp do coletor de logs, você deve ser capaz de exibir o seguinte conteúdo:

  • run_logs
  • ssl_update
  • config.json

Adicionar ficheiros de certificado

Este procedimento descreve como adicionar os arquivos de certificado necessários para conexões seguras à instância do Docker do Cloud Discovery.

  1. Abra um cliente FTP e ligue-se ao anfitrião do recoletor de registos.

  2. Navegue para o ssl_update diretório e carregue os novos ficheiros de certificado, incluindo os seguintes ficheiros:

    Tipo de recetor Arquivos necessários
    FTP - pure-ftpd.pem: inclui a chave e os dados do certificado
    Syslog - ca.pem: o certificado da autoridade de certificação que foi utilizado para assinar o certificado do cliente.
    - server-key.pem e server-cert.pem: o certificado e a chave do recoletor de registos

    As mensagens do Syslog são enviadas através de TLS para o recoletor de registos, o que requer autenticação TLS mútua, incluindo a autenticação dos certificados de cliente e de servidor.

Os arquivos são obrigatórios. Se algum dos ficheiros do tipo de recetor estiver em falta, a atualização falhará.

  1. Numa janela de terminal, execute:

    docker exec -t <collector name> update_certs
    

    O resultado 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:~#
    
  2. Numa janela de terminal, execute:

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

Ativar o coletor de logs por trás de um proxy

Se você estiver executando por trás de um proxy, o coletor de logs poderá ter problemas para enviar dados ao Defender para Aplicativos de Nuvem. Por exemplo, falhas de conexão podem acontecer porque o coletor de logs não confia na autoridade de certificação raiz do proxy e não é capaz de se conectar a Microsoft Defender para Aplicativos de Nuvem para recuperar sua configuração ou carregar os logs recebidos.

Para habilitar o coletor de logs por trás de um proxy, configure o coletor de logs por trás de um proxy, valide a criação do contêiner do coletor de logs do Docker, copie o certificado de AC raiz do proxy para o contêiner e defina a configuração para funcionar com o certificado de AC.

Dica

Talvez você também queira alterar os certificados usados pelo coletor de logs para Syslog ou FTP, ou resolver problemas de conectividade dos firewalls e proxies com o coletor de logs. Para obter mais informações, veja Modificar a configuração de FTP do recoletor de registos.

Configurar o coletor de logs por trás de um proxy

Certifique-se de que executou os passos necessários para executar o Docker num computador Windows ou Linux e transferiu com êxito a imagem do Defender para Aplicativos de Nuvem Docker para o seu computador anfitrião.

Para pré-requisitos de configuração e etapas de implantação, veja Configurar upload automático de log para relatórios contínuos.

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

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

docker ps

Deverá ver algo semelhante ao seguinte resultado:

Captura de ecrã a mostrar o contentor do Docker em execução.

Copie o certificado CA raiz do proxy para o contêiner

A partir da máquina virtual, copie o certificado de AC para o contentor Defender para Aplicativos de Nuvem. No exemplo seguinte, o contentor tem o nome Ubuntu-LogCollector e o certificado de AC chama-se Proxy-CA.crt.

O comando a seguir copia o certificado da AC do proxy para a pasta discovery do contêiner em execução, para que o coletor de logs possa confiar no proxy. Execute o comando no anfitrião Ubuntu:

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

Defina a configuração para usar o certificado da CA

Execute as etapas a seguir para importar o certificado da AC do proxy para o Java KeyStore do contêiner, para que o coletor de logs confie no proxy.

  1. Aceda ao contentor. Execute o seguinte comando para abrir o bash no contentor do recoletor de registos:

    docker exec -it Ubuntu-LogCollector /bin/bash
    
  2. A partir de uma janela de bash dentro do contentor, aceda à pasta Java jre . Para evitar um erro de caminho relacionado com a versão, utilize o seguinte comando:

    cd "$(find /opt/jdk/*/jre -name "bin" -printf '%h' -quit)"
    cd bin
    
  3. Importe o certificado raiz que você copiou anteriormente da pasta discovery para o KeyStore do Java e defina uma senha.

    A palavra-passe predefinida é changeit. Para alterar a senha padrão, consulte Alterar a senha 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 arquivo de chaves da AC. Execute o seguinte comando para procurar o alias que forneceu durante a importação (SelfSignedCert):

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

    Seu Certificado de Autoridade de Certificação importado do proxy é exibido.

Restringir os endereços IP que enviam mensagens syslog para o recoletor de registos no Linux

Para proteger a imagem do Docker e garantir que apenas um endereço IP tem permissão para enviar as mensagens do syslog para o recoletor de registos, crie uma regra de tabela IP no computador anfitrião para permitir o tráfego de entrada e largue o tráfego que passa por portas específicas, como TCP/601 ou UDP/514, consoante a implementação.

O comando seguinte mostra um exemplo de como criar uma regra de tabela de IP que pode ser adicionada ao computador anfitrião. Esta regra de tabela permite que o endereço 1.2.3.4 IP se ligue ao contentor do recoletor de registos através da porta TCP 601 e remova todas as outras ligações provenientes de outros endereços IP através da mesma porta.

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

Definir o recoletor de registos para ser executado com a nova configuração

O contentor está agora pronto.

Execute o collector_config comando com o token de API que utilizou durante a criação do recoletor de registos. Por exemplo:

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

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

Por exemplo:

Captura de ecrã a mostrar um exemplo de atualização de configuração.

O recoletor de registos consegue agora comunicar com Defender para Aplicativos de Nuvem. Depois de enviar dados para Defender para Aplicativos de Nuvem, o status do recoletor de registos muda de Bom Estado de Funcionamento para Ligado. Por exemplo:

Captura de tela do status do coletor de logs passando de Saudável para Conectado após o envio de dados.

Observação

Se você precisar atualizar a configuração do coletor de logs, para adicionar ou remover uma fonte de dados, por exemplo, normalmente você precisará excluir o contêiner e repetir as etapas em Configurar o coletor de logs por trás de um proxy por meio de Definir o coletor de logs para executar com a nova configuração.

Para evitar deletar e recriar o container, você pode reexecutar a ferramenta collector_config com o novo token de API gerado no Defender para Aplicativos de Nuvem.

Alterar a palavra-passe do KeyStore java

Execute as etapas a seguir para alterar a senha Java KeyStore usada pelo coletor de logs.

  1. Pare o servidor Java KeyStore.

  2. Abra uma shell de bash dentro do contentor e aceda à pasta appdata/conf .

  3. Para alterar a palavra-passe do KeyStore do servidor, execute:

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

    A palavra-passe do servidor predefinida é changeit.

  4. Para alterar a palavra-passe do certificado, execute:

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

    O alias de servidor predefinido é servidor.

  5. Num editor de texto, abra o ficheiro server-install\conf\server\secured-installed.properties . Adicione as seguintes linhas de código e, em seguida, guarde as alterações:

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

Mover o recoletor de registos 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 as imagens do recoletor de registos do Defender para Aplicativos de Nuvem Docker para uma partição de dados no seu anfitrião Linux.

Este procedimento descreve como mover dados para uma partição chamada arquivo de dados e pressupõe que já montou a partição. Por exemplo:

Captura de tela das partições de disco do Linux mostrando a partição de armazenamento de dados montada para dados do coletor de logs.

Adicionar e configurar uma nova partição no seu anfitrião Linux não está no âmbito deste guia.

Para mover o recoletor de registos para uma partição diferente:

  1. Pare o serviço Docker. Executar:

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

    mv /var/lib/docker /datastore/docker
    
  3. Remova o diretório de armazenamento do Docker antigo (/var/lib/docker) e crie uma ligação simbólica 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 se o contêiner do coletor de logs está em execução listando os contêineres ativos do Docker. Executar:

    docker ps
    

Inspecionar o uso do disco do coletor de logs no Linux

Este procedimento descreve como rever a utilização e a localização do disco do recoletor de registos.

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

    docker inspect <collector_name> | grep WorkDir
    

    Por exemplo:

    Captura de ecrã a mostrar como identificar o diretório do recoletor de registos.

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

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

    Captura de tela da saída do comando du mostrando o tamanho do diretório do coletor de logs no disco.

    Observação

    Se apenas precisar de saber o tamanho no disco, pode utilizar o seguinte comando: docker ps -s

Mova o coletor de logs para um host acessível

Em ambientes regulados, o acesso aos Hubs do Docker onde a imagem do recoletor de registos está alojada pode ser bloqueado. Isto impede Defender para Aplicativos de Nuvem de importar os dados do recoletor de registos e pode ser resolvido ao mover a imagem do recoletor de registos para um anfitrião acessível.

Este procedimento descreve como transferir a imagem do recoletor de registos através de um computador que tenha acesso a Docker Hub e importá-la para o anfitrião de destino.

A imagem baixada pode ser importada seja para o seu repositório privado ou diretamente no seu host. Este procedimento descreve como transferir a imagem do recoletor de registos para o computador Windows e, em seguida, utilizar o WinSCP para mover o recoletor de registos para o anfitrião de destino.

Pré-requisitos

Antes de começar, verifique se os pré-requisitos a seguir são atendidos.

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

  2. Após a transferência, utilize o guia de instalação offline do Docker para instalar o seu sistema operativo.

    Inicie o fluxo de trabalho de transferência offline exportando a imagem do coletor de logs e importando a imagem para o host de destino.

Exportar a imagem do coletor de logs do seu Docker Hub

Para exportar a imagem do coletor de logs, use Exportar a imagem no Linux ou exportar a imagem em Windows, dependendo do sistema operacional.

Exportar a imagem no Linux

Use as etapas a seguir para exportar a imagem do coletor de logs de um computador Linux.

  1. Num computador Linux com acesso ao Docker Hub, execute o seguinte comando para instalar o Docker e transferir a imagem do recoletor de registos.

    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. Exportar a imagem do coletor de registros. Executar:

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

    Importante

    Certifique-se de que utiliza o parâmetro de saída para escrever num ficheiro em vez de STDOUT.

  3. Baixe a imagem do coletor de logs no seu computador Windows em C:\mcasLogCollector\ usando o WinSCP. Por exemplo:

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

Exportar a imagem no Windows

Use as etapas a seguir para exportar a imagem do coletor de logs de um computador Windows.

  1. Num computador Windows 10 que tenha acesso ao Docker Hub, instale o Docker Desktop.

  2. Baixe a imagem do coletor de logs. Executar:

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

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

    Importante

    Certifique-se de que utiliza o parâmetro de saída para escrever num ficheiro em vez de STDOUT.

Importe e carregue a imagem do coletor de logs para o host de destino

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

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

    Captura de tela da janela de transferência do WinSCP mostrando o arquivo de imagem do coletor de logs sendo carregado no host de destino.

  2. No anfitrião de destino, importe a imagem do recoletor de registos para o repositório de imagens do Docker. Executar:

    docker load --input /tmp/mcasLC.tar
    

    Por exemplo:

    Captura de tela da saída do comando de carregamento do docker confirmando que a imagem do coletor de logs foi adicionada ao repositório local.

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

    docker image ls
    

    Por exemplo:

    Captura de ecrã a mostrar a verificação de que a importação do recoletor de registos foi concluída com êxito.

    Agora, você pode prosseguir para criar seu coletor de logs usando a imagem do host de destino.

Definir portas personalizadas para recetores Syslog e FTP para recoletores de registos no Linux

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

Ao adicionar uma fonte de dados, os coletores de logs do Defender para Aplicativos de Nuvem usam números de porta específicos para escutar logs de tráfego de uma ou mais fontes de dados.

A tabela a seguir apresenta as portas de escuta padrão dos receptores:

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

Utilize os seguintes passos para definir portas personalizadas:

  1. No Portal do Microsoft Defender, selecione Definições. Em seguida, selecione Aplicações na Cloud.

  2. Em Cloud Discovery, selecione Carregamento automático de registos. Em seguida, selecione o separador Recoletores de registos .

  3. No separador Recoletores de registos , adicione ou edite um recoletor de registos e, depois de atualizar as origens de dados, copie o comando executar a partir da caixa de diálogo. Por exemplo:

    Captura de tela do assistente do coletor de logs mostrando o comando de execução gerado disponível para cópia.

    Se for utilizado conforme fornecido, o comando fornecido pelo assistente configura o recoletor de registos para utilizar 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 ecrã do comando executado a partir do assistente do recoletor de registos.

  4. Antes de utilizar o comando no computador anfitrião, modifique o comando para utilizar as portas personalizadas. Por exemplo, para configurar o recoletor de registos para utilizar as portas UDP 414 e 415, altere o comando da seguinte forma:

    (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ã a mostrar um comando de execução personalizado.

    Observação

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

Validar o tráfego e o formato de registo recebidos pelo recoletor de registos no Linux

Ocasionalmente, poderá ter de investigar problemas como o seguinte:

  • Os recoletores de registos estão a receber dados: confirme que os recoletores de registos estão a receber mensagens do Syslog das suas aplicações e não são bloqueados por firewalls.
  • Os dados recebidos estão no formato de registo correto: valide o formato de registo para o ajudar a resolver erros de análise ao comparar o formato de registo esperado por Defender para Aplicativos de Nuvem e o que o dispositivo envia.

Utilize os seguintes passos para verificar se o tráfego é recebido pelos recoletores de registos:

  1. Inicie sessão no servidor que aloja o contentor do Docker.

  2. Confirme que o recoletor de registos está a receber mensagens do Syslog com qualquer um dos seguintes métodos:

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

      tcpdump -Als0 port 514
      

      Se tudo estiver configurado corretamente, deverá ver o tráfego de rede das suas aplicações. Por exemplo:

      Captura de tela da saída do tcpdump mostrando o tráfego Syslog recebido de dispositivos na porta 514.

    • Utilize netcat ou um comando semelhante para analisar o tráfego de rede no computador anfitrião:

      1. Instale netcat e wget.

      2. Baixe um arquivo de log de exemplo do portal Defender. Se necessário, deszipe o ficheiro de registo.

        1. No portal do Defender, em Aplicativos de Nuvem, selecione Descoberta na Nuvem>, Ações>, Criar relatório de instantâneo da Descoberta na Nuvem.

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

        3. Selecione Exibir e verificar e, em seguida, clique com o botão direito 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 ao log-collector.

        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 serão carregados para Defender para Aplicativos de Nuvem logo após serem gravados.

    • Inspecione os ficheiros relevantes no contentor do Defender para Aplicativos de Nuvem Docker:

      1. Faça login no contêiner. Executar:

        docker exec -it <Container Name> bash
        
      2. Determine se as mensagens do Syslog estão a ser escritas no ficheiro de mensagens. Executar:

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

      Se tudo estiver configurado corretamente, deverá ver o tráfego de rede das suas aplicações. Por exemplo:

      Captura de ecrã a mostrar a análise do tráfego com o comando cat.

      Observação

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

  3. Reveja os registos que foram carregados para Defender para Aplicativos de Nuvem no /var/adallom/discoverylogsbackup diretório. Por exemplo:

    Captura de tela dos arquivos de log carregados no diretório discoverylogsbackup mostrando entradas do Syslog coletadas.

  4. Valide o formato de log recebido pelo coletor de logs comparando as mensagens armazenadas em /var/adallom/discoverylogsbackup com o formato de log de exemplo fornecido no assistente do Defender para Aplicativos de Nuvem Criar coletor de logs.

Escrever o resultado do ficheiro de mensagens num ficheiro local

Se você quiser usar seu próprio log de exemplo, mas não tiver acesso ao dispositivo, poderá capturar mensagens do Syslog de entrada de uma porta de fonte de dados específica para um arquivo local para solução de problemas.

Execute o seguinte comando para transmitir as mensagens Syslog do coletor para uma dada porta de origem de dados em um arquivo local no host, para que você possa validar a ingestão de logs ou solucionar problemas de conectividade:

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

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

Atualizar a versão do recoletor de registos

Ao atualizar o recoletor de registos:

Próximas etapas

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