Gestão avançada do recoletor de registos

Configurar opções avançadas para coletores de registos de descoberta na nuvem

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

Defender for Cloud Apps 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 encontrar erros de análise sintática causados por formatos de registo de firewall modificados, recomendamos que continue a usar o formato base do firewall, ou que 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 Deteção na Cloud do Defender for Cloud Apps.

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

Use os passos em Verificar a versão do coletor de logs, alterar a palavra-passe FTP e adicionar ficheiros de certificado para modificar a configuração do seu Docker de descoberta na nuvem do Defender for Cloud Apps.

Verificar a versão do recoletor de registos

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

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 log, deverá conseguir visualizar o seguinte conteúdo:

  • run_logs
  • ssl_update
  • config.json

Adicionar ficheiros de certificado

Este procedimento descreve como adicionar os ficheiros de certificado necessários para ligaçõ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 Ficheiros 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 ficheiros 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 registos por trás de um proxy

Se estiver a executar atrás de um proxy, o recoletor de registos poderá ter problemas ao enviar dados para Defender for Cloud Apps. Por exemplo, falhas de ligação podem acontecer porque o coletor de logs não confia na autoridade de certificação raiz do proxy e não consegue ligar-se ao Microsoft Defender for Cloud Apps para recuperar a sua configuração ou carregar os logs recebidos.

Para ativar o teu coletor de registos atrás de um proxy, configura o coletor de logs atrás de um proxy, valida a criação do contentor do coletor de logs Docker, copia o certificado raiz da CA proxy para o contentor e define a configuração para funcionar com o certificado da CA.

Sugestão

Também poderá querer alterar os certificados utilizados pelo recoletor de registos para Syslog ou FTP ou resolver problemas de conectividade das firewalls e proxies para o recoletor de registos. Para obter mais informações, veja Modificar a configuração de FTP do recoletor de registos.

Configurar o coletor de registos 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 for Cloud Apps Docker para o seu computador anfitrião.

Para pré-requisitos de configuração e passos de implementação, consulte Configurar carregamento automático de registos para relatórios contínuos.

Validar a criação do contentor de recolha de registos do Docker

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

docker ps

Deverá ver algo semelhante ao seguinte resultado:

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

Copiar o certificado da AC de raiz do proxy para o contentor

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

O comando seguinte copia o certificado da AC do proxy para a pasta discovery do contentor em execução, para que o recolhedor de registos confie no proxy. Execute o comando no anfitrião Ubuntu:

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

Configure a configuração para funcionar com o certificado de AC

Execute os seguintes passos para importar o certificado da CA proxy para a Java KeyStore do contentor 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 copiou anteriormente da pasta discovery para o Java KeyStore e defina uma palavra-passe.

    A palavra-passe predefinida é changeit. Para alterar a palavra-passe predefinida, veja Alterar a palavra-passe 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 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
    

    É apresentado o certificado de AC de proxy importado.

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 ecrã da caixa de diálogo Criar coletor de registos.

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 for Cloud Apps. Depois de enviar dados para Defender for Cloud Apps, o estado do recoletor de registos muda de Bom Estado de Funcionamento para Ligado. Por exemplo:

Captura de ecrã do estado do coletor de registos a mudar de Em bom estado para Ligado após carregar os dados.

Nota

Se tiveres de atualizar a configuração do coletor de logs, para adicionar ou remover uma fonte de dados por exemplo, normalmente tens de eliminar o contentor e repetir os passos em Configurar o coletor de logs atrás de um proxy através de Configurar o coletor de logs para correr com a nova configuração.

Para evitar eliminar e recriar o contentor, pode voltar a executar a ferramenta de collector_config com o novo token API gerado no Defender for Cloud Apps.

Alterar a palavra-passe do KeyStore java

Execute os seguintes passos para alterar a palavra-passe do Java KeyStore usada pelo coletor de log.

  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 coletor de registos do Docker do Defender for Cloud Apps para uma partição de dados no seu anfitrião do 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 ecrã das partições de disco Linux mostrando a partição montada do datastore para os dados do coletor de log.

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 contentor coletor de logs está a funcionar listando os contentores Docker ativos. Executar:

    docker ps
    

Verificar a utilização do espaço em disco do coletor de registos 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 registos utilizando o caminho identificado sem o sufixo "/work". Executar:

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

    Captura de ecrã da saída do comando du que mostra o tamanho do diretório do coletor de registos no disco.

    Nota

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

Mova o coletor de registos para um servidor 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 for Cloud Apps 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 descarregada pode ser importada quer para o seu repositório privado, quer diretamente para a sua máquina anfitriã. 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, certifique-se de que os seguintes pré-requisitos são cumpridos.

  1. Certifique-se de que tem o Docker instalado no seu anfitrião. Por exemplo, utilize uma das seguintes transferências:

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

    Inicia o fluxo de trabalho de transferência offline exportando a imagem do coletor de registos e depois importando a imagem para o teu host de destino.

Exportar a imagem do recoletor de registos do Docker Hub

Para exportar a imagem do coletor de log, use Exportar a imagem no Linux ou Exportar a imagem no Windows, dependendo do seu sistema operativo.

Exportar a imagem no Linux

Use os passos seguintes para exportar a imagem do coletor de logs a partir de uma máquina 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 recoletor de registos. 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. Transfira a imagem do coletor de registos para o seu computador Windows em C:\mcasLogCollector\ utilizando 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 os passos seguintes para exportar a imagem do coletor de logs a partir de uma máquina Windows.

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

  2. Transfira a imagem do coletor de registos. Executar:

    docker login -u caslogcollector -p C0llector3nthusiast
    docker pull mcr.microsoft.com/mcas/logcollector
    
  3. Exportar a imagem do recoletor de registos. 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.

Importar e carregar a imagem do coletor de registos para o anfitrião de destino

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

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

    Captura de ecrã da janela de transferência do WinSCP mostrando o ficheiro de imagem do coletor de registos a ser carregado para o 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 ecrã da saída do comando docker load confirmando 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, pode proceder à criação do coletor de registos utilizando 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.

Quando adiciona uma origem de dados, os coletores de registos do Defender for Cloud Apps utilizam números de porta específicos para escutar os registos de tráfego provenientes de uma ou mais origens de dados.

A tabela seguinte apresenta as portas de escuta predefinidas dos recetores:

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 ecrã do assistente do coletor de registos a mostrar o comando run gerado disponível para copiar.

    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.

    Nota

    Apenas o mapeamento do Docker é modificado. As portas atribuídas internamente mantêm-se inalteradas, permitindo-lhe escolher qualquer porta de escuta no 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 for Cloud Apps e o que foi enviado pela aplicação.

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 ecrã da saída do tcpdump mostrando tráfego Syslog recebido de appliances na porta 514.

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

      1. Instale o netcat e o wget.

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

        1. No portal do Defender, em Aplicações na Nuvem selecione Deteção de aplicações na nuvem>Ações>Criar relatório de instantâneo da Deteção de aplicações na nuvem.

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

        3. Selecione Ver e verificar e, em seguida, clique com o botão direito do rato em Transferir registo de exemplo e copie a ligação do URL.

        4. Selecione Fechar>Cancelar.

      3. Executar:

        wget <URL_address_to_sample_log>
        
      4. Execute netcat para enviar os dados em fluxo para o coletor de registos.

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

      Se o coletor estiver corretamente configurado, os dados de registo estão presentes no ficheiro de mensagens e são carregados para o Defender for Cloud Apps pouco depois de serem escritos.

    • Inspecione os ficheiros relevantes no contentor do Defender for Cloud Apps Docker:

      1. Inicie sessão no contentor. 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.

      Nota

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

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

    Captura de ecrã dos ficheiros de registo carregados no diretório discoverylogsbackup mostrando as entradas Syslog recolhidas.

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

Escrever o resultado do ficheiro de mensagens num ficheiro local

Se pretender utilizar o seu próprio ficheiro de registo de exemplo, mas não tiver acesso ao dispositivo, pode capturar mensagens Syslog recebidas provenientes de uma porta específica da origem de dados para um ficheiro local, para fins de resolução de problemas.

Execute o seguinte comando para transmitir as mensagens Syslog do colecionador para uma dada porta de origem de dados para um ficheiro local no host, para validar a ingestão de logs ou resolver 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:

Passos seguintes

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