收集 A10 网络负载平衡器日志
支持的平台:
Google SecOps
SIEM
本文档介绍了如何使用 Bindplane Agent 将 A10 网络负载平衡器日志导出到 Google 安全运营中心。解析器首先使用 grok
模式提取相关字段。然后,它利用条件语句 (if
) 基于提取的字段的存在性和内容将其映射到统一数据模型 (UDM),最终对事件类型进行分类。
准备工作
- 确保您拥有 Google SecOps 实例。
- 确保您使用的是 Windows 2016 或更高版本,或者使用了带有
systemd
的 Linux 主机。 - 如果在代理后面运行,请确保防火墙端口处于打开状态。
- 确保您拥有对 A10 负载平衡器的特权访问权限。
获取 Google SecOps 提取身份验证文件
- 登录 Google SecOps 控制台。
- 依次前往 SIEM 设置 > 收集代理。
- 下载提取身份验证文件。将该文件安全地保存在将安装 BindPlane 的系统上。
获取 Google SecOps 客户 ID
- 登录 Google SecOps 控制台。
- 依次选择 SIEM 设置 > 配置文件。
- 复制并保存组织详细信息部分中的客户 ID。
安装 Bindplane 代理
Windows 安装
- 以管理员身份打开命令提示符或 PowerShell。
运行以下命令:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Linux 安装
- 打开具有 root 或 sudo 权限的终端。
运行以下命令:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
其他安装资源
- 如需了解其他安装选项,请参阅此安装指南。
配置 Bindplane 代理以注入 Syslog 并将其发送到 Google SecOps
访问配置文件:
- 找到
config.yaml
文件。通常,在 Linux 上,该目录位于/etc/bindplane-agent/
目录中;在 Windows 上,该目录位于安装目录中。 - 使用文本编辑器(例如
nano
、vi
或记事本)打开该文件。
- 找到
按如下方式修改
config.yaml
文件:receivers: udplog: # Replace the port and IP address as required listen_address: "0.0.0.0:514" exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the path to the credentials file you downloaded in Step 1 creds: '/path/to/ingestion-authentication-file.json' # Replace with your actual customer ID from Step 2 customer_id: <customer_id> endpoint: malachiteingestion-pa.googleapis.com # Add optional ingestion labels for better organization ingestion_labels: log_type: A10_LOAD_BALANCER raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog exporters: - chronicle/chronicle_w_labels
根据基础架构中的需要替换端口和 IP 地址。
将
<customer_id>
替换为实际的客户 ID。在获取 Google SecOps 提取身份验证文件部分中,将
/path/to/ingestion-authentication-file.json
更新为身份验证文件的保存路径。
重启 Bindplane 代理以应用更改
如需在 Linux 中重启 Bindplane 代理,请运行以下命令:
sudo systemctl restart bindplane-agent
如需在 Windows 中重启 Bindplane 代理,您可以使用服务控制台,也可以输入以下命令:
net stop BindPlaneAgent && net start BindPlaneAgent
在 A10 负载平衡器中配置 Syslog 服务器
- 使用 SSH 客户端建立与 A10 负载平衡器的 SSH 连接。
运行以下命令进入配置模式:
config
使用以下命令配置远程 syslog 服务器:
logging host <bindplane-server-ip> <port-number>
- 将
<bindplane-server-ip>
替换为 BindPlane IP 地址,将<port-number>
替换为 BindPlane 中配置的值;例如514
。
- 将
使用以下命令设置严重程度级别:
logging level information
- 这会向 Bindplane 代理发送信息性消息(例如警告和错误)。
运行以下命令,确保已启用 syslog 日志记录:
logging enable
保存配置,确保其在重新启动后保持不变:
write memory
完整 CLI 配置示例:
config logging host 192.168.1.100 514 logging level info logging enable write memory
UDM 映射表
日志字段 | UDM 映射 | 逻辑 |
---|---|---|
dns | additional.fields.dns.value.string_value | 该值取自由 Grok 模式提取的 dns 字段。 |
dns_server | additional.fields.dns_server.value.string_value | 该值取自由 Grok 模式提取的 dns_server 字段。 |
gslb | additional.fields.gslb.value.string_value | 该值取自由 Grok 模式提取的 gslb 字段。 |
host_name | principal.hostname principal.asset.hostname |
该值取自由 Grok 模式提取的 host_name 字段。 |
httpmethod | network.http.method | 该值取自由 Grok 模式提取的 httpmethod 字段。 |
partion_id | additional.fields.partion_id.value.string_value | 该值取自由 Grok 模式提取的 partion_id 字段。 |
prin_ip | principal.ip principal.asset.ip |
该值取自由 Grok 模式提取的 prin_ip 字段。 |
prin_mac | principal.mac | 该值取自由 Grok 模式提取的 prin_mac 字段,其中移除了点,并在每个字符后插入一个英文冒号。 |
prin_port | principal.port | 该值取自由 Grok 模式提取的 prin_port 字段,并转换为整数。 |
proto | network.ip_protocol | 该值取自由 Grok 模式提取的 proto 字段。如果 message 字段包含 UDP ,则将其值设置为 UDP 。 |
sessionid | network.session_id | 该值取自由 Grok 模式提取的 sessionid 字段。 |
status_code | network.http.response_code | 该值取自由 Grok 模式提取的 status_code 字段,并转换为整数。 |
tar_ip | target.ip target.asset.ip |
该值取自由 Grok 模式提取的 tar_ip 字段。 |
tar_mac | target.mac | 该值取自由 Grok 模式提取的 tar_mac 字段,其中移除了点,并在每个字符后插入一个英文冒号。 |
tar_port | target.port | 该值取自由 Grok 模式提取的 tar_port 字段,并转换为整数。 |
时间 | metadata.event_timestamp.seconds | 系统会使用多种可能的日期格式,从 grok 模式提取的 time 字段中解析该值。 |
网址 | target.url | 该值取自由 Grok 模式提取的 url 字段。 |
用户 | principal.user.userid | 该值取自由 Grok 模式提取的 user 字段。 |
不适用 | metadata.event_type | 由解析器逻辑根据主账号和目标账号信息的存在情况确定: - NETWORK_CONNECTION :如果主账号和目标账号信息均存在。- STATUS_UPDATE :如果仅包含主要信息。- GENERIC_EVENT :否则。 |
不适用 | metadata.log_type | 已硬编码为 A10_LOAD_BALANCER 。 |
不适用 | network.application_protocol | 如果 proto 字段为 HTTP ,则设置为 HTTP 。 |
变化
2024-12-27
增强功能:
- 添加了 Grok 模式来解析未解析的日志。
- 添加了一个 KV 块来解析日志。
- 将
prin_host
映射到principal.hostname
和principal.asset.hostname
。 - 将
app
映射到target.application
。 - 将
device_version
映射到metadata.product_version
。 - 将
device_vendor
映射到metadata.vendor_name
。 - 将
device_product
映射到metadata.product_name
。 - 将
event_name
和device_event_class_id
映射到madeta.product_event_type
。 - 将
severity
映射到security_result.severity
。 - 将
src
映射到principal.ip
和principal.asset.ip
。 - 将
spt
映射到principal.port
。 - 将
dst
映射到target.ip
和target.asset.ip
。 - 将
dpt
映射到target.port
。 - 将
msg
映射到metadata.description
。 - 将
suser
映射到principal.user.user_display_name
。 - 将
act
和cn1
映射到additional.fields
。 - 将
method
映射到network.http.method
。 - 将
app_proto
映射到network.application_protocol
。 - 将
tls_version
映射到network.tls.version
。
2024-01-28
- 新创建的解析器。
需要更多帮助?向社区成员和 Google SecOps 专业人士寻求解答。