Instalar e configurar o encaminhador
Neste documento, descrevemos como instalar e configurar o encaminhador do Google Security Operations em sistemas Linux e Windows usando o Docker.
O encaminhador é um componente de software que pode ser instalado em uma máquina ou dispositivo, como um servidor, na sua rede. Ele coleta dados de registro e os encaminha para sua instância do Google SecOps.
É possível usar o encaminhador para enviar registros diretamente do seu ambiente para o Google SecOps, sem a necessidade de buckets de nuvem ou APIs de terceiros para tipos de registro não compatíveis. O encaminhador serve como uma solução pronta para implantação, eliminando a necessidade de integração manual com a API de ingestão.
O Google SecOps fornece um contêiner do Docker para implantação segura de encaminhadores. É possível executar e gerenciar o contêiner do Docker em máquinas físicas ou virtuais.
Requisitos do sistema
Confira a seguir as recomendações gerais. Para recomendações específicas para seu sistema, entre em contato com o suporte do Google SecOps.
Sistema Linux
O encaminhador é compatível com várias distribuições do Linux, como Debian, Ubuntu, Red Hat e Suse. Para um desempenho ideal, é necessário usar o Docker
versão 20.10.21 ou mais recente.
RAM: é necessário 1 GB de RAM para cada tipo de dados coletados que o Google SecOps aceita para ingestão. Por exemplo, se você especificar quatro coletores diferentes, vai precisar de 4 GB de RAM para coletar dados de todos eles.
CPU: duas CPUs são suficientes para processar até 10.000 eventos por segundo (EPS) em todos os tipos de dados. Se você prevê que o encaminhador vai processar mais de 10.000 EPS, aloque de quatro a seis CPUs.
Disco: recomendamos 20 GB de espaço em disco, independentemente da quantidade de dados que o encaminhador processa.
Sistema Windows
O encaminhador é compatível com o Microsoft Windows Server 2022. Para um desempenho ideal,
é necessário usar a versão 20.10.21 ou mais recente do Docker.
RAM: 1,5 GB de RAM é necessário para cada tipo de dado coletado que o Google SecOps aceita para ingestão. Por exemplo, se você especificar quatro coletores diferentes, precisará de 6 GB de RAM para coletar dados de 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 você prevê que o encaminhador vai processar mais de 10.000 EPS, aloque de quatro a seis CPUs.
Disco: recomendamos 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, considere o seguinte.
Intervalos de endereços IP do Google
Ao configurar o encaminhador, talvez seja necessário ajustar as configurações de firewall que envolvem a especificação de intervalos de endereços IP. Os intervalos de IP de domínio padrão usados pelas APIs e pelos serviços do Google são alocados dinamicamente e mudam com frequência. Consulte Acessar intervalos de endereços IP do Google para mais informações.
Verificar a configuração do firewall
Se o contêiner do encaminhador for executado atrás de um firewall ou proxy autenticado, conceda acesso de saída aos seguintes hosts:
| Tipo de conexã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 | www.googleapis.com |
443 |
| TCP | storage.googleapis.com |
443 |
Planejar a implementação
Antes de começar a configurar o encaminhador, planeje sua implementação. Isso vai ajudar você a alinhar suas fontes de dados e atributos de configuração com seus objetivos de segurança, recursos de infraestrutura e requisitos de escalonabilidade.
Determinar os dados a serem ingeridos
Identifique as fontes de dados mais relevantes para seu encaminhador entre as seguintes opções:
Splunk: ideal se você já usa o Splunk para gerenciamento de registros.
Syslog: versátil para registros de sistemas e aplicativos de vários dispositivos.
Arquivo: flexível para ingerir qualquer arquivo de registro.
Pacote: oferece visibilidade detalhada da rede ao capturar o tráfego bruto.
Kafka: ideal para agregação de registros em tempo real e de alto volume de sistemas distribuídos.
WebProxy: ideal para insights sobre o tráfego da Web e o comportamento do usuário.
Limitação
Os feeds de dados têm um tamanho máximo de linha de registro de 4 MB.
Determinar a configuração
Antes de instalar o encaminhador, determine os seguintes atributos principais para garantir uma implementação bem-sucedida.
Compactação de dados
A compactação de dados ou registros reduz o consumo de largura de banda da rede ao transferir registros para o Google SecOps. No entanto, isso pode aumentar o uso da CPU. O equilíbrio ideal entre a economia de largura de banda e o uso da CPU depende de vários fatores, como o tipo de registro, a compactação dos dados, os recursos de CPU disponíveis e as restrições de largura de banda da rede.
Por exemplo, os registros baseados em texto geralmente são bem compactados e podem proporcionar uma economia substancial de largura de banda com baixo uso de CPU, enquanto os dados criptografados ou binários podem não ser compactados de maneira eficiente e podem incorrer em um uso maior de CPU.
Por padrão, a compactação de registros está desativada. Avalie as vantagens e desvantagens com base no seu ambiente específico e na natureza dos dados de registro.
Buffer de disco
Recomendamos ativar o armazenamento em buffer de disco. O buffer de disco permite armazenar mensagens atrasadas no disco em vez de na memória, protegendo contra perda de dados em caso de falhas no encaminhador ou no host. No entanto, a ativação do armazenamento em buffer de disco pode afetar o desempenho.
Se o armazenamento em buffer de disco estiver desativado, o encaminhador vai alocar 1 GB de memória (RAM) para cada tipo de registro (por exemplo, por conector). A memória máxima permitida para o armazenamento em buffer de disco é de 4 GB.
Filtros de expressão regular
Os filtros de expressão regular permitem avaliar padrões em dados de registro brutos usando a sintaxe RE2. Cada filtro precisa incluir uma expressão regular e pode definir o comportamento quando uma correspondência ocorre.
Rótulos arbitrários
Os rótulos são usados para anexar metadados personalizados aos registros usando pares de chave-valor. É possível configurar rótulos para um encaminhador inteiro ou em um coletor específico do encaminhador. Se ambos estiverem presentes, os rótulos no nível do coletor vão substituir os rótulos no nível do encaminhador se as chaves se sobrepuserem.
Namespaces
É possível usar rótulos de namespace para identificar registros de segmentos de rede diferentes e evitar conflitos de endereços IP sobrepostos. É possível configurar um rótulo de namespace para um encaminhador inteiro ou em um coletor específico do encaminhador. Se ambos estiverem presentes, o namespace no nível do coletor vai substituir o namespace no nível do encaminhador.
Tipo de registro
O Google SecOps é compatível com vários tipos de registro. Para uma lista completa, consulte Conjuntos de dados compatíveis.
Opções de balanceamento de carga e alta disponibilidade
O balanceamento de carga é compatível apenas com o tipo de coleta syslog.
O encaminhador pode ser implantado em ambientes em que um balanceador de carga de camada 4 está instalado entre a fonte de dados e as instâncias do encaminhador. Isso permite distribuir a coleta de registros entre vários encaminhadores, aumentando a confiabilidade ao redirecionar registros para um encaminhador diferente em caso de falha.
O encaminhador tem um servidor HTTP integrado que responde às verificações de integridade dos balanceadores de carga e evita a perda de registros durante a inicialização e o encerramento. É possível configurar as opções de servidor HTTP, balanceamento de carga e alta disponibilidade para especificar durações de tempo limite e códigos de status para verificações de integridade. Essa configuração é compatível com implantações baseadas em contêiner e balanceadores de carga.
| Configuração | Descrição |
|---|---|
| Tempo limite de encerramento | O período em que novas conexões são aceitas depois que o encaminhador retorna um status unready em resposta a uma verificação de integridade.
Esse também é o tempo de espera entre o recebimento de um sinal para parar e o início real do desligamento do servidor. Isso dá ao balanceador de carga tempo para remover o encaminhador do pool.Os valores válidos são em segundos. Por exemplo, para especificar 10 segundos, digite 10..
Valores decimais não são permitidos.Padrão:15 segundos |
| Tempo limite de drenagem | O tempo que o encaminhador aguarda para que as conexões ativas sejam fechadas por conta própria antes de serem fechadas pelo servidor. Por exemplo, para especificar 5 segundos, digite 5..
Valores decimais não são permitidos.Padrão:10 segundos |
| Porta | O número da porta que o servidor HTTP detecta para verificações de integridade
do balanceador de carga. O valor precisa estar entre 1.024 e 65.535. Padrão : 8080 |
| Endereço IP ou nome do host | O endereço IP ou um nome de host que pode ser resolvido para um endereço IP,
que o servidor precisa detectar. Padrão:0.0.0.0 (o sistema local) |
| Tempo limite de leitura | Usado para ajustar o servidor HTTP. Normalmente, não é necessário mudar a configuração padrão. O tempo máximo permitido para ler
toda a solicitação, tanto o cabeçalho quanto o corpo. É possível definir os campos tempo limite de leitura e tempo limite de leitura do cabeçalho. Padrão:3 segundos |
| Tempo limite de leitura do cabeçalho | Usado para ajustar o servidor HTTP. Normalmente, não é necessário mudar a configuração padrão. O tempo máximo permitido para ler
os cabeçalhos da solicitação. O prazo de leitura da conexão é redefinido após
a leitura do cabeçalho. Padrão:3 segundos |
| Tempo limite de gravação | Usado para ajustar o servidor HTTP. Normalmente, não é necessário mudar a configuração padrão. O tempo máximo permitido para enviar
uma resposta. Ele é redefinido quando um novo cabeçalho de solicitação é lido. Padrão:3 segundos |
| Tempo limite de inatividade | Usado para ajustar o servidor HTTP. Normalmente, não é necessário mudar a configuração padrão. O tempo máximo de espera pela próxima solicitação quando as conexões ociosas estão ativadas. Se o campo tempo limite de inatividade estiver definido como zero, o valor do campo tempo limite de leitura será usado. Se ambos forem zero, o campo tempo limite do cabeçalho de leitura será usado. Padrão:3 segundos |
| Código de status disponível | O código de status que o encaminhador retorna quando uma verificação de atividade é
recebida e o encaminhador está disponível. Os programadores e orquestradores de contêineres costumam enviar verificações de atividade. Padrão:204 |
| Código de status "Pronto" | O código de status que o encaminhador retorna quando está pronto para aceitar
tráfego em uma das seguintes situações:
|
| Código de status não pronto | O código de status que o encaminhador retorna quando não está pronto para aceitar
tráfego. Padrão:503 |
Etapa 1: definir a configuração do encaminhador
Cada encaminhador implantado requer um arquivo de configuração. Um arquivo de configuração do encaminhador especifica as configurações para transferir os dados para sua instância do Google SecOps. Recomendamos que você gere um novo arquivo de configuração para cada host para manter distinções claras entre os coletores associados a cada um.
OGoogle Cloud personaliza esses arquivos de configuração com metadados específicos para cada instância de encaminhador. É possível modificar esses arquivos para atender aos seus requisitos específicos e incorporar detalhes sobre os tipos de registros que você quer ingerir.
É possível gerar um arquivo de configuração de encaminhador pela UI, pela API ou manualmente.
A interface do usuário fornece uma interface gráfica para configurar encaminhadores e é o método recomendado para criar uma configuração de encaminhador. Essa é a maneira mais fácil de começar e não requer nenhuma programação. Para fazer o download do arquivo de configuração usando a interface do usuário do Google SecOps, consulte Gerenciar configurações de encaminhador pela interface do Google SecOps.
A API oferece uma maneira programática de configurar encaminhadores. Para fazer o download da configuração do encaminhador de forma programática, consulte API Forwarder Management.
É possível criar o arquivo de configuração manualmente e adicionar as opções de configuração a ele. Recomendamos usar o método da UI para gerar o arquivo de configuração, garantindo a precisão e minimizando possíveis erros. Para gerar o arquivo manualmente, consulte Gerenciar o arquivo de configuração do encaminhador manualmente.
Etapa 2: instalar o Docker
Nesta seção, descrevemos como instalar o Docker no seu sistema.
Autenticação do Docker com o Artifact Registry
Como parte da instalação do Docker, é preciso autenticá-lo. É possível autenticar o Docker usando a interface de linha de comando (CLI) da Google Cloud CLI ou, se não for possível instalar a Google Cloud CLI, criando um novo JSON de conta de serviço na VM.
Método um: usar a interface de linha de comando (CLI) da CLI do Google Cloud
Execute o comando a seguir para autenticar o Docker:
gcloud auth configure-docker gcr.io
Método dois: criar e fazer download de um novo JSON de conta de serviço na máquina virtual (VM).
Use esse método se não for possível instalar a interface de linha de comando (Google Cloud CLI.
Execute o comando a seguir para autenticar o Docker:
cat key.json | docker login -u _json_key --password-stdin https://gcr.io
Para saber mais sobre outros métodos de autenticação do Docker, consulte: Configurar 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 de código aberto do Docker. Para instruções sobre a instalação do Docker, consulte Instalar o Docker Engine.
Para verificar se o Docker está instalado corretamente no sistema, execute o seguinte comando (requer privilégios elevados):
docker ps
A resposta a seguir 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 conectividade de rede com o Google Cloud seguindo estas etapas:
Clique em Iniciar.
Digite
PowerShelle clique com o botão direito do mouse em Windows PowerShell.Clique em Executar como administrador.
Execute este comando:
C:\> test-netconnection <host> -port <port>A resposta ao comando indica que o status de
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, siga estas etapas no servidor Windows.
Ative o recurso de contêiner do Microsoft Windows:
Install-WindowsFeature containers -RestartExecute 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.ps1Teste a interface de linha de comando do Docker executando o comando
docker ps, que retorna uma lista de contêineres em execução. Se o Docker não estiver instalado corretamente, um erro será exibido.Para mais informações, consulte Primeiros passos: preparar o Windows para contêineres.
Para implantações corporativas, instale o Mirantis Container Runtime, também conhecido como Docker EE.
Etapa 3: instalar o encaminhador
Nesta seção, descrevemos como instalar o encaminhador usando um contêiner do Docker.
Etapa 3a: mover os arquivos de configuração para o diretório do encaminhador
A primeira etapa do processo de instalação do encaminhador envolve colocar os arquivos de configuração necessários no diretório designado do encaminhador.
Sistema Linux
Coloque os arquivos de configuração no diretório do encaminhador seguindo estas etapas:
Conecte-se ao host do encaminhador do Linux usando o terminal.
Mude para o diretório inicial que executa o contêiner do Docker.
Crie um diretório para armazenar os arquivos de configuração do encaminhador.
mkdir /opt/chronicle/'CONFIG'
É possível substituir o nome do diretório,
CONFIG, por qualquer nome de sua escolha. Use o mesmo nome de diretório ao executar o comandodocker run.Mude o diretório.
cd /opt/chronicle/config
Depois que os arquivos forem transferidos, verifique se os arquivos de configuração estão localizados no diretório
/opt/chronicle/config.ls -l
Sistema Windows
Crie uma pasta C:\config e coloque os arquivos de configuração nela. É possível
substituir o nome da pasta, config, por qualquer nome de sua escolha. Use o mesmo nome de pasta ao executar o comando docker run.
Etapa 3b: executar o encaminhador
Depois que os arquivos de configuração forem colocados no diretório designado do encaminhador, você poderá iniciar o encaminhador ou fazer upgrade para a versão mais recente do contêiner do Google SecOps.
Se você estiver fazendo upgrade do contêiner, limpe as execuções anteriores do Docker executando os comandos a seguir.
docker stop 'cfps'
docker rm 'cfps'
No exemplo, o nome do contêiner do Docker é cfps.
Para iniciar o encaminhador pela primeira vez ou fazer upgrade para a versão mais recente do contêiner do Google SecOps, faça o seguinte:
Acesse a imagem Docker mais recente em Google Cloud:
Sistema Linux:
docker pull gcr.io/chronicle-container/cf_production_stableSistema Windows:
docker pull gcr.io/chronicle-container/cf_production_stable_windowsInicie o encaminhador no contêiner 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 \ gcr.io/chronicle-container/cf_production_stable(Opcional para o sistema Linux) Ao iniciar o encaminhador no contêiner do Docker, é possível ativar um subdiretório específico de
/var/log/.
Para montar um subdiretório específico, adicione a linha a seguir ao comando e substitua o marcador<parser-name>pelo nome do diretório no sistema host de onde os registros serão coletados:-v /var/log/<parser-name>:/opt/chronicle/edr \Sistema Linux (incluindo a opção de ativar um subdiretório específico):
`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. Essas opções limitam o tamanho dos arquivos de registro do contêiner e
precisam ser usadas desde que a versão do Docker que você usa seja compatível com elas.
Gerenciar o encaminhador
As seções a seguir fornecem orientações sobre como gerenciar o encaminhador.
Ver registros do encaminhador
Para ver os registros do encaminhador, execute o seguinte comando:
docker logs cfpsPara ver o caminho do arquivo em que os registros estão armazenados, execute o seguinte comando:
docker inspect --format='{{.LogPath}}' CONTAINER_NAMEPara ver os registros de execução em tempo real, execute o seguinte comando:
docker logs cfps -fPara armazenar os registros em um arquivo, execute o seguinte comando:
docker logs cfps &> logs.txt
Desinstalar o encaminhador
Os comandos do Docker a seguir ajudam a interromper, desinstalar ou remover o encaminhador.
Para interromper ou desinstalar o contêiner do encaminhador, execute o seguinte comando:
docker stop cfps
Para remover o contêiner do encaminhador, execute o seguinte comando:
docker rm cfps
Atualizar o encaminhador
O encaminhador consiste em dois componentes, cada um com um processo de atualização, conforme descrito abaixo:
Pacote de encaminhamento: esse componente é atualizado automaticamente, eliminando a necessidade de uma reinicialização.
Imagem Docker do encaminhador: as atualizações desse componente são feitas manualmente. Será necessário interromper a instância atual do encaminhador e iniciar uma nova, conforme descrito na Etapa 3b.
Guias de ingestão do encaminhador para conjuntos de dados específicos
Para saber como um conjunto de dados específico é ingerido usando encaminhadores, consulte o seguinte:
- Instalar o encaminhador de eventos do Carbon Black
- Coletar registros de firewall do Cisco ASA
- Coletar registros do sensor Corelight
- Coletar registros do Fluentd
- Coletar registros do sistema Unix e do auditd do Linux
- Coletar dados do Microsoft Windows AD
- Coletar dados de DHCP do Microsoft Windows
- Coletar dados de DNS do Microsoft Windows
- Coletar dados de eventos do Microsoft Windows
- Coletar dados do Sysmon do Microsoft Windows
- Coletar registros do osquery
- Coletar registros do OSSEC
- Coletar registros de firewall da Palo Alto Networks
- Coletar registros do CIM do Splunk
- Coletar registros do Zeek
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.