Recopila registros de pfSense de Netgate
En este documento, se describe cómo puedes recopilar los registros de Netgate pfSense con un reenvío de Google Security Operations.
Para obtener más información, consulta Ingesta de datos en Google SecOps.
Una etiqueta de transferencia identifica el analizador que normaliza los datos de registro sin procesar al formato UDM estructurado. La información de este documento se aplica al analizador con la etiqueta de transferencia PFSENSE
.
Configura Netgate pfSense
- Accede a la interfaz de pfSense con credenciales de administrador.
- En la configuración de Registro global, haz lo siguiente:
- Selecciona Estado > Registros del sistema > Configuración.
- En la pestaña Configuración, selecciona Opciones de registro generales y haz lo siguiente:
- En el campo Log message format, selecciona syslog (RFC 5424, with RFC 3339 microsecond-precision timestamps).
- En el campo Registrar los bloqueos predeterminados del firewall, selecciona las siguientes casillas de verificación:
- Registra los paquetes que coinciden con las reglas de bloqueo predeterminadas en el conjunto de reglas
- Registra el paquete que coincide con las reglas de aprobación predeterminadas incluidas en el conjunto de reglas
- Registra los paquetes bloqueados por las reglas de "Bloquear redes bogon"
- Paquetes de registros bloqueados por las reglas de "Bloquear redes privadas"
- Para guardar la configuración nueva, haz clic en Guardar.
Envía los registros del firewall a Google SecOps
- En la configuración de Registro global, selecciona Estado > Registros del sistema > Configuración.
- En la pestaña Configuración, selecciona Opciones de registro remoto y haz lo siguiente:
- En el campo Habilitar el registro remoto, selecciona la casilla de verificación Enviar mensajes de registro al servidor syslog remoto.
- En el campo Dirección de origen, mantén el valor predeterminado como Cualquiera.
- En el campo Protocolo IP, si la dirección de origen está seleccionada como valor predeterminado, no es necesario que especifiques la dirección IP. De lo contrario, ingresa la dirección IP.
- En Servidores de registro remotos, especifica la dirección IP del retransmisor de Google SecOps.
- En Contenido de syslog remoto, selecciona la casilla de verificación Eventos de firewall.
- Para guardar los cambios, haz clic en Guardar.
Configura el reenvío de Google SecOps para que ingiera registros de Netgate pfSense
- Selecciona SIEM Settings > Forwarders.
- Haz clic en Agregar un nuevo reenvío.
- En el campo Nombre del reenviador, ingresa un nombre único para el reenviador.
- Haz clic en Enviar y, luego, en Confirmar. Se agregará el reenvío y aparecerá la ventana Add collector configuration.
- En el campo Nombre del recopilador, escribe un nombre único para el recopilador.
- Selecciona pfSense como el Tipo de registro.
- En el campo Tipo de recopilador, selecciona Syslog.
- Configura los siguientes parámetros de entrada obligatorios:
- Protocolo: Especifica el protocolo de conexión que usa el recopilador para escuchar los datos de Syslog.
- Dirección: Especifica la dirección IP o el nombre de host de destino en el que reside el recopilador y escucha los datos de syslog.
- Puerto: Especifica el puerto de destino en el que reside el recopilador y escucha los datos de syslog.
- Haz clic en Enviar.
Para obtener más información sobre los retransmisores de Google SecOps, consulta Administra la configuración de retransmisores a través de la IU de Google SecOps.
Si tienes problemas para crear reenvíos, comunícate con el equipo de asistencia de SecOps de Google.
Referencia de la asignación de campos
Este analizador de firewall de pfSense extrae campos de los mensajes de syslog con patrones de Grok y controla varios formatos de registro, incluidos los eventos de DHCP y de firewall. Luego, asigna estos campos extraídos al UDM, lo que enriquece los datos con información contextual, como direcciones IP, direcciones MAC, nombres de usuario y detalles de la red.
Tabla de asignación de UDM
Campo de registro | Asignación de UDM | Lógica |
---|---|---|
aplicación | principal.application |
El valor se extrae del mensaje de registro con patrones de Grok. En el caso de los mensajes de syslog, el nombre de la aplicación suele encontrarse después del nombre de host y la marca de tiempo. |
comando | principal.process.command_line |
Se extrae del campo de descripción cuando el registro indica la ejecución de un comando. |
descripción | metadata.description |
El campo de descripción se asigna a la descripción de los metadatos del UDM, excepto en los registros de la aplicación syslog-ng, en los que se asigna a metadata.description . En el caso de los eventos de DHCP, se antepone dhcp_type a la descripción. |
dhcp_type | metadata.product_event_type |
Tipo de mensaje DHCP (p.ej., DHCPDISCOVER, DHCPOFFER) se extrae y se asigna. |
host | intermediary.hostname O intermediary.ip |
Si el valor del host es una dirección IP válida, se asigna a intermediary.ip . De lo contrario, se asigna a intermediary.hostname . |
host | principal.hostname , principal.asset.hostname |
Cuando no hay una IP principal, el host se trata como el nombre de host principal. |
mac | principal.mac , network.dhcp.chaddr |
Se extrae y se asigna la dirección MAC asociada a una solicitud de DHCP. |
src_ip | principal.ip , principal.asset.ip |
Se extrae de formatos de registro específicos con un patrón de Grok. |
src_mac | principal.mac |
Se extrae de formatos de registro específicos con un patrón de Grok. |
dst_mac | target.mac |
Se extrae de formatos de registro específicos con un patrón de Grok. |
timestamp | metadata.event_timestamp |
La marca de tiempo se extrae del mensaje de registro y se convierte a un formato de marca de tiempo de UDM. Si está disponible, la información de la zona horaria (tz) se agrega a la marca de tiempo antes de la conversión. |
timestamp_no_year | metadata.event_timestamp |
Si hay una marca de tiempo sin año, se analiza y se agrega el año actual durante el proceso de análisis. |
usuario | principal.user.userid |
Se extrae y se asigna el nombre de usuario asociado a un evento. |
column1 | security_result.rule_id |
Se asigna desde la primera columna del CSV si la descripción está en formato CSV. |
column6 | security_result.rule_type |
Se asigna desde la sexta columna del CSV si la descripción está en formato CSV. |
column7 | security_result.action |
Se asigna desde la séptima columna del CSV si la descripción está en formato CSV. Se convirtió en "BLOCK" o "ALLOW". |
column8 | network.direction |
Se asigna desde la octava columna del CSV si la descripción está en formato CSV. Se convirtió en "INBOUND" o "OUTBOUND". |
column13 | network.ip_protocol (si es UDP o ICMP) |
Se asigna desde la decimotercera columna del CSV si la descripción está en formato CSV y el protocolo es UDP o ICMP. En el caso de los eventos de TCP/UDP, se usa para crear un campo adicional con la clave "Id". |
column16 | principal.ip , principal.asset.ip (si IPv6 y column9 es 6) |
Se asigna desde la decimosexta columna del CSV si la descripción está en formato CSV y column9 es 6. Para los eventos de TCP/UDP, se usa para la identificación del protocolo si column9 es 4. |
column17 | target.ip , target.asset.ip (si es IPv6 y no ip_failure) |
Se asigna desde la decimoséptima columna del CSV si la descripción está en formato CSV, la columna9 es 6 y el valor es una IP válida. En el caso de los eventos de TCP/UDP, se usa para la identificación del protocolo. |
column18 | principal.port (si es UDP) |
Se asigna desde la decimoctava columna del CSV si la descripción está en formato CSV y el protocolo es UDP. Para los eventos de TCP/UDP, se asigna a network.received_bytes . |
column19 | target.port (si es UDP) |
Se asigna desde la decimonovena columna del CSV si la descripción está en formato CSV y el protocolo es UDP. En el caso de los eventos de DHCP, se asigna a network.dhcp.yiaddr . Para otros eventos, se asigna a principal.ip , principal.asset.ip . |
column20 | additional.fields (clave: "data_length") (si es UDP) |
Se asigna desde la vigésima columna del CSV si la descripción está en formato CSV y el protocolo es UDP. Para otros eventos, se asigna a target.ip , target.asset.ip . |
column21 | principal.port (si es TCP/UDP) |
Se asigna desde la vigésima primera columna del CSV si la descripción está en formato CSV y el protocolo es TCP o UDP. |
column22 | target.port (si es TCP/UDP) |
Se asigna desde la columna veintidós del CSV si la descripción está en formato CSV y el protocolo es TCP o UDP. |
column23 | additional.fields (clave: "data_length") (si es TCP/UDP) |
Se asigna desde la columna veintitrés del CSV si la descripción está en formato CSV y el protocolo es TCP o UDP. |
column24 | additional.fields (clave: "tcp_flags") (si es TCP) |
Se asigna desde la vigésimo cuarta columna del CSV si la descripción está en formato CSV y el protocolo es TCP. |
column25 | additional.fields (clave: "sequence_number") (si es TCP/UDP) |
Se asigna desde la vigésimo quinta columna del CSV si la descripción está en formato CSV y el protocolo es TCP o UDP. |
column29 | additional.fields (clave: "tcp_options") (si es TCP) |
Se asigna desde la columna veintinueve del CSV si la descripción está en formato CSV y el protocolo es TCP. |
compression_algo | additional.fields (clave: "Compression Algorithm") |
Se extrae del campo de descripción y se agrega como un campo adicional. |
desc | metadata.description |
Se extrae del campo de mensaje y se usa como descripción. |
principal_ip | principal.ip , principal.asset.ip |
Se extrae del campo de descripción y representa la dirección IP principal. |
principal_username | principal.user.userid |
Se extrae del campo de descripción y representa el nombre de usuario principal. |
estado | security_result.detection_fields (clave: "status") |
Se extrae del campo de descripción y se agrega como un campo de detección dentro del resultado de seguridad. |
target_host | target.hostname , target.asset.hostname |
Se extrae del campo de descripción y representa el nombre de host de destino. |
src_port | principal.port |
Se extrae del campo de descripción y representa el puerto de origen. Se determina en función de varios campos de registro y la lógica del analizador. Puede ser NETWORK_CONNECTION, NETWORK_DHCP, STATUS_UPDATE o GENERIC_EVENT. Está codificado como "PFSENSE". Está codificado como "PFSENSE". Está codificado como "PFSENSE". Se establece en "DHCP" para los eventos de DHCP. Se establece en "BOOTREQUEST" para DHCPDISCOVER y DHCPREQUEST, y en "BOOTREPLY" para DHCPOFFER y DHCPACK. Se establece en "DISCOVER", "REQUEST", "OFFER" o "ACK" según el campo dhcp_type . |
¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.