Instale e configure o encaminhador

Compatível com:

Este documento descreve como instalar e configurar o encaminhador do Google Security Operations em sistemas Linux e Windows através do Docker.

O encaminhador é um componente de software que pode instalar numa máquina ou num dispositivo, como um servidor, na sua rede. Recolhe dados de registo e encaminha esses dados para a sua instância do Google SecOps.

Pode usar o encaminhador para enviar registos diretamente do seu ambiente para o Google SecOps, sem precisar de contentores na nuvem nem APIs de terceiros para tipos de registos não suportados. O encaminhador funciona como uma solução pronta para implementação, eliminando a necessidade de integração manual com a API de carregamento.

O Google SecOps fornece um contentor Docker para a implementação segura do encaminhador. Pode executar e gerir o contentor Docker em máquinas físicas ou virtuais.

Requisitos de sistema

Seguem-se as recomendações gerais. Para recomendações específicas do seu sistema, contacte o apoio técnico do Google SecOps.

Sistema Linux

O encaminhador é suportado em várias distribuições Linux, como Debian, Ubuntu, Red Hat e Suse. Para um desempenho ideal, é necessário usar o Docker versão 20.10.21 ou posterior.

  • RAM: é necessário 1 GB de RAM para cada tipo de dados recolhidos que o Google SecOps aceita para carregamento. Por exemplo, se especificar quatro coletores diferentes, precisa de 4 GB de RAM para recolher dados para todos os quatro.

  • CPU: duas CPUs são suficientes para processar até 10 000 eventos por segundo (EPS) em todos os tipos de dados. Se prevê que o encaminhador processe mais de 10 000 EPS, atribua quatro a seis CPUs.

  • Disco: recomenda-se 20 GB de espaço em disco, independentemente da quantidade de dados que o encaminhador processa.

Sistema Windows

O encaminhador é suportado no Microsoft Windows Server 2022. Para um desempenho ideal, tem de usar a versão 20.10.21 ou posterior do Docker.

  • RAM: são necessários 1,5 GB de RAM para cada tipo de dados recolhidos que o Google SecOps aceita para carregamento. Por exemplo, se especificar quatro coletores diferentes, precisa de 6 GB de RAM para recolher dados para todos os quatro.

  • CPU: duas CPUs são suficientes para processar até 10 000 eventos por segundo (EPS) em todos os tipos de dados. Se prevê que o encaminhador processa mais de 10 000 EPS, atribua quatro a seis CPUs.

  • Disco: recomenda-se 20 GB de espaço em disco, independentemente da quantidade de dados que o encaminhador processa.

Antes de começar

Antes de iniciar a implementação do encaminhador, tenha em atenção o seguinte.

Google IP address ranges

Quando configurar o encaminhador, pode ter de ajustar as definições da firewall que envolvem a especificação de intervalos de endereços IP. Os intervalos de IP do domínio predefinidos usados pelas APIs e pelos serviços Google são atribuídos dinamicamente e mudam com frequência. Consulte o artigo Obtenha intervalos de endereços IP da Google para mais informações.

Valide a configuração da firewall

Se o contentor de encaminhamento for executado atrás de uma firewall ou de um proxy autenticado, conceda acesso de saída aos seguintes anfitriões:

Tipo de ligação Destino Porta
TCP malachiteingestion-pa.googleapis.com 443
TCP asia-northeast1-malachiteingestion-pa.googleapis.com 443
TCP asia-south1-malachiteingestion-pa.googleapis.com 443
TCP asia-southeast1-malachiteingestion-pa.googleapis.com 443
TCP australia-southeast1-malachiteingestion-pa.googleapis.com 443
TCP eu-chronicle.googleapis.com 443
TCP europe-malachiteingestion-pa.googleapis.com 443
TCP europe-west2-malachiteingestion-pa.googleapis.com 443
TCP europe-west3-malachiteingestion-pa.googleapis.com 443
TCP europe-west6-malachiteingestion-pa.googleapis.com 443
TCP europe-west9-malachiteingestion-pa.googleapis.com 443
TCP europe-west12-malachiteingestion-pa.googleapis.com 443
TCP me-central1-malachiteingestion-pa.googleapis.com 443
TCP me-central2-malachiteingestion-pa.googleapis.com 443
TCP me-west1-malachiteingestion-pa.googleapis.com 443
TCP northamerica-northeast2-malachiteingestion-pa.googleapis.com 443
TCP southamerica-east1-malachiteingestion-pa.googleapis.com 443
TCP accounts.google.com 443
TCP gcr.io 443
TCP cloud.google.com/artifact-registry 443
TCP oauth2.googleapis.com 443
TCP storage.googleapis.com 443

Planeie a implementação

Antes de começar a configurar o encaminhador, planeie a implementação. Isto ajuda a alinhar as origens de dados e os atributos de configuração com os objetivos de segurança, as capacidades da infraestrutura e os requisitos de escalabilidade.

Determine os dados a carregar

Identifique as origens de dados mais relevantes para o seu encaminhador nas seguintes opções:

  • Splunk: ideal se já usar o Splunk para a gestão de registos.

  • Syslog: versátil para registos de sistemas e aplicações de vários dispositivos.

  • Ficheiro: flexível para carregar qualquer ficheiro de registo.

  • Packet: oferece visibilidade profunda da rede através da captura de tráfego não processado.

  • Kafka: ideal para agregação de registos em tempo real e de grande volume de sistemas distribuídos.

  • WebProxy: ideal para estatísticas sobre o tráfego da Web e o comportamento do utilizador.

Limitação

Os feeds de dados têm um tamanho máximo de linha de registo de 4 MB.

Determine a configuração

Antes de instalar o encaminhador, determine os seguintes atributos principais para garantir uma implementação bem-sucedida.

Compressão de dados

A compressão de dados ou registos reduz o consumo de largura de banda da rede quando transfere registos para o Google SecOps. No entanto, pode provocar um aumento na utilização da CPU. O equilíbrio ideal entre a poupança de largura de banda e a utilização da CPU depende de vários fatores, como o tipo de registo, a compressibilidade dos dados, os recursos da CPU disponíveis e as restrições de largura de banda da rede.

Por exemplo, os registos baseados em texto são normalmente bem comprimidos e podem proporcionar uma poupança substancial de largura de banda com uma utilização baixa da CPU, enquanto os dados encriptados ou binários podem não ser comprimidos de forma eficiente e podem incorrer numa utilização mais elevada da CPU.

Por predefinição, a compressão de registos está desativada. Avalie a compensação com base no seu ambiente específico e na natureza dos dados de registo.

Buffer de disco

Recomendamos que ative o armazenamento em buffer do disco. O armazenamento em buffer do disco permite armazenar em buffer mensagens pendentes no disco em vez de na memória, protegendo contra a perda de dados em caso de falhas do encaminhador ou do anfitrião. No entanto, a ativação da colocação no buffer de disco pode afetar o desempenho.

Se o armazenamento em buffer no disco estiver desativado, o encaminhador atribui 1 GB de memória (RAM) a cada tipo de registo (por exemplo, por conetor). A memória máxima permitida para o armazenamento em buffer no disco é de 4 GB.

Filtros de expressões regulares

Os filtros de expressões regulares permitem-lhe filtrar registos fazendo corresponder padrões aos dados de registo não processados. Os filtros usam a sintaxe RE2. Os filtros têm de incluir uma expressão regular e, opcionalmente, definir um comportamento quando existe uma correspondência.

Etiquetas arbitrárias

As etiquetas são usadas para anexar metadados personalizados aos registos através de pares de chave-valor. Pode configurar etiquetas para um encaminhador completo ou num coletor específico do encaminhador. Se ambos estiverem presentes, as etiquetas ao nível do coletor substituem as etiquetas ao nível do encaminhador se as chaves se sobrepuserem.

Espaços de nomes

Pode usar etiquetas de espaço de nomes para identificar registos de segmentos de rede distintos e para resolver conflitos de endereços IP sobrepostos. Pode configurar uma etiqueta de espaço de nomes para um encaminhador inteiro ou num coletor específico do encaminhador. Se ambos estiverem presentes, o namespace ao nível do coletor substitui o namespace ao nível do encaminhador.

Tipo de registo

O Google SecOps suporta vários tipos de registos. Para ver uma lista abrangente, consulte o artigo Conjuntos de dados suportados.

Opções de balanceamento de carga e alta disponibilidade

O equilíbrio de carga só é suportado para o tipo de recolha syslog.

O encaminhador pode ser implementado em ambientes onde um equilibrador de carga da camada 4 está instalado entre a origem de dados e as instâncias do encaminhador. Isto permite-lhe distribuir a recolha de registos por vários encaminhadores, melhorando a fiabilidade através do redirecionamento de registos para um encaminhador diferente em caso de falha.

O encaminhador tem um servidor HTTP incorporado que responde às verificações de funcionamento dos balanceadores de carga e evita a perda de registos durante o arranque e o encerramento. Pode configurar as opções do servidor HTTP, de balanceamento de carga e de alta disponibilidade para especificar durações de tempo limite e códigos de estado para verificações de funcionamento. Esta configuração é compatível com implementações baseadas em contentores e equilibradores de carga.

Definição Descrição
Tempo limite gracioso O período durante o qual são aceites novas ligações depois de o encaminhador devolver um estado unready em resposta a uma verificação de estado. Este é também o tempo de espera entre a receção de um sinal para parar e o início real do encerramento do próprio servidor. Isto dá ao equilibrador de carga tempo para remover o encaminhador do conjunto.

Os valores válidos são expressos em segundos. Por exemplo, para especificar 10 segundos, escreva 10. Não são permitidos valores decimais.

Predefinição: 15 segundos
Intervalo de drenagem O tempo que o encaminhador aguarda que as ligações ativas se fechem por si próprias antes de serem fechadas pelo servidor. Por exemplo, para especificar 5 segundos, escreva 5. Não são permitidos valores decimais.

Predefinição: 10 segundos
Porta O número da porta que o servidor HTTP escuta para verificações de estado do balanceador de carga. O valor tem de estar entre 1024 e 65 535.

Predefinição: 8080
Endereço IP ou nome de anfitrião O endereço IP ou um nome de anfitrião que pode ser resolvido para um endereço IP, que o servidor deve ouvir.

Predefinição: 0.0.0.0 (o sistema local)
Tempo limite de leitura Usado para ajustar o servidor HTTP. Normalmente, não precisa de ser alterado a partir da predefinição. O tempo máximo permitido para ler o pedido completo, tanto o cabeçalho como o corpo. Pode definir o campo read timeout e o campo read header timeout.

Predefinição: 3 segundos
Limite de tempo de leitura do cabeçalho Usado para ajustar o servidor HTTP. Normalmente, não precisa de ser alterado a partir da predefinição. O tempo máximo permitido para ler os cabeçalhos dos pedidos. O prazo de leitura da ligação é reposto após a leitura do cabeçalho.

Predefinição: 3 segundos
Limite de tempo de escrita Usado para ajustar o servidor HTTP. Normalmente, não precisa de ser alterado a partir da predefinição. O tempo máximo permitido para enviar uma resposta. É reposto quando é lido um novo cabeçalho de pedido.

Predefinição: 3 segundos
Limite de tempo de inatividade Usado para ajustar o servidor HTTP. Normalmente, não precisa de ser alterado a partir da predefinição. O tempo máximo de espera pelo pedido seguinte quando as ligações inativas estão ativadas. Se o campo idle timeout estiver definido como zero, é usado o valor do campo read timeout. Se ambos forem zero, é usado o campo read header timeout .

Predefinição: 3 segundos
Código de estado disponível O código de estado devolvido pelo encaminhador quando é recebida uma verificação de atividade e o encaminhador está disponível. Os programadores e os orquestradores de contentores enviam frequentemente verificações de atividade.

Predefinição: 204
Código de estado pronto O código de estado que o encaminhador devolve quando está pronto para aceitar tráfego numa das seguintes situações:
  • É recebida uma verificação de prontidão de um programador de contentores ou de um orquestrador.
  • É recebida uma verificação de estado de um balanceador de carga.
Predefinição: 204
Código de estado não pronto O código de estado devolvido pelo encaminhador quando não está pronto para aceitar tráfego.

Predefinição: 503

Passo 1: defina a configuração do encaminhador

Cada encaminhador implementado requer um ficheiro de configuração do encaminhador. Um ficheiro de configuração do encaminhador especifica as definições para transferir os dados para a sua instância do Google SecOps. Recomendamos que gere um novo ficheiro de configuração para cada anfitrião para manter distinções claras entre os coletores associados a cada um.

Google Cloud personaliza estes ficheiros de configuração com metadados específicos para cada instância do encaminhador. Pode modificar estes ficheiros para corresponder aos seus requisitos específicos e incorporar detalhes sobre os tipos de registos que quer carregar.

Pode gerar um ficheiro de configuração do encaminhador através da IU, da API ou manualmente.

  • A IU oferece uma interface gráfica para configurar encaminhadores e é o método recomendado para criar uma configuração de encaminhador. Esta é a forma mais fácil de começar e não requer programação. Para transferir o ficheiro de configuração através da interface do utilizador do Google SecOps, consulte o artigo Faça a gestão das configurações do encaminhador através da IU do Google SecOps.

  • A API oferece uma forma programática de configurar encaminhadores. Para transferir a configuração do encaminhador de forma programática, consulte a API Forwarder Management.

  • Pode criar o ficheiro de configuração manualmente e adicionar-lhe as opções de configuração. Recomendamos que use o método da IU para gerar o ficheiro de configuração para garantir a precisão e minimizar potenciais erros. Para gerar o ficheiro manualmente, consulte o artigo Gerir manualmente o ficheiro de configuração do encaminhador.

Passo 2: instale o Docker

Esta secção descreve como instalar o Docker no seu sistema.

Autenticação do Docker com o registo de artefactos

Como parte da instalação do Docker, tem de autenticar o Docker. Pode autenticar o Docker através da interface de linhas de comando (CLI) do Google Cloud ou, se não conseguir instalar a CLI do Google Cloud (interface de linhas de comando), criando um novo JSON de conta de serviço na VM.

Método 1: use a interface de linhas de comando (CLI) do Google Cloud

Execute o seguinte comando para autenticar o Docker:

gcloud auth configure-docker gcr.io

Método 2: crie e transfira um novo JSON da conta de serviço na máquina virtual (VM).

Use este método se não conseguir instalar a CLI (interface de linhas de comando) do Google Cloud.

Execute o seguinte comando para autenticar o Docker:

cat key.json | docker login -u _json_key --password-stdin https://gcr.io

Para saber mais acerca de métodos adicionais de autenticação do Docker, consulte o artigo: : Configure a autenticação no Artifact Registry para o Docker

Sistema Linux

O Docker é de código aberto e toda a documentação necessária está disponível na comunidade Docker de código aberto. Para ver instruções sobre a instalação do Docker, consulte o artigo Instale o Docker Engine.

Para verificar se o Docker está instalado corretamente no seu sistema, execute o seguinte comando (requer privilégios elevados):

   docker ps
  

A resposta seguinte indica que o Docker foi instalado corretamente:

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

Sistema Windows

Inicie o Windows PowerShell com privilégios de administrador e verifique a conetividade de rede para Google Cloud seguindo estes passos:

  1. Clique em Iniciar.

  2. Escreva PowerShell e clique com o botão direito do rato em Windows PowerShell.

  3. Clique em Executar como administrador.

  4. Execute o seguinte comando:

    C:\> test-netconnection <host> -port <port>
    

    O resultado do comando indica que o estado TcpTestSucceeded é true.

    Exemplo:

    C:\> test-netconnection malachiteingestion-pa.googleapis.com -port 443
    ComputerName     :  malachiteingestion-pa.googleapis.com
    RemoteAddress    : 198.51.100.1
    RemotePort       : 443
    InterfaceAlias   : Ethernet
    SourceAddress    : 203.0.113.1
    TcpTestSucceeded : True
    

Para instalar o Docker, faça o seguinte no seu servidor Windows.

  1. Ative a funcionalidade de contentor do Microsoft Windows:

    Install-WindowsFeature containers -Restart
    
  2. Execute o seguinte comando no modo de administrador do PowerShell para instalar o Docker CE:

    Invoke-WebRequest -UseBasicParsing "https://raw.githubusercontent.com/microsoft/Windows-Containers/Main/helpful_tools/Install-DockerCE/install-docker-ce.ps1" -o install-docker-ce.ps1
    
    .\install-docker-ce.ps1
    
    
  3. Teste a interface de linhas de comando do Docker executando o comando docker ps, que devolve uma lista de contentores em execução. Se o Docker não estiver instalado corretamente, é apresentado um erro.

    Para mais informações, consulte o artigo Comece a usar: prepare o Windows para contentores.

    Para implementações empresariais, instale o Mirantis Container Runtime, também conhecido como Docker EE.

Passo 3: instale o encaminhador

Esta secção descreve como instalar o encaminhador através de um contentor Docker.

Passo 3a: mova os ficheiros de configuração para o diretório do encaminhador

O primeiro passo no processo de instalação do encaminhador envolve a colocação dos ficheiros de configuração necessários no diretório do encaminhador designado.

Sistema Linux

Siga estes passos para colocar os ficheiros de configuração no diretório do encaminhador:

  1. Estabeleça ligação ao anfitrião do encaminhador Linux através do terminal.

  2. Altere o diretório para o diretório principal que executa o contentor do Docker.

  3. Crie um diretório para armazenar os ficheiros de configuração do encaminhador.

      mkdir /opt/chronicle/'CONFIG'
    

    Pode substituir o nome do diretório, CONFIG, por qualquer nome à sua escolha. Certifique-se de que usa o mesmo nome do diretório ao executar o comando docker run.

  4. Altere o diretório.

      cd /opt/chronicle/config
    

  5. Após a transferência dos ficheiros, certifique-se de que os ficheiros de configuração se encontram no diretório /opt/chronicle/config.

      ls -l
    

Sistema Windows

Crie uma pasta C:\config e coloque os ficheiros de configuração na mesma. Pode substituir o nome da pasta, config, por qualquer nome à sua escolha. Certifique-se de que usa o mesmo nome de pasta ao executar o comando docker run.

Passo 3b: execute o encaminhador

Depois de colocar os ficheiros de configuração no diretório encaminhador designado, pode iniciar o encaminhador ou atualizar para a versão mais recente do contentor do Google SecOps.

Se estiver a atualizar o contentor, limpe todas as execuções anteriores do Docker executando os seguintes comandos.

      docker stop 'cfps'
    

      docker rm 'cfps'
    

No exemplo, o nome do contentor Docker é cfps.

Para iniciar o encaminhador pela primeira vez ou para atualizar para a versão mais recente do contentor do Google SecOps, faça o seguinte:

  1. Obtenha a imagem de Docker mais recente a partir de Google Cloud:

    Sistema Linux:

        docker pull gcr.io/chronicle-container/cf_production_stable
    

    Sistema Windows:

      docker pull gcr.io/chronicle-container/cf_production_stable_windows
    
  2. Inicie o encaminhador a partir do contentor do Docker:

    Sistema Linux:

      docker run \
      --detach \
      --name cfps \
      --restart=always \
      --log-opt max-size=100m \
      --log-opt max-file=10 \
      --net=host \
      -v /opt/chronicle/config:/opt/chronicle/external \
      -v /var/log/<parser-name>:/opt/chronicle/edr \
      gcr.io/chronicle-container/cf_production_stable
    

    Sistema Windows:

      docker run `
        --detach `
        --name cfps `
        --restart=always `
        --log-opt max-size=100m `
        --log-opt max-file=10 `
        -p 0.0.0.0:10515-10520:10515-10520/udp `
        -v C:\config\:C:/opt/chronicle/external `
        gcr.io/chronicle-container/cf_production_stable_windows
    

As opções --log-opt estão disponíveis desde o Docker 1.13. Estas opções limitam o tamanho dos ficheiros de registo do contentor e têm de ser usadas desde que a versão do Docker que usa as suporte.

Faça a gestão do transitário

As secções seguintes fornecem orientações sobre a gestão do encaminhador.

Veja os registos do encaminhador

  • Para ver os registos do encaminhador, execute o seguinte comando:

    docker logs cfps
    
  • Para ver o caminho do ficheiro no qual os registos estão armazenados, execute o seguinte comando:

    docker inspect --format='{{.LogPath}}' CONTAINER_NAME
    
  • Para ver os registos de execução em direto, execute o seguinte comando:

    docker logs cfps -f
    
  • Para armazenar os registos num ficheiro, execute o seguinte comando:

    docker logs cfps &> logs.txt
    

Desinstale o encaminhador

Os seguintes comandos do Docker ajudam a parar, desinstalar ou remover o encaminhador.

  • Para parar ou desinstalar o contentor de encaminhamento, execute o seguinte comando:

    docker stop cfps
    
  • Para remover o contentor de encaminhamento, execute o seguinte comando:

    docker rm cfps
    

Atualize o encaminhador

O encaminhador é composto por dois componentes, cada um com um processo de atualização da seguinte forma:

  • Pacote de encaminhamento: este componente é atualizado automaticamente, eliminando a necessidade de reiniciar.

  • Imagem do Docker do encaminhador: as atualizações a este componente são feitas manualmente. Tem de parar a instância de encaminhador atual e iniciar uma nova, conforme descrito no passo 3b.

Guias de carregamento de encaminhadores para conjuntos de dados específicos

Para saber como um conjunto de dados específico é carregado através de encaminhadores, consulte o seguinte:

Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais da Google SecOps.