收集 Netgate pfSense 日志
支持的平台:
Google SecOps
SIEM
本文档介绍了如何使用 Google 安全运营转发器收集 Netgate pfSense 日志。
如需了解详情,请参阅将数据提取到 Google SecOps。
注入标签标识将原始日志数据标准化为结构化 UDM 格式的解析器。本文档中的信息适用于具有 PFSENSE
注入标签的解析器。
配置 Netgate pfSense
- 使用管理员凭据登录 pfSense 界面。
- 在全局日志设置中,执行以下操作:
- 依次选择状态 > 系统日志 > 设置。
- 在设置标签页中,选择常规日志记录选项,然后执行以下操作:
- 在 Log message format 字段中,选择 syslog(RFC 5424,采用 RFC 3339 微秒精度时间戳)。
- 在记录防火墙默认屏蔽内容字段中,选中以下复选框:
- 记录与规则集中的默认屏蔽规则匹配的数据包
- 记录与规则集中的默认通过规则匹配的数据包
- 记录被“屏蔽 bogon 网络”规则屏蔽的数据包
- 记录被“屏蔽私有网络”规则屏蔽的数据包
- 如需保存新设置,请点击保存。
将防火墙日志发送到 Google SecOps
- 在全局日志设置中,依次选择状态 > 系统日志 > 设置。
- 在设置标签页中,选择远程日志记录选项,然后执行以下操作:
- 在启用远程日志记录字段中,选中将日志消息发送到远程 syslog 服务器复选框。
- 在来源地址字段中,将默认值保留为任意。
- 在 IP 协议字段中,如果选择了来源地址作为默认值,则无需指定 IP 地址。否则,请输入 IP 地址。
- 在远程日志服务器中,指定 Google SecOps 转发器 IP 地址。
- 在远程 syslog 内容中,选中防火墙事件复选框。
- 如要保存更改,请点击保存。
配置 Google SecOps 转发器以注入 Netgate pfSense 日志
- 依次选择 SIEM 设置 > 转发器。
- 点击添加新转发器。
- 在转发器名称字段中,为转发器输入一个唯一名称。
- 点击提交,然后点击确认。系统会添加转发器,并显示添加收集器配置窗口。
- 在 Collector name(收集器名称)字段中,为收集器输入一个唯一名称。
- 选择 pfSense 作为日志类型。
- 在收集器类型字段中,选择 Syslog。
- 配置以下必需的输入参数:
- 协议:指定收集器用于监听 syslog 数据的连接协议。
- 地址:指定收集器所在并监听 syslog 数据的目标 IP 地址或主机名。
- 端口:指定收集器所在的目标端口,以及收集器监听 syslog 数据的端口。
- 点击提交。
如需详细了解 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.hostname 或 intermediary.ip |
如果主机值是有效的 IP 地址,则会映射到 intermediary.ip 。否则,它会映射到 intermediary.hostname 。 |
主机 | principal.hostname ,principal.asset.hostname |
如果没有主 IP,则将主机视为主主机名。 |
mac | principal.mac ,network.dhcp.chaddr |
系统会提取与 DHCP 请求关联的 MAC 地址并进行映射。 |
src_ip | principal.ip ,principal.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.ip 、principal.asset.ip (如果是 IPv6 且第 9 列为 6) |
如果说明采用 CSV 格式且第 9 列为 6,则从第 16 个 CSV 列映射。对于 TCP/UDP 事件,如果 column9 为 4,则用于协议标识。 |
column17 | target.ip 、target.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.ip 、principal.asset.ip 。 |
column20 | additional.fields (键:“data_length”)(如果是 UDP) |
如果说明采用 CSV 格式且协议为 UDP,则从第 20 个 CSV 列映射。对于其他事件,它会映射到 target.ip 、target.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.ip ,principal.asset.ip |
从说明字段中提取,表示主要 IP 地址。 |
principal_username | principal.user.userid |
从说明字段中提取,表示主账号用户名。 |
状态 | security_result.detection_fields (键:“status”) |
从说明字段中提取,并作为检测字段添加到安全结果中。 |
target_host | target.hostname ,target.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
- 新创建的解析器