收集 Netgate pfSense 日志

支持的平台:

本文档介绍了如何使用 Google 安全运营转发器收集 Netgate pfSense 日志。

如需了解详情,请参阅将数据提取到 Google SecOps

注入标签标识将原始日志数据标准化为结构化 UDM 格式的解析器。本文档中的信息适用于具有 PFSENSE 注入标签的解析器。

配置 Netgate pfSense

  1. 使用管理员凭据登录 pfSense 界面。
  2. 全局日志设置中,执行以下操作:
    1. 依次选择状态 > 系统日志 > 设置
    2. 设置标签页中,选择常规日志记录选项,然后执行以下操作:
      1. Log message format 字段中,选择 syslog(RFC 5424,采用 RFC 3339 微秒精度时间戳)
      2. 记录防火墙默认屏蔽内容字段中,选中以下复选框:
        • 记录与规则集中的默认屏蔽规则匹配的数据包
        • 记录与规则集中的默认通过规则匹配的数据包
        • 记录被“屏蔽 bogon 网络”规则屏蔽的数据包
        • 记录被“屏蔽私有网络”规则屏蔽的数据包
  3. 如需保存新设置,请点击保存

将防火墙日志发送到 Google SecOps

  1. 全局日志设置中,依次选择状态 > 系统日志 > 设置
  2. 设置标签页中,选择远程日志记录选项,然后执行以下操作:
    • 启用远程日志记录字段中,选中将日志消息发送到远程 syslog 服务器复选框。
    • 来源地址字段中,将默认值保留为任意
    • IP 协议字段中,如果选择了来源地址作为默认值,则无需指定 IP 地址。否则,请输入 IP 地址。
    • 远程日志服务器中,指定 Google SecOps 转发器 IP 地址。
    • 远程 syslog 内容中,选中防火墙事件复选框。
  3. 如要保存更改,请点击保存

配置 Google SecOps 转发器以注入 Netgate pfSense 日志

  1. 依次选择 SIEM 设置 > 转发器
  2. 点击添加新转发器
  3. 转发器名称字段中,为转发器输入一个唯一名称。
  4. 点击提交,然后点击确认。系统会添加转发器,并显示添加收集器配置窗口。
  5. Collector name(收集器名称)字段中,为收集器输入一个唯一名称。
  6. 选择 pfSense 作为日志类型
  7. 收集器类型字段中,选择 Syslog
  8. 配置以下必需的输入参数:
    • 协议:指定收集器用于监听 syslog 数据的连接协议。
    • 地址:指定收集器所在并监听 syslog 数据的目标 IP 地址或主机名。
    • 端口:指定收集器所在的目标端口,以及收集器监听 syslog 数据的端口。
  9. 点击提交

如需详细了解 Google SecOps 转发器,请参阅通过 Google SecOps 界面管理转发器配置

如果您在创建转发器时遇到问题,请与 Google SecOps 支持团队联系。

字段映射参考文档

此 pfSense 防火墙解析器使用 Grok 模式从 syslog 消息中提取字段,处理各种日志格式,包括 DHCP 和防火墙事件。然后,它会将这些提取的字段映射到 UDM,并使用 IP 地址、MAC 地址、用户名和网络详细信息等情境信息丰富数据。

UDM 映射表

日志字段 UDM 映射 逻辑
应用 principal.application 系统会使用 Grok 模式从日志消息中提取该值。对于 syslog 消息,应用名称通常位于主机名和时间戳之后。
命令 principal.process.command_line 当日志指示有命令在执行时,从“说明”字段中提取。
说明 metadata.description 说明字段会映射到 UDM 元数据说明,但 syslog-ng 应用日志除外,该字段会映射到 metadata.description。对于 DHCP 事件,系统会在说明前面附加 dhcp_type
dhcp_type metadata.product_event_type DHCP 消息类型(例如,DHCPDISCOVER、DHCPOFFER)进行提取和映射。
主机 intermediary.hostnameintermediary.ip 如果主机值是有效的 IP 地址,则会映射到 intermediary.ip。否则,它会映射到 intermediary.hostname
主机 principal.hostnameprincipal.asset.hostname 如果没有主 IP,则将主机视为主主机名。
mac principal.macnetwork.dhcp.chaddr 系统会提取与 DHCP 请求关联的 MAC 地址并进行映射。
src_ip principal.ipprincipal.asset.ip 使用 Grok 模式从特定日志格式中提取。
src_mac principal.mac 使用 Grok 模式从特定日志格式中提取。
dst_mac target.mac 使用 Grok 模式从特定日志格式中提取。
时间戳 metadata.event_timestamp 系统会从日志消息中提取时间戳,并将其转换为 UDM 时间戳格式。时区信息 (tz) 会在转换之前附加到时间戳(如果有)。
timestamp_no_year metadata.event_timestamp 如果存在不含年份的时间戳,系统会对其进行解析,并在解析过程中添加当前年份。
用户 principal.user.userid 系统会提取与事件关联的用户名并进行映射。
第 1 列 security_result.rule_id 如果说明采用 CSV 格式,则从第一个 CSV 列映射。
column6 security_result.rule_type 如果说明采用 CSV 格式,则从第六个 CSV 列映射。
column7 security_result.action 如果说明采用 CSV 格式,则从第七个 CSV 列映射。已转换为“屏蔽”或“允许”。
column8 network.direction 如果说明采用 CSV 格式,则从第八个 CSV 列映射。已转换为“INBOUND”或“OUTBOUND”。
column13 network.ip_protocol(如果是 UDP 或 ICMP) 如果说明采用 CSV 格式且协议为 UDP 或 ICMP,则从第 13 个 CSV 列映射而来。对于 TCP/UDP 事件,它用于创建键为“Id”的附加字段。
column16 principal.ipprincipal.asset.ip(如果是 IPv6 且第 9 列为 6) 如果说明采用 CSV 格式且第 9 列为 6,则从第 16 个 CSV 列映射。对于 TCP/UDP 事件,如果 column9 为 4,则用于协议标识。
column17 target.iptarget.asset.ip(如果是 IPv6 且不是 ip_failure) 如果说明采用 CSV 格式,则从第 17 个 CSV 列映射而来,其中第 9 列为 6,且值为有效 IP。对于 TCP/UDP 事件,此字段用于协议标识。
column18 principal.port(如果是 UDP) 如果说明采用 CSV 格式且协议为 UDP,则从第 18 个 CSV 列映射。对于 TCP/UDP 事件,它会映射到 network.received_bytes
column19 target.port(如果是 UDP) 如果说明采用 CSV 格式且协议为 UDP,则从第 19 个 CSV 列映射而来。对于 DHCP 事件,它会映射到 network.dhcp.yiaddr。对于其他事件,它会映射到 principal.ipprincipal.asset.ip
column20 additional.fields(键:“data_length”)(如果是 UDP) 如果说明采用 CSV 格式且协议为 UDP,则从第 20 个 CSV 列映射。对于其他事件,它会映射到 target.iptarget.asset.ip
column21 principal.port(如果是 TCP/UDP) 如果说明采用 CSV 格式且协议为 TCP 或 UDP,则从 CSV 文件的第 21 列映射而来。
column22 target.port(如果是 TCP/UDP) 如果说明采用 CSV 格式且协议为 TCP 或 UDP,则从第 22 个 CSV 列映射而来。
column23 additional.fields(键:“data_length”)(如果是 TCP/UDP) 如果说明采用 CSV 格式且协议为 TCP 或 UDP,则从第 23 个 CSV 列映射而来。
column24 additional.fields(键:“tcp_flags”)(如果是 TCP) 如果说明采用 CSV 格式且协议为 TCP,则从第 24 个 CSV 列映射而来。
column25 additional.fields(键:“sequence_number”)(如果是 TCP/UDP) 如果说明采用 CSV 格式且协议为 TCP 或 UDP,则从第 25 个 CSV 列映射而来。
column29 additional.fields(键:“tcp_options”)(如果是 TCP) 如果说明采用 CSV 格式且协议为 TCP,则从第 29 个 CSV 列映射。
compression_algo additional.fields(键:“压缩算法”) 从说明字段中提取,并添加为额外字段。
降序 metadata.description 从消息字段中提取,并用作说明。
principal_ip principal.ipprincipal.asset.ip 从说明字段中提取,表示主要 IP 地址。
principal_username principal.user.userid 从说明字段中提取,表示主账号用户名。
状态 security_result.detection_fields(键:“status”) 从说明字段中提取,并作为检测字段添加到安全结果中。
target_host target.hostnametarget.asset.hostname 从说明字段中提取,表示目标主机名。
src_port principal.port 从说明字段中提取,表示来源端口。根据各种日志字段和解析器逻辑确定。可以是 NETWORK_CONNECTION、NETWORK_DHCP、STATUS_UPDATE 或 GENERIC_EVENT。已硬编码为“PFSENSE”。已硬编码为“PFSENSE”。已硬编码为“PFSENSE”。对于 DHCP 事件,请将其设置为“DHCP”。对于 DHCPDISCOVER 和 DHCPREQUEST,请将其设置为“BOOTREQUEST”;对于 DHCPOFFER 和 DHCPACK,请将其设置为“BOOTREPLY”。根据 dhcp_type 字段设置为“DISCOVER”“REQUEST”“OFFER”或“ACK”。

变化

2024-05-08

  • 添加了 Grok 模式来解析字段“description”。
  • 将“principal_ip”映射到“principal.ip”和“principal.asset.ip”。
  • 将“src_port”映射到“principal.port”。
  • 将“compression_algo”映射到“additional.fields”。
  • 将“status”映射到“security_result.detection_fields”。
  • 将“principal_username”映射到“principal.user.userid”。
  • 将“target_host”映射到“target.hostname”和“target.asset.hostname”。

2023-05-05

  • 在映射“network.ip_protocol”之前添加了转换为大写形式的操作。
  • 将“column18”映射到“principal.port”,前提是“column13”中存在协议。
  • 当“column13”中存在协议时,将“column19”映射到“target.port”。
  • 将“column20”映射到“additional.fields”作为“data-length”,前提是“column13”中存在协议。

2023-02-20

  • 添加了 Grok 模式,以支持新的过滤器日志格式和 syslog-ng 格式。

2022-10-04

  • 将 event_types 为“NETWORK_CONNECTION”的日志中的防火墙设备名称重新映射为 intermediary.hostname,而不是 principal.hostname。

2022-09-05

  • Enhancement-
  • 对于 CSV 格式日志,映射了以下字段。
  • 添加了 Grok 模式以检索“IP”和“MAC”。
  • 将“column19”(即“source-address”)映射到“network.dhcp.yiaddr”。
  • 将“security_result.action”映射为“ALLOW”,前提是“column7”等于“pass”。
  • 当“column9”等于“6”(表示“IPv6”)时,系统会将以下字段映射到:
  • 将“column17”(即“destination-address”)映射到“target.ip”。
  • 将“column16”(即“source-address”)映射到“principal.ip”。
  • 当“column16”和“column17”不为 null 时,将“event_type”映射到“NETWORK_CONNECTION”。
  • 将“column12”(即“hop_limit”)映射到“additional.fields”。
  • 将“column13”(即“ip_protocol”)映射到“network.ip_protocol”。
  • 将自定义解析器迁移到了默认解析器。
  • 添加了条件检查,以将“event_type”设置为“STATUS_UPDATE”

2022-06-30

  • 将“ttl”映射到“additional.fields”。
  • 将“Id”映射到“additional.fields”。
  • 将“偏移量”映射到“additional.fields”。
  • 将“数据长度”映射到“additional.fields”。
  • 将“长度”映射到“additional.fields”。
  • 将“Sequence-number”映射到“additional.fields”。

2022-04-11

  • 新创建的解析器