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:
Conecte-se ao host do coletor de log e execute:
docker exec -it <collector name> pure-pw passwd <ftp user>
Introduza a sua nova palavra-passe e, em seguida, introduza-a novamente para confirmar.
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.
Abra um cliente FTP e conecte-se ao host do coletor de log.
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á.
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:~#
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:
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
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
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
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>
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:
Ao executar o comando, especifique seu próprio token de API, como collector_config abcd1234abcd1234abcd1234abcd1234 ${CONSOLE} ${COLLECTOR}
Por exemplo:
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:
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
Pare o servidor Java KeyStore.
Abra um shell bash dentro do contêiner e vá para a pasta appdata/conf .
Para alterar a senha KeyStore do servidor, 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 de servidor padrão é 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 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:
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:
Pare o serviço Docker. Executar:
service docker stop
Mova os dados do coletor de log para a nova partição. Executar:
mv /var/lib/docker /datastore/docker
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/
Inicie o serviço Docker. Executar:
service docker start
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.
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:
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>/
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
Certifique-se de que tem o Docker instalado no seu anfitrião. 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 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
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
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.
Transfira a imagem do coletor de registos para o computador Windows em
C:\mcasLogCollector\
utilizar o WinSCP. Por exemplo:
Exportar a imagem no Windows
Em um computador com Windows 10 que tenha acesso ao Docker Hub, instale o Docker Desktop.
Faça o download da imagem do coletor de logs. Executar:
docker login -u caslogcollector -p C0llector3nthusiast docker pull mcr.microsoft.com/mcas/logcollector
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.
Carregue a imagem do coletor de logs para o 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. Executar:
docker load --input /tmp/mcasLC.tar
Por exemplo:
Opcionalmente, verifique se a importação foi concluída com êxito. Executar:
docker image ls
Por exemplo:
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:
No Portal do Microsoft Defender, selecione Configurações. Em seguida, escolha Cloud Apps.
Em Cloud Discovery, selecione Carregamento automático de registos. Em seguida, selecione a guia Coletores de log.
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:
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:
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:
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:
Faça login no servidor que hospeda o contêiner do Docker.
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:
Use o netcat ou um comando semelhante para analisar o tráfego de rede na máquina host:
Instale o netcat e o wget.
Baixe um arquivo de log de exemplo do Microsoft Defender XDR. Se necessário, descompacte o arquivo de log.
No Microsoft Defender XDR, em Cloud Apps, selecione Cloud Discovery>Actions>Create Cloud Discovery snapshot report.
Selecione a Origem de dados a partir da qual quer carregar os ficheiros de registo.
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.
Selecione Fechar>Cancelar.
Executar:
wget <URL_address_to_sample_log>
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:
Inicie sessão no contentor. Executar:
docker exec -it <Container Name> bash
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:
Nota
Este ficheiro continuará a ser gravado até atingir 40 KB de tamanho. Por exemplo:
Revise os logs que foram carregados para o
/var/adallom/discoverylogsbackup
Defender for Cloud Apps no diretório. Por exemplo: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.