Gerenciamento avançado de coletor de logs
Este artigo descreve como configurar as opções avançadas dos coletores de logs para descoberta na nuvem do Defender para Aplicativos de Nuvem.
A descoberta de nuvem do Defender para Aplicativos de Nuvem 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 você 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 do Cloud Discovery do Defender para Aplicativos de Nuvem.
Modificar a configuração de FTP do coletor de logs
Use as etapas nas seções a seguir para modificar a configuração do Docker do Cloud Discovery no Defender para Aplicativos de Nuvem.
Verificar a versão do coletor de logs
Para verificar a versão do coletor de logs atualmente instalado no seu sistema, conecte-se ao host do coletor de logs e execute:
cat /var/adallom/versions | grep columbus-
Alterar a senha FTP
O procedimento a seguir descreve como alterar a senha usada para acessar arquivos do coletor de logs.
Conecte-se ao host do coletor de logs e execute:
docker exec -it <collector name> pure-pw passwd <ftp user>
Insira a nova senha. Depois, insira-a de novo para confirmar.
Execute o seguinte comando para aplicar a alteração:
docker exec -it <collector name> pure-pw mkdb
Você poderá 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 do Cloud Discovery.
Abra um cliente de FTP e conecte-se ao host do coletor de logs.
Navegue até o diretório
ssl_update
e carregue os novos arquivos de certificado, incluindo os seguintes:Tipo de receptor Arquivos necessários FTP - pure-ftpd.pem: inclui os dados de chave e certificado syslog - ca.pem: o certificado da autoridade de certificação 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 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 arquivos são obrigatórios. Se algum dos arquivos estiver faltando, a atualização falhará.
Em uma janela 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:~#
Em uma janela terminal, execute:
docker exec <collector name> chmod -R 700 /etc/ssl/private/
Habilitar 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, isso pode acontecer porque o coletor de logs não confia na autoridade de certificação raiz do proxy e não consegue se conectar ao Microsoft Defender para Aplicativos de Nuvem para recuperar a configuração ou carregar os logs recebidos.
Os procedimentos a seguir descrevem como habilitar o coletor de logs atrás de um proxy.
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 para o coletor de logs. Para obter mais informações, confira Modificar a configuração de FTP do coletor de logs.
Configurar o coletor de logs por trás de um proxy
Verifique se seguiu as etapas necessárias para executar o Docker em um computador Windows ou Linux e baixou com êxito a imagem do Docker do Defender para Aplicativos de Nuvem no computador hospedado.
Saiba mais em Configurar upload de log automático para relatórios contínuos.
Validar a criação de 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
Você deverá ver algo semelhante à seguinte saída:
Copiar o Certificado de Autoridade de Certificação raiz do proxy para o contêiner
Na sua máquina virtual, copie o Certificado de Autoridade de Certificação para o contêiner do Defender para Aplicativos de Nuvem. No exemplo a seguir, o contêiner é denominado Ubuntu LogCollector e o Certificado de Autoridade de Certificação é denominado Proxy-CA.crt.
O comando a seguir copia o certificado para uma pasta no contêiner em execução. Execute o comando no host do Ubuntu:
docker cp Proxy-CA.crt Ubuntu-LogCollector:/var/adallom/ftp/discovery
Defina a configuração para trabalhar com o Certificado de Autoridade de Certificação
Vá para o contêiner. Execute o seguinte comando para abrir o bash no contêiner do coletor de logs:
docker exec -it Ubuntu-LogCollector /bin/bash
Em uma janela do bash dentro do contêiner, vá para a pasta
jre
do Java. 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
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, confira 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>
Verifique se o certificado foi importado corretamente para o repositório de chaves da AC. 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 Autoridade de Certificação importado do proxy é exibido.
Restringir endereços IP que enviam mensagens Syslog para o coletor de logs no Linux
Para proteger a imagem do Docker e garantir que apenas um endereço IP tenha permissão para enviar as mensagens Syslog ao coletor de logs, crie uma regra de tabela IP no computador host para permitir o tráfego de entrada e descartar o tráfego vindo de 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 ao computador host. Esta regra de tabela permite que o endereço IP ''1.2.3.4'' se conecte ao contêiner do coletor de logs pela porta TCP 601 e descarte 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 logs para ser executado com a nova configuração
O contêiner está pronto.
Execute o comando collector_config com o token da API que você usou durante a criação do coletor de logs: Por exemplo:
Ao executar o comando, especifique seu próprio token da API, como collector_config abcd1234abcd1234abcd1234abcd1234 ${CONSOLE} ${COLLECTOR}
Por exemplo:
O coletor de logs agora consegue se comunicar com o Defender para Aplicativos de Nuvem. Depois de enviar dados ao Defender para Aplicativos de Nuvem, o status do coletor de logs muda de Íntegro para Conectado. Por exemplo:
Observação
Se você precisar atualizar a configuração do coletor de logs, para adicionar ou remover uma fonte de dados, por exemplo, normalmente precisará 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 da API gerado no portal do Defender para Aplicativos de Nuvem.
Alterar a senha do Java KeyStore
Pare o servidor do Java KeyStore.
Abra um shell do bash dentro do contêiner e acesse a pasta appdata/conf.
Para alterar a senha do servidor do KeyStore, execute:
keytool -storepasswd -new newStorePassword -keystore server.keystore -storepass changeit
A senha padrão do servidor é
changeit
.Para alterar a senha do certificado, execute:
keytool -keypasswd -alias server -keypass changeit -new newKeyPassword -keystore server.keystore -storepass newStorePassword
O alias padrão do servidor é server.
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:
- Especifique a nova senha do Java KeyStore para o servidor:
server.keystore.password=newStorePassword
- Especifique a nova senha do certificado para o servidor:
server.key.password=newKeyPassword
- Especifique a nova senha do Java KeyStore para o servidor:
Inicie o servidor.
Mover o coletor de logs para uma partição de dados diferente no Linux
Muitas empresas têm a necessidade de mover os dados para uma partição separada. Este procedimento descreve como mover as imagens do coletor de logs do Docker do Defender para Aplicativos de Nuvem para uma partição de dados no host do Linux.
Este procedimento descreve como mover os dados para uma partição chamada armazenamento de dados e pressupõe que você já tenha montado a partição. Por exemplo:
Adicionar e configurar uma nova partição no host do Linux não está no escopo deste guia.
Para mover o coletor de logs para uma partição diferente:
Interrompa o serviço do Docker. Correr:
service docker stop
Mova os dados do coletor de logs para a nova partição. Correr:
mv /var/lib/docker /datastore/docker
Remova o antigo diretório de armazenamento do Docker (/var/lib/docker) e crie um link simbólico para o novo diretório (/datastore/docker). Correr:
rm -rf /var/lib/docker && ln -s /datastore/docker /var/lib/
Inicie o serviço do Docker. Correr:
service docker start
Opcionalmente, verifique o status do coletor de logs. Correr:
docker ps
Inspecionar o uso do disco do coletor de logs no Linux
Este procedimento descreve como analisar o uso e a localização do disco do coletor de logs.
Identifique o caminho para o diretório onde os dados do coletor de logs estão armazenados. Correr:
docker inspect <collector_name> | grep WorkDir
Por exemplo:
Obtenha o tamanho em disco do coletor de logs usando o caminho identificado sem o sufixo "/work". Correr:
du -sh /var/lib/docker/overlay2/<log_collector_id>/
Observação
Se você só precisa saber o tamanho em disco, poderá usar o seguinte comando:
docker ps -s
Mover o coletor de logs para um host acessível
Em ambientes regulamentados, o acesso aos Docker Hubs onde a imagem do coletor de logs está hospedada pode estar bloqueado. Isso impede que o Defender para Aplicativos de Nuvem importe os dados do coletor de logs e pode ser resolvido movendo a imagem do coletor de logs para um host acessível.
Este procedimento descreve como baixar a imagem do coletor de logs usando um computador que tenha acesso ao Docker Hub e importá-la ao host de destino.
A imagem baixada pode ser importada no repositório privado ou diretamente no host. Este procedimento descreve como baixar a imagem do coletor de logs no computador Windows e usar o WinSCP para mover o coletor de logs para o host de destino.
Pré-requisitos
Certifique-se de ter o Docker instalado no computador. Por exemplo, use um dos seguintes downloads:
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 logs e importe a imagem para o host de destino.
Exportar a imagem do coletor de logs usando o Docker Hub
Os procedimentos a seguir descrevem como exportar a imagem do coletor de logs usando o Linux ou o Windows.
Exportar a imagem no Linux
Em um computador Linux que tenha acesso ao Docker Hub, execute o comando a seguir para instalar o Docker e baixar a imagem do coletor de logs.
curl -o /tmp/MCASInstallDocker.sh https://adaprodconsole.blob.core.windows.net/public-files/MCASInstallDocker.sh && chmod +x /tmp/MCASInstallDocker.sh; /tmp/MCASInstallDocker.sh
Exporte a imagem do coletor de logs. Correr:
docker save --output /tmp/mcasLC.targ mcr.microsoft.com/mcas/logcollector chmod +r /tmp/mcasLC.tar
Importante
Certifique-se de usar o parâmetro de saída para gravar em um arquivo em vez de STDOUT.
Baixe a imagem do coletor de logs no seu computador Windows em
C:\mcasLogCollector\
usando o WinSCP. Por exemplo:
Exportar a imagem no Windows
Em um computador com o Windows 10 que tenha acesso ao Docker Hub, instale o Docker Desktop.
Baixe a imagem do coletor de logs. Correr:
docker login -u caslogcollector -p C0llector3nthusiast docker pull mcr.microsoft.com/mcas/logcollector
Exporte a imagem do coletor de logs. Correr:
docker save --output C:\mcasLogCollector\mcasLC.targ mcr.microsoft.com/mcas/logcollector
Importante
Certifique-se de usar o parâmetro de saída para gravar em um arquivo em vez de STDOUT.
Importar e carregar a imagem do coletor de logs para o host de destino
Este procedimento descreve como transferir a imagem exportada para o host de destino.
Carregue a imagem do coletor de logs no host de destino em
/tmp/
. Por exemplo:No host de destino, importe a imagem do coletor de logs para o repositório de imagens do Docker. Correr:
docker load --input /tmp/mcasLC.tar
Por exemplo:
Opcionalmente, verifique se a importação foi concluída com êxito. Correr:
docker image ls
Por exemplo:
Agora, você pode continuar criando seu coletor de logs usando a imagem do host de destino.
Definir portas personalizadas de receptores Syslog e FTP para coletores de logs no Linux
Algumas organizações exigem 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 da porta específicos para escutar logs de tráfego de uma ou mais fontes de dados.
A tabela a seguir lista as portas de escuta padrão dos receptores.
Tipo de receptor | Portos |
---|---|
syslog | * UDP/514 - UDP/51x * TCP/601 - TCP/60x |
FTP | * TCP/21 |
Use as etapas a seguir para definir portas personalizadas.
No portal do Microsoft Defender, selecione Configurações. Em seguida, escolha Aplicativos de Nuvem.
No Cloud Discovery, escolha Upload automático de logs. Em seguida, selecione a guia Coletores de logs.
Na guia Coletores de logs, adicione ou edite um coletor de logs e, após atualizar as fontes de dados, copie o comando de execução da caixa de diálogo. Por exemplo:
Se usado conforme fornecido, o comando fornecido pelo assistente configura o coletor de logs 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:
Antes de usar o comando no seu computador host, modifique o comando para usar suas portas personalizadas. Por exemplo, para configurar o coletor de logs 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:
Observação
Somente o mapeamento do Docker é modificado. As portas atribuídas internamente não são alteradas, permitindo que você escolha uma 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 exemplos a seguir.
- Os coletores de logs estão recebendo dados: valide se os coletores de logs estão recebendo mensagens Syslog dos 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 ajudar a solucionar erros de análise comparando o formato de log esperado pelo Defender para Aplicativos de Nuvem e o formato enviado pelo seu dispositivo.
Use as etapas a seguir para verificar se o tráfego é recebido pelos coletores de logs.
Inicie a sessão no servidor que hospeda o contêiner do Docker.
Valide se o coletor de logs está recebendo mensagens Syslog usando um dos métodos a seguir.
Use tcpdump 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 nos seus dispositivos. Por exemplo:
Use netcat ou um comando semelhante para analisar o tráfego de rede no computador host:
Instale netcat e wget.
Baixe um arquivo de registro como exemplo do Microsoft Defender XDR. Se necessário, descompacte o arquivo de registro.
No Microsoft Defender XDR, em Aplicativos de Nuvem, selecione Cloud Discovery>Ações>Criar relatório de instantâneos do Cloud Discovery.
Selecione a Fonte de dados da qual você deseja carregar os arquivos de log.
Selecione Exibir e verificar, clique com o botão direito do mouse em Baixar exemplo de log e copie o link do endereço URL.
Selecione Fechar>Cancelar.
Correr:
wget <URL_address_to_sample_log>
Execute
netcat
para transmitir os dados ao coletor de logs.cat <path_to_downloaded_sample_log>.log | nc -w 0 localhost <datasource_port>
Se o coletor estiver configurado corretamente, os dados de logs estarão presentes no arquivo de mensagens e, logo depois, serão carregados no portal do Defender para Aplicativos de Nuvem.
Inspecione arquivos relevantes no contêiner do Docker do Defender para Aplicativos de Nuvem:
Inicie a sessão no contêiner. Correr:
docker exec -it <Container Name> bash
Determine se as mensagens Syslog estão sendo gravadas no arquivo de mensagens. Correr:
cat /var/adallom/syslog/<your_log_collector_port>/messages
Se tudo estiver configurado corretamente, você verá o tráfego de rede nos seus dispositivos. Por exemplo:
Observação
Esse arquivo continuará sendo gravado até atingir 40 KB de tamanho. Por exemplo:
Analise os logs carregados no Defender para Aplicativos de Nuvem, no diretório
/var/adallom/discoverylogsbackup
. Por exemplo:Valide o formato de log recebido pelo coletor de logs comparando as mensagens armazenadas em
/var/adallom/discoverylogsbackup
com o exemplo do formato de log fornecido no assistente Criar coletor de logs do Defender para Aplicativos de Nuvem.
Gravar a saída do arquivo de mensagens em um arquivo local
Se quiser usar seu próprio exemplo de log, 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 diretório /var/adallom/discoverylogsbackup
.
Atualize a versão do coletor de log
Ao atualizar seu coletor de log:
- Antes de instalar a nova versão, interrompa o coletor de log e remover a imagem atual.
- Depois de instalar a nova versão, atualize os arquivos de certificado.
Próximas etapas
Se encontrar algum problema, estamos aqui para ajudar. Para obter ajuda ou suporte para o problema do seu produto, abra um tíquete de suporte.