Instala y configura el servidor de reenvío
En este documento, se describe cómo instalar y configurar el reenvío 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 Cloud o APIs de terceros para tipos de registros no compatibles. El agente de reenvío funciona como una solución lista para implementar, 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 segura del reenviador. 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 Google SecOps.
Sistema Linux
El agente de reenvío 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 recopilados que Google SecOps acepta para la transferencia. Por ejemplo, si especificas cuatro recopiladores diferentes, necesitas 4 GB de RAM para recopilar datos de los cuatro.
CPU: Dos CPU son suficientes para controlar hasta 10,000 eventos por segundo (EPS) en todos los tipos de datos. Si prevés que tu reenviador controlará más de 10,000 EPS, asigna entre cuatro y seis CPU.
Disco: Se recomiendan 20 GB de espacio en el disco, sin importar la cantidad de datos que maneje 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 requiere 1.5 GB de RAM para cada tipo de datos recopilados que Google SecOps acepta para la transferencia. Por ejemplo, si especificas cuatro recopiladores diferentes, necesitas 6 GB de RAM para recopilar datos de los cuatro.
CPU: Dos CPU son suficientes para controlar hasta 10,000 eventos por segundo (EPS) en todos los tipos de datos. Si prevés que tu reenviador controlará más de 10,000 EPS, asigna entre cuatro y seis CPUs.
Disco: Se recomiendan 20 GB de espacio en el disco, sin importar la cantidad de datos que maneje el agente de reenvío.
Antes de comenzar
Antes de comenzar la implementación del agente de reenvío, ten en cuenta lo siguiente.
Rangos de direcciones IP de Google
Cuando configures el agente de reenvío, es posible que debas ajustar la configuración del firewall que implica 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 el contenedor de reenvío se ejecuta detrás de un firewall o un proxy autenticado, otorga acceso saliente 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 | 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 |
Planifica tu implementación
Antes de comenzar a configurar el agente de reenvío, 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 pertinentes para tu agente de reenvío entre las siguientes opciones:
Splunk: Es ideal si ya usas Splunk para la administración de registros.
Syslog: Versátil para registros de sistemas y aplicaciones de varios dispositivos.
Archivo: Es flexible para transferir cualquier archivo de registro.
Paquetes: Ofrece una visibilidad profunda de la red capturando el tráfico sin procesar.
Kafka: Es ideal para la agregación de registros de gran volumen y en tiempo real desde sistemas distribuidos.
WebProxy: Es 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 agente de reenvío, determina los siguientes atributos clave para garantizar una implementación exitosa.
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, puede aumentar el uso de CPU. El equilibrio óptimo entre el ahorro de ancho de banda y el uso de CPU depende de varios factores, como el tipo de registro, la compresibilidad 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 CPU, mientras que los datos encriptados o binarios podrían no comprimirse de manera eficiente y generar un mayor uso de CPU.
De forma predeterminada, la compresión de registros está inhabilitada. Evalúa la compensación en función de 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 de disco te permite almacenar mensajes pendientes en el disco, en lugar de la memoria, lo que protege contra la pérdida de datos en caso de que se produzcan fallas en el reenviador o en el host. Sin embargo, habilitar el almacenamiento en búfer del disco puede afectar el rendimiento.
Si el almacenamiento en búfer de disco está inhabilitado, el agente de reenvío 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 en disco es de 4 GB.
Filtros de expresiones regulares
Los filtros de expresiones regulares te permiten evaluar patrones con datos de registro sin procesar usando la sintaxis RE2. Cada filtro debe incluir una expresión regular y, de manera opcional, puede definir el comportamiento cuando se produce una coincidencia.
Etiquetas arbitrarias
Las etiquetas se usan para adjuntar metadatos personalizados a los registros con pares clave-valor. Puedes configurar etiquetas para un agente de reenvío completo o dentro de un recopilador específico del agente de reenvío. Si ambas están presentes, las etiquetas a nivel de recopilador anulan las etiquetas a nivel de 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 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 agente de reenvío.
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 se admite para el tipo de recopilación de syslog.
El agente de reenvío 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 agente de reenvío. Esto te permite distribuir la recopilación de registros entre varios reenviadores, lo que mejora la confiabilidad, ya que se redireccionan los registros a un reenviador diferente en caso de que se produzca una 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 los tiempos 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 que se aceptan conexiones nuevas después de que
el reenviador devuelve un estado unready en respuesta a una verificación de estado.
Este también es el tiempo que se debe esperar entre la recepción de una señal para detenerse y
el inicio real del cierre del 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.Valor 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 el parámetro de configuración predeterminado. Es el tiempo máximo permitido para leer
toda la solicitud, tanto el encabezado como el cuerpo. Puedes configurar el campo tiempo de espera de lectura y el campo tiempo de espera de lectura del encabezado. Valor predeterminado: 3 segundos |
| Tiempo de espera de lectura del encabezado | Se usa para ajustar el servidor HTTP. Por lo general, no es necesario cambiar el parámetro de configuración predeterminado. Es el tiempo máximo permitido para leer
los encabezados de la solicitud. La fecha límite de lectura de la conexión se restablece después de
leer el encabezado. Valor predeterminado: 3 segundos |
| Tiempo de espera de escritura | Se usa para ajustar el servidor HTTP. Por lo general, no es necesario cambiarlo
desde la configuración predeterminada. Es el tiempo máximo permitido para enviar
una respuesta. Se restablece cuando se lee un encabezado de solicitud nuevo. Valor predeterminado: 3 segundos |
| Tiempo de espera inactivo | Se usa para ajustar el servidor HTTP. Por lo general, no es necesario cambiar el parámetro de configuración predeterminado. Es el tiempo máximo de espera para la
próxima solicitud cuando se habilitan las conexiones inactivas. 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 de lectura del encabezado . Valor predeterminado: 3 segundos |
| Código de estado disponible | Es el código de estado que devuelve el reenviador cuando se recibe una verificación de actividad y el reenviador está disponible. Los programadores y organizadores de contenedores suelen enviar verificaciones de funcionamiento. Predeterminado: 204 |
| Código de estado Listo | Es el código de estado que devuelve el reenviador cuando está listo para aceptar
tráfico en cualquiera de las siguientes situaciones:
|
| Código de estado no listo | Es el código de estado que muestra el agente de reenvío cuando no está listo para aceptar
tráfico. Valor predeterminado: 503 |
Paso 1: Define la configuración del reenviador
Cada agente de reenvío implementado requiere un archivo de configuración. Un archivo de configuración del reenviador especifica los parámetros de 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 con el objetivo de 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 y, además, 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 reenviadores y es el método recomendado para crear una configuración de reenviador. Esta es la forma más sencilla 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 Administra las configuraciones de reenvío a través de la IU de Google SecOps.
La API proporciona una forma programática de configurar los agentes de reenvío. Para descargar la configuración del agente de reenvío de manera programática, consulta la API de administración de agentes de reenvío.
Puedes crear el archivo de configuración de forma manual y agregarle las opciones de configuración. Te recomendamos que uses el método de la IU para generar el archivo de configuración para garantizar la exactitud y minimizar los posibles errores. Para generar el archivo de forma manual, consulta Administra 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 Artifact Registry
Como parte de la instalación de Docker, debes autenticarlo. Puedes autenticar 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), creando un nuevo 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 JSON de cuenta de servicio nuevo 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 los 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 Instala 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:
Haz clic en Iniciar.
Escribe
PowerShelly haz clic con el botón derecho en Windows PowerShell.Haz clic en Ejecutar como administrador.
Ejecuta el comando siguiente:
C:\> test-netconnection <host> -port <port>El resultado del comando indica que el estado de
TcpTestSucceededestrue.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, sigue estos pasos en tu servidor de Windows.
Habilita la función de contenedor de Microsoft Windows:
Install-WindowsFeature containers -RestartEjecuta el siguiente comando en el modo de 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.ps1Prueba la interfaz de línea de comandos de Docker ejecutando el comando
docker ps, que devuelve una lista de los contenedores en ejecución. Si Docker no está instalado correctamente, se mostrará un error.Para obtener más información, consulta Comienza: Prepara Windows para contenedores.
Para las implementaciones empresariales, instala Mirantis Container Runtime, también conocido como Docker EE.
Paso 3: Instala el servidor de reenvío
En esta sección, se describe cómo instalar el agente de reenvío con un contenedor de Docker.
Paso 3a: Mueve los archivos de configuración al directorio del agente de reenvío
El primer paso del proceso de instalación del agente de reenvío implica colocar los archivos de configuración necesarios en el directorio designado del agente de reenvío.
Sistema Linux
Sigue estos pasos para colocar los archivos de configuración en el directorio del agente de reenvío:
Conéctate al host del agente de reenvío de Linux con la terminal.
Cambia el directorio al directorio principal que ejecuta el contenedor de Docker.
Crea un directorio para almacenar los archivos de configuración del agente de reenvío.
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 comandodocker run.Cambia el directorio.
cd /opt/chronicle/config
Una vez que se transfieran 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 colocar los archivos de configuración en el directorio del agente de reenvío designado, puedes iniciar el agente de reenvío 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 agente de reenvío por primera vez o actualizar a la versión más reciente del contenedor de Google SecOps, haz lo siguiente:
Obtén la imagen de Docker más reciente de Google Cloud:
Sistema Linux:
docker pull gcr.io/chronicle-container/cf_production_stableSistema Windows:
docker pull gcr.io/chronicle-container/cf_production_stable_windowsInicia el agente de reenvío 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(Opcional para el sistema Linux) Cuando inicias el agente de reenvío desde el contenedor de Docker, tienes la opción de activar un subdirectorio específico desde
/var/log/.
Para activar un subdirectorio específico, agrega la siguiente línea al comando y reemplaza el marcador de posición<parser-name>por el nombre del directorio en el sistema host del que se deben recopilar los registros:-v /var/log/<parser-name>:/opt/chronicle/edr \Sistema Linux (incluida la opción de activar un subdirectorio 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
Las opciones --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 que la versión de Docker que uses las admita.
Administra el reenviador
En las siguientes secciones, se proporcionan instrucciones para administrar el agente de reenvío.
Visualiza los registros del agente de reenvío
Para ver los registros del agente de reenvío, ejecuta el siguiente comando:
docker logs cfpsPara ver la ruta de acceso del archivo en el que se almacenan los registros, ejecuta el siguiente comando:
docker inspect --format='{{.LogPath}}' CONTAINER_NAMEPara ver los registros de ejecución en vivo, ejecuta el siguiente comando:
docker logs cfps -fPara 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 agente de reenvío.
Para detener o desinstalar el contenedor del agente de reenvío, ejecuta el siguiente comando:
docker stop cfps
Para quitar el contenedor del servidor de reenvío, ejecuta el siguiente comando:
docker rm cfps
Actualiza el agente de reenvío
El reenviador consta de dos componentes, cada uno con un proceso de actualización, como se indica a continuación:
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, luego, iniciar una nueva, como se describe en el paso 3b.
Guías de transferencia de Forwarder para conjuntos de datos específicos
Para obtener información sobre cómo se transfiere un conjunto de datos en particular con reenviadores, consulta lo siguiente:
- Instala el agente de reenvío de eventos de Carbon Black
- Recopila registros de firewall de Cisco ASA
- Recopila registros de Corelight Sensor
- Recopila registros de Fluentd
- Recopila registros del sistema Unix y auditd de Linux
- Recopila datos de AD de Microsoft Windows
- Recopila datos de DHCP de Microsoft Windows
- Recopila datos de DNS de Microsoft Windows
- Recopila datos de eventos de Microsoft Windows
- Recopila datos de Sysmon de Microsoft Windows
- Recopila registros de osquery
- Recopila registros de OSSEC
- Recopila registros de firewall de Palo Alto Networks
- Recopila registros de CIM de Splunk
- Recopila registros de Zeek
¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.