Instala y configura el reenviador

Compatible con:

En este documento, se describe cómo instalar y configurar el reenviador de Google Security Operations en sistemas Linux y Windows con Docker.

El reenviador es un componente de software que puedes instalar en una máquina o un dispositivo, como un servidor, dentro de tu red. Recopila datos de registro y los reenvía a tu instancia de Google SecOps.

Puedes usar el reenviador para enviar registros directamente desde tu entorno a Google SecOps, sin necesidad de buckets de nube ni APIs de terceros para tipos de registros no admitidos. El reenviador funciona como una solución lista para implementarse, lo que elimina la necesidad de realizar una integración manual con la API de transferencia.

Google SecOps proporciona un contenedor de Docker para la implementación de un reenviador seguro. Puedes ejecutar y administrar el contenedor de Docker en máquinas físicas o virtuales.

Requisitos del sistema

Las siguientes son recomendaciones generales. Para obtener recomendaciones específicas para tu sistema, comunícate con el equipo de asistencia de SecOps de Google.

Sistema Linux

El reenviador es compatible con varias distribuciones de Linux, como Debian, Ubuntu, Red Hat y Suse. Para obtener un rendimiento óptimo, se requiere usar la versión 20.10.21 de Docker o una posterior.

  • RAM: Se requiere 1 GB de RAM para cada tipo de datos recopilado que Google SecOps acepta para la transferencia. Por ejemplo, si especificas cuatro recopiladores diferentes, necesitarás 4 GB de RAM para recopilar datos de los cuatro.

  • CPU: Dos CPUs son suficientes para controlar hasta 10,000 eventos por segundo (EPS) en todos los tipos de datos. Si prevés que tu reenviador manejará más de 10,000 EPS, asigna de cuatro a seis CPUs.

  • Disco: Se recomiendan 20 GB de espacio en el disco, independientemente de la cantidad de datos que controle el reenviador.

Sistema Windows

El reenviador es compatible con Microsoft Windows Server 2022. Para obtener un rendimiento óptimo, se requiere usar la versión 20.10.21 de Docker o una posterior.

  • RAM: Se requieren 1.5 GB de RAM para cada tipo de datos recopilado que Google SecOps acepta para la transferencia. Por ejemplo, si especificas cuatro recopiladores diferentes, necesitarás 6 GB de RAM para recopilar datos de los cuatro.

  • CPU: Dos CPUs son suficientes para controlar hasta 10,000 eventos por segundo (EPS) en todos los tipos de datos. Si prevés que tu reenviador manejará más de 10,000 EPS, asigna de cuatro a seis CPU.

  • Disco: Se recomiendan 20 GB de espacio en el disco, independientemente de la cantidad de datos que controle el reenviador.

Antes de comenzar

Antes de comenzar la implementación del reenvío, ten en cuenta lo siguiente.

Rangos de direcciones IP de Google

Cuando configures el reenviador, es posible que debas ajustar la configuración del firewall que implique especificar rangos de direcciones IP. Los rangos de IP de dominio predeterminados que usan las APIs y los servicios de Google se asignan de forma dinámica y cambian con frecuencia. Consulta Obtén rangos de direcciones IP de Google para obtener más información.

Verifica la configuración del firewall

Si tu contenedor de reenvío está detrás de firewalls o proxies autenticados, deberás abrir el acceso a los siguientes hosts:

Tipo de conexión Destino Puerto
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 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

Planifica tu implementación

Antes de comenzar a configurar el reenviador, planifica tu implementación. Esto te ayudará a alinear tus fuentes de datos y atributos de configuración con tus objetivos de seguridad, capacidades de infraestructura y requisitos de escalabilidad.

Determina los datos que se transferirán

Identifica las fuentes de datos más relevantes para tu remitente entre las siguientes opciones:

  • Splunk: Ideal si ya usas Splunk para la administración de registros.

  • Syslog: Es versátil para los registros del sistema y de la aplicación de varios dispositivos.

  • Archivo: Es flexible para transferir cualquier archivo de registro.

  • Paquete: Ofrece visibilidad de red profunda capturando tráfico sin procesar.

  • Kafka: Ideal para la agregación de registros de gran volumen y en tiempo real desde sistemas distribuidos.

  • WebProxy: Ideal para obtener estadísticas sobre el tráfico web y el comportamiento de los usuarios.

Limitación

Los feeds de datos tienen un tamaño máximo de línea de registro de 4 MB.

Determina la configuración

Antes de instalar el reenviador, determina los siguientes atributos clave para garantizar una implementación correcta.

Compresión de datos

La compresión de datos o registros reduce el consumo de ancho de banda de la red cuando se transfieren registros a Google SecOps. Sin embargo, podría aumentar el uso de la CPU. El equilibrio óptimo entre el ahorro de ancho de banda y el uso de la CPU depende de varios factores, como el tipo de registro, la comprimibilidad de los datos, los recursos de CPU disponibles y las restricciones de ancho de banda de la red.

Por ejemplo, los registros basados en texto suelen comprimirse bien y pueden proporcionar ahorros sustanciales de ancho de banda con un uso bajo de la CPU, mientras que los datos encriptados o binarios pueden no comprimirse de manera eficiente y pueden generar un mayor uso de la CPU.

De forma predeterminada, la compresión de registros está inhabilitada. Evalúa la compensación según tu entorno específico y la naturaleza de tus datos de registro.

Almacenamiento en búfer de disco

Se recomienda habilitar el almacenamiento en búfer del disco. El almacenamiento en búfer en el disco te permite almacenar en búfer los mensajes pendientes en el disco en lugar de la memoria, lo que protege contra la pérdida de datos en caso de fallas del reenviador o del host. Sin embargo, habilitar el almacenamiento en búfer en el disco puede afectar el rendimiento.

Si se inhabilita el almacenamiento en búfer en el disco, el reenviador asigna 1 GB de memoria (RAM) para cada tipo de registro (por ejemplo, por conector). La memoria máxima permitida para el almacenamiento en búfer del disco es de 4 GB.

Filtros de expresiones regulares

Los filtros de expresiones regulares te permiten filtrar registros haciendo coincidir patrones con los datos de registro sin procesar. Los filtros usan la sintaxis RE2. Los filtros deben incluir una expresión regular y, de forma opcional, definir un comportamiento cuando haya una coincidencia.

Etiquetas arbitrarias

Las etiquetas se usan para adjuntar metadatos personalizados a los registros con pares clave-valor. Puedes configurar etiquetas para un reenviador completo o dentro de un recopilador específico del reenviador. Si ambas están presentes, las etiquetas a nivel del recopilador anulan las etiquetas a nivel del reenviador si las claves se superponen.

Espacios de nombres

Puedes usar etiquetas de espacio de nombres para identificar registros de segmentos de red distintos y para resolver conflictos de direcciones IP superpuestas. Puedes configurar una etiqueta de espacio de nombres para un reenviador completo o dentro de un recopilador específico del reenviador. Si ambos están presentes, el espacio de nombres a nivel del recopilador anula el espacio de nombres a nivel del reenviador.

Tipo de registro

Google SecOps admite una variedad de tipos de registros. Para obtener una lista completa, consulta Conjuntos de datos compatibles.

Opciones de balanceo de cargas y alta disponibilidad

El balanceo de cargas solo es compatible con el tipo de recopilación de syslog.

El reenviador se puede implementar en entornos en los que se instala un balanceador de cargas de capa 4 entre la fuente de datos y las instancias del reenviador. Esto te permite distribuir la recopilación de registros en varios reenviadores, lo que mejora la confiabilidad, ya que redirecciona los registros a un reenviador diferente en caso de falla.

El reenviador tiene un servidor HTTP integrado que responde a las verificaciones de estado de los balanceadores de cargas y evita la pérdida de registros durante el inicio y el cierre. Puedes configurar el servidor HTTP, el balanceo de cargas y las opciones de alta disponibilidad para especificar las duraciones de tiempo de espera y los códigos de estado de las verificaciones de estado. Esta configuración es compatible con las implementaciones basadas en contenedores y los balanceadores de cargas.

Parámetro de configuración Descripción
Tiempo de espera de cierre ordenado Es la cantidad de tiempo durante la cual se aceptan conexiones nuevas después de que el reenviador muestra un estado unready en respuesta a una verificación de estado. Este también es el tiempo de espera entre recibir una señal para detenerse y comenzar a apagar el servidor. Esto le da tiempo al balanceador de cargas para quitar el reenviador del grupo.

Los valores válidos se expresan en segundos. Por ejemplo, para especificar 10 segundos, escribe 10.. No se permiten valores decimales.

Predeterminado: 15 segundos
Tiempo de espera del desvío Es la cantidad de tiempo que el reenviador espera a que las conexiones activas se cierren por sí solas antes de que el servidor las cierre. Por ejemplo, para especificar 5 segundos, escribe 5.. No se permiten valores decimales.

Valor predeterminado: 10 segundos
Puerto Es el número de puerto en el que el servidor HTTP escucha las verificaciones de estado del balanceador de cargas. El valor debe estar entre 1,024 y 65,535.

Predeterminado: 8080
Dirección IP o nombre de host La dirección IP o un nombre de host que se puede resolver en una dirección IP que el servidor debe escuchar.

Valor predeterminado: 0.0.0.0 (el sistema local)
Tiempo de espera de lectura Se usa para ajustar el servidor HTTP. Por lo general, no es necesario cambiar la configuración predeterminada. Es el tiempo máximo permitido para leer toda la solicitud, el encabezado y el cuerpo. Puedes configurar el campo tiempo de espera de lectura y el campo tiempo de espera del encabezado de lectura.

Predeterminado: 3 segundos
Tiempo de espera del encabezado de lectura Se usa para ajustar el servidor HTTP. Por lo general, no es necesario cambiar la configuración predeterminada. Es el tiempo máximo permitido para leer los encabezados de solicitud. El plazo de lectura de la conexión se restablece después de leer el encabezado.

Predeterminado: 3 segundos
Tiempo de espera de escritura Se usa para ajustar el servidor HTTP. Por lo general, no es necesario cambiar la configuración predeterminada. Es el tiempo máximo permitido para enviar una respuesta. Se restablece cuando se lee un nuevo encabezado de solicitud.

Predeterminado: 3 segundos
Tiempo de espera inactivo Se usa para ajustar el servidor HTTP. Por lo general, no es necesario cambiar la configuración predeterminada. Es el tiempo máximo que se espera para la siguiente solicitud cuando las conexiones inactivas están habilitadas. Si el campo tiempo de espera de inactividad se establece en cero, se usa el valor del campo tiempo de espera de lectura. Si ambos son cero, se usa el campo tiempo de espera del encabezado de lectura .

Valor predeterminado: 3 segundos
Código de estado disponible Es el código de estado que muestra el reenviador cuando se recibe una verificación de estado activo y el reenviador está disponible. Los programadores y orquestadores de contenedores suelen enviar verificaciones de estado activo.

Predeterminado: 204
Código de estado listo Es el código de estado que muestra el reenviador cuando está listo para aceptar tráfico en cualquiera de las siguientes situaciones:
  • Se recibe una verificación de preparación de un programador o orquestador de contenedores.
  • Se recibe una verificación de estado de un balanceador de cargas.
Predeterminado: 204
Código de estado de no listo Es el código de estado que muestra el reenviador cuando no está listo para aceptar tráfico.

Predeterminado: 503

Paso 1: Define la configuración del reenviador

Cada servidor de reenvío implementado requiere un archivo de configuración de reenvío. Un archivo de configuración de reenvío especifica la configuración para transferir los datos a tu instancia de Google SecOps. Te recomendamos que generes un archivo de configuración nuevo para cada host para mantener distinciones claras entre los recopiladores asociados con cada uno.

Google Cloud personaliza estos archivos de configuración con metadatos específicos para cada instancia de reenvío. Puedes modificar estos archivos para que coincidan con tus requisitos específicos e incorporar detalles sobre los tipos de registros que deseas transferir.

Puedes generar un archivo de configuración de reenvío a través de la IU, de la API o de forma manual.

  • La IU proporciona una interfaz gráfica para configurar los reenvíos y es el método recomendado para crear una configuración de reenvío. Esta es la forma más fácil de comenzar y no requiere ningún tipo de programación. Para descargar el archivo de configuración con la interfaz de usuario de Google SecOps, consulta Cómo administrar las configuraciones de reenvío a través de la IU de Google SecOps.

  • La API proporciona una forma programática de configurar los reenvíos. Para descargar la configuración del reenviador de forma programática, consulta la API de Forwarder Management.

  • Puedes crear el archivo de configuración de forma manual y agregarle las opciones de configuración. Recomendamos usar el método de la IU para generar el archivo de configuración y garantizar la precisión y minimizar los posibles errores. Para generar el archivo de forma manual, consulta Cómo administrar el archivo de configuración del reenviador de forma manual.

Paso 2: Instala Docker

En esta sección, se describe cómo instalar Docker en tu sistema.

Autenticación de Docker con el registro de artefactos

Como parte de la instalación de Docker, debes autenticarlo. Puedes autenticar el Docker con la interfaz de línea de comandos (CLI) de Google Cloud CLI o, si no puedes instalar Google Cloud CLI (interfaz de línea de comandos), crear un nuevo archivo JSON de cuenta de servicio en la VM.

Método uno: Usa la interfaz de línea de comandos (CLI) de Google Cloud CLI

Ejecuta el siguiente comando para autenticar Docker:

gcloud auth configure-docker gcr.io

Método dos: Crea y descarga un nuevo archivo JSON de cuenta de servicio en la máquina virtual (VM).

Usa este método si no puedes instalar Google Cloud CLI (interfaz de línea de comandos).

Ejecuta el siguiente comando para autenticar Docker:

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

Para obtener más información sobre métodos adicionales de autenticación de Docker, consulta Configura la autenticación en Artifact Registry para Docker.

Sistema Linux

Docker es de código abierto, y toda la documentación necesaria está disponible en la comunidad de Docker de código abierto. Para obtener instrucciones sobre la instalación de Docker, consulta Cómo instalar Docker Engine.

Para verificar si Docker está instalado correctamente en tu sistema, ejecuta el siguiente comando (requiere privilegios elevados):

   docker ps
  

La siguiente respuesta indica que Docker se instaló correctamente:

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

Sistema Windows

Inicia Windows PowerShell con privilegios de administrador y verifica la conectividad de red a Google Cloud siguiendo estos pasos:

  1. Haz clic en Iniciar.

  2. Escribe PowerShell y haz clic con el botón derecho en Windows PowerShell.

  3. Haz clic en Ejecutar como administrador.

  4. Ejecuta el siguiente comando:

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

    El resultado del comando indica que el estado de TcpTestSucceeded es true.

    Ejemplo:

    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 Docker, haz lo siguiente en tu servidor Windows.

  1. Habilita la función de contenedor de Microsoft Windows:

    Install-WindowsFeature containers -Restart
    
  2. Ejecuta el siguiente comando en el modo Administrador de PowerShell para instalar 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. Para probar la interfaz de línea de comandos de Docker, ejecuta el comando docker ps, que muestra una lista de los contenedores en ejecución. Si Docker no está instalado correctamente, se muestra un error.

    Para obtener más información, consulta Cómo comenzar: Prepara Windows para contenedores.

    Para implementaciones empresariales, instala Mirantis Container Runtime, también conocido como Docker EE.

Paso 3: Instala el reenviador

En esta sección, se describe cómo instalar el reenviador con un contenedor de Docker.

Paso 3a: Mueve los archivos de configuración al directorio del reenviador

El primer paso en el proceso de instalación del reenviador consiste en colocar los archivos de configuración necesarios en el directorio del reenviador designado.

Sistema Linux

Para colocar los archivos de configuración en el directorio del reenviador, sigue estos pasos:

  1. Conéctate al host de reenvío de Linux con la terminal.

  2. Cambia al directorio principal que ejecuta el contenedor de Docker.

  3. Crea un directorio para almacenar los archivos de configuración del reenviador.

      mkdir /opt/chronicle/'CONFIG'
    

    Puedes reemplazar el nombre del directorio, CONFIG, por cualquier nombre que elijas. Asegúrate de usar el mismo nombre de directorio cuando ejecutes el comando docker run.

  4. Cambia el directorio.

      cd /opt/chronicle/config
    

  5. Después de transferir los archivos, asegúrate de que los archivos de configuración se encuentren en el directorio /opt/chronicle/config.

      ls -l
    

Sistema Windows

Crea una carpeta C:\config y coloca los archivos de configuración en ella. Puedes reemplazar el nombre de la carpeta, config, por cualquier nombre que elijas. Asegúrate de usar el mismo nombre de carpeta cuando ejecutes el comando docker run.

Paso 3b: Ejecuta el reenviador

Después de que los archivos de configuración se coloquen en el directorio del reenviador designado, puedes iniciar el reenviador o actualizar a la versión más reciente del contenedor de Google SecOps.

Si actualizas el contenedor, ejecuta los siguientes comandos para limpiar las ejecuciones de Docker anteriores.

      docker stop 'cfps'
    

      docker rm 'cfps'
    

En el ejemplo, el nombre del contenedor de Docker es cfps.

Para iniciar el reenviador por primera vez o actualizar a la versión más reciente del contenedor de SecOps de Google, haz lo siguiente:

  1. Obtén la imagen de Docker más reciente 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. Inicia el reenviador desde el contenedor de 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
    

    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
    

Las opciones de --log-opt están disponibles desde Docker 1.13. Estas opciones limitan el tamaño de los archivos de registro del contenedor y se deben usar, siempre y cuando la versión de Docker que uses las admita.

Administra el reenviador

En las siguientes secciones, se proporciona orientación para administrar tu remitente.

Cómo ver los registros de reenvío

  • Para ver los registros del reenviador, ejecuta el siguiente comando:

    docker logs cfps
    
  • Para ver la ruta de acceso del archivo en el que se almacenan los registros, ejecuta el siguiente comando:

    docker inspect --format='{{.LogPath}}' CONTAINER_NAME
    
  • Para ver los registros en ejecución en vivo, ejecuta el siguiente comando:

    docker logs cfps -f
    
  • Para almacenar los registros en un archivo, ejecuta el siguiente comando:

    docker logs cfps &> logs.txt
    

Desinstala el servidor de reenvío

Los siguientes comandos de Docker te ayudan a detener, desinstalar o quitar el reenviador.

  • Para detener o desinstalar el contenedor de reenvío, ejecuta el siguiente comando:

    docker stop cfps
    
  • Para quitar el contenedor de reenvío, ejecuta el siguiente comando:

    docker rm cfps
    

Actualiza el reenviador

El reenviador consta de dos componentes, cada uno con un proceso de actualización de la siguiente manera:

  • Paquete de reenvío: Este componente se actualiza automáticamente, lo que elimina la necesidad de reiniciar.

  • Imagen de Docker del reenviador: Las actualizaciones de este componente se realizan de forma manual. Deberás detener la instancia de reenvío actual y comenzar una nueva, como se describe en el Paso 3b.

Guías de transferencia de datos de reenvío para conjuntos de datos específicos

Si deseas obtener información sobre cómo se transfiere un conjunto de datos en particular con reenvío, consulta lo siguiente:

¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.