Implementación de un reenviador de registros para la ingesta de registros de Syslog y CEF en Microsoft Sentinel

Precaución

En este artículo se hace referencia a CentOS, una distribución de Linux que está cerca de su estado Final de ciclo vida (EOL). Tenga en cuenta su uso y planeación en consecuencia. Para más información, consulte la Guía de fin de ciclo de vida de CentOS.

Para ingerir registros de Syslog y CEF en Microsoft Sentinel, sobre todo desde aplicaciones y dispositivos en los que no se puede instalar el agente de Log Analytics directamente, debe designar y configurar una máquina Linux para que recopile los registros de los dispositivos y los reenvíe al área de trabajo de Microsoft Sentinel. Esta máquina puede ser una máquina física o virtual del entorno local, una máquina virtual de Azure o una máquina virtual en otra nube.

La máquina tiene dos componentes que participan en el proceso:

  • Un demonio de syslog (rsyslog o syslog-ng) que recopila los registros.
  • El agente de Log Analytics (también conocido como Agente de OMS), que reenvía los registros a Microsoft Sentinel.

Con el vínculo proporcionado a continuación, ejecutará un script en la máquina designada que realiza las tareas siguientes:

  • Instala el agente de Log Analytics para Linux (también denominado agente de OMS) y lo configura para los siguientes fines:

    • escucha de mensajes CEF desde el demonio de Syslog de Linux integrado en el puerto TCP 25226
    • envío de mensajes de forma segura a través de TLS a su área de trabajo de Microsoft Sentinel, donde se analizan y enriquecen
  • Configura el demonio de Syslog de Linux integrado (rsyslog.d/syslog-ng) para los siguientes fines:

    • escucha de mensajes de Syslog desde las soluciones de seguridad en el puerto TCP 514
    • reenvío de solo los mensajes que identifica como CEF al agente de Log Analytics en localhost mediante el puerto TCP 25226

Importante

El agente de Log Analytics se retirará el 31 de agosto de 2024. Si usa el agente de Log Analytics en la implementación de Microsoft Sentinel, le recomendamos que empiece a planear la migración al AMA. Para más información, vea Migración de AMA para Microsoft Sentinel.

Para obtener información sobre cómo implementar registros de Syslog o CEF con el agente de Azure Monitor, revise las opciones para los registros de streaming en el formato CEF y Syslog en Microsoft Sentinel.

Requisitos previos

Cada conector de datos tiene su propio conjunto de requisitos previos. Los requisitos previos pueden ser que debe tener permisos específicos en el área de trabajo, la suscripción o la directiva de Azure. O bien debe cumplir otros requisitos relativos al origen de datos del asociado al que se va a conectar.

Los requisitos previos para cada conector de datos se enumeran en la página correspondiente del conector de datos de Microsoft Sentinel.

Instale la solución de producto desde el centro de contenido en Microsoft Sentinel. Si el producto no aparece en la lista, instale la solución para el formato de evento común. Para más información, consulte Descubre y administra el contenido listo para usar de Microsoft Sentinel.

Importante

Las versiones del sistema operativo pueden tener diferentes fechas y ciclos de vida de soporte técnico. Se recomienda comprobar la documentación oficial de cada distribución para obtener el soporte técnico más preciso y actualizado y las fechas de fin de la vida útil.

La máquina debe cumplir los requisitos siguientes:

  • Hardware (físico/virtual)

    • La máquina Linux debe tener al menos cuatro núcleos de CPU y 8 GB de RAM.

      Nota

      • Una única máquina reenviadora de registros con la configuración de hardware anterior y que use el demonio rsyslog tiene una capacidad admitida de hasta 8500 eventos por segundo (EPS) recopilados.
  • Sistema operativo

    • CentOS 7 y 8 (no 6), incluidas las versiones secundarias (64/32 bits)
    • Amazon Linux 2 (solo 64 bits)
    • Oracle Linux 7, 8 (64 o 32 bits)
    • Red Hat Enterprise Linux (RHEL) Server 7 y 8 (no 6), incluidas las versiones secundarias (64/32 bits)
    • Debian GNU/Linux 8 y 9 (64/32 bits)
    • Ubuntu Linux 20.04 LTS (solo 64 bits)
    • SUSE Linux Enterprise Server 12, 15 (solo 64 bits)
  • Versiones de demonio

    • Rsyslog: v8
    • Syslog-ng: 2.1 - 3.22.1
  • Paquetes

    • Debe tener Python 2.7 o 3 instalado en la máquina Linux.
      Use el comando python --version o python3 --version para comprobarlo.
    • Debe tener el paquete GNU Wget.
  • Compatibilidad con RFC de Syslog

    • Syslog RFC 3164
    • RFC de Syslog 5424
  • Configuración

    • Debe tener permisos elevados (sudo) en la máquina Linux designada.
    • La máquina Linux no debe estar conectada a ninguna área de trabajo de Azure antes de instalar el agente de Log Analytics.
  • Data

    • En algún momento del proceso, es posible que necesite el identificador del área de trabajo y la clave principal del área de trabajo de Microsoft Sentinel. Puede encontrarlos en la configuración del área de trabajo, en Administración de agentes.

Consideraciones sobre la seguridad

Asegúrese de configurar la seguridad de la máquina de acuerdo con la directiva de seguridad de su organización. Por ejemplo, puede configurar la red para que se alinee con la directiva de seguridad de la red corporativa y cambiar los puertos y protocolos del demonio para que se adapten a sus requisitos. Puede usar las siguientes instrucciones para mejorar la configuración de seguridad de la máquina: Protección de máquinas virtuales en Azure y Procedimientos recomendados de seguridad de la red.

Si los dispositivos envían registros de Syslog y CEF sobre TLS (por ejemplo, porque el reenviador de registros está en la nube), deberá configurar el demonio de Syslog (rsyslog o syslog-ng) para que se comunique en TLS. Para obtener más detalles, consulte la documentación siguiente:

Ejecutar el script de implementación

  1. En Microsoft Sentinel, seleccione Conectores de datos.

  2. Seleccione el conector del producto en la galería de conectores. Si el producto no aparece en la lista, seleccione formato de evento común (CEF).

  3. En el panel de detalles del conector, seleccione Abrir página del conector.

  4. En la página del conector, en las instrucciones de la sección 1.2 Instalación del recopilador de CEF en la máquina Linux, copie el vínculo proporcionado en Run the following script to install and apply the CEF collector (Ejecutar el siguiente script para instalar y aplicar el recopilador de CEF).
    Si no tiene acceso a esa página, copie el vínculo del texto siguiente (debe copiar y pegar el identificador del área de trabajo y la clave principal de arriba en lugar de los marcadores de posición):

    sudo wget -O cef_installer.py https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/DataConnectors/CEF/cef_installer.py&&sudo python cef_installer.py [WorkspaceID] [Workspace Primary Key]
    
  5. Pegue el vínculo o el texto en la línea de comandos del reenviador de registros y ejecútelo.

  6. Mientras se ejecuta el script, asegúrese de que no recibe ningún mensaje de error o de advertencia.

    • Es posible que reciba un mensaje que le indique que debe ejecutar un comando para corregir un problema con la asignación del campo Equipo. Consulte la explicación en el script de implementación para obtener más detalles.
  7. Configure el dispositivo para enviar mensajes de CEF.

    Nota

    Uso de la misma máquina para reenviar Syslog sin formato y mensajes de CEF

    Si tiene previsto usar esta máquina de reenviador de registros para reenviar mensajes de Syslog, así como de CEF, haga lo siguiente para evitar la duplicación de eventos en las tablas Syslog y CommonSecurityLog:

    1. En cada máquina de origen que envíe registros al reenviador en formato CEF, debe editar el archivo de configuración de Syslog para quitar las funciones que se usan para enviar mensajes de CEF. De este modo, las instalaciones que se envían en CEF no se enviarán también en Syslog. Consulte Configuración de Syslog en agente de Linux para obtener instrucciones detalladas sobre cómo hacerlo.

    2. Debe ejecutar el siguiente comando en esas máquinas para deshabilitar la sincronización del agente con la configuración de Syslog en Microsoft Sentinel. Esto garantiza que el cambio de configuración que ha realizado en el paso anterior no se sobrescriba.
      sudo su omsagent -c 'python /opt/microsoft/omsconfig/Scripts/OMS_MetaConfigHelper.py --disable'

Explicación del script de implementación

A continuación, se presenta una descripción, comando por comando, de las acciones del script de implementación.

Elija un demonio de syslog para ver la descripción adecuada.

  1. Descarga e instalación del agente de Log Analytics:

    • Descarga el script de instalación para el agente de Linux de Log Analytics (OMS).

      wget -O onboard_agent.sh https://raw.githubusercontent.com/Microsoft/OMS-Agent-for-Linux/
          master/installer/scripts/onboard_agent.sh
      
    • Instala el agente de Log Analytics.

      sh onboard_agent.sh -w [workspaceID] -s [Primary Key] -d opinsights.azure.com
      
  2. Establecimiento de la configuración del agente de Log Analytics para escuchar en el puerto 25226 y reenviar mensajes de CEF a Microsoft Sentinel:

    • Descarga la configuración del repositorio GitHub del agente de Log Analytics.

      wget -O /etc/opt/microsoft/omsagent/[workspaceID]/conf/omsagent.d/security_events.conf
          https://raw.githubusercontent.com/microsoft/OMS-Agent-for-Linux/master/installer/conf/
          omsagent.d/security_events.conf
      
  3. Configuración del demonio de Syslog:

    • Abre el puerto 514 para la comunicación TCP mediante el archivo de configuración de syslog /etc/rsyslog.conf.

    • Configura el demonio para reenviar los mensajes de CEF al agente de Log Analytics en el puerto TCP 25226, insertando un archivo de configuración especial security-config-omsagent.conf en el directorio del demonio de syslog /etc/rsyslog.d/.

      Contenido del archivo security-config-omsagent.conf:

      if $rawmsg contains "CEF:" or $rawmsg contains "ASA-" then @@127.0.0.1:25226 
      
  4. Reinicio del demonio de Syslog y el agente de Log Analytics:

    • Reinicia el demonio de rsyslog.

      service rsyslog restart
      
    • Reinicia el agente de Log Analytics.

      /opt/microsoft/omsagent/bin/service_control restart [workspaceID]
      
  5. Comprobación de la asignación del campo Equipo según lo esperado:

    • Se asegura de que el campo Equipo del origen de syslog se ha asignado correctamente en el agente de Log Analytics, mediante el siguiente comando:

      grep -i "'Host' => record\['host'\]"  /opt/microsoft/omsagent/plugin/filter_syslog_security.rb
      
    • Si hay un problema con la asignación, el script generará un mensaje de error que le indicará que debe ejecutar manualmente el siguiente comando (debe agregar el id. del área de trabajo en lugar del marcador de posición). El comando garantizará que la asignación se realice correctamente y reiniciará el agente.

      sudo sed -i -e "/'Severity' => tags\[tags.size - 1\]/ a \ \t 'Host' => record['host']" -e "s/'Severity' => tags\[tags.size - 1\]/&,/" /opt/microsoft/omsagent/plugin/filter_syslog_security.rb && sudo /opt/microsoft/omsagent/bin/service_control restart [workspaceID]
      

Pasos siguientes

En este documento, ha aprendido a implementar el agente de Log Analytics para conectar dispositivos CEF a Microsoft Sentinel. Para más información sobre Microsoft Sentinel, consulte los siguientes artículos: