收集 H3C Comware 平台交换机日志
本文档介绍了如何使用 Bindplane 将 H3C Comware 平台交换机日志注入 Google Security Operations。
H3C Comware 平台交换机是企业级网络交换机,通过 Comware 操作系统提供第 2 层和第 3 层交换功能、高级安全功能和全面的网络管理。这些交换机通过信息中心功能支持广泛的日志记录功能,可用于监控网络运行、安全性事件和系统诊断。
准备工作
请确保满足以下前提条件:
- Google SecOps 实例
- Windows Server 2016 或更高版本,或者具有
systemd的 Linux 主机 - Bindplane 代理与 H3C Comware Platform Switch 之间的网络连接
- 如果在代理后面运行,请确保按照 Bindplane 代理要求打开防火墙端口
- 通过控制台、Telnet 或 SSH 对 H3C Comware Platform Switch 管理控制台的特权访问权限
- 已启用信息中心功能的 H3C Comware 平台交换机(默认启用)
获取 Bindplane 代理的 Google SecOps 凭据
如需向 Google SecOps 验证 Bindplane 代理,请选择以下方法之一:
- 新部署:使用 Chronicle API(选项 1)。
- 旧版部署:继续使用提取身份验证文件(方法 2),直到提取 API 于 2027 年 7 月 20 日停用。
方法 1:为 Chronicle API 创建服务账号(推荐)
- 登录 Google Cloud 控制台,然后选择与您的 Google SecOps 实例关联的 Google Cloud 项目。
- 前往 IAM 和管理 > 服务账号。
- 点击创建服务账号。
- 提供以下配置详细信息:
- 服务账号名称:输入账号的名称(例如
bindplane-ingest)。 - 服务账号说明:输入说明(例如
Bindplane agent log ingestion)。
- 服务账号名称:输入账号的名称(例如
- 点击创建并继续。
- 在向此服务账号授予对项目的访问权限部分,点击选择角色,然后选择 Chronicle Editor。
- 点击继续,然后点击完成。
- 点击您创建的服务账号,然后前往密钥标签页。
- 依次点击添加密钥 > 创建新密钥。
- 选择 JSON,然后点击创建。密钥文件会下载到您的计算机上。
- 将密钥文件另存为 Bindplane 收集器目录(Linux 上的
/opt/observiq-otel-collector/ingestion-auth.json或 Windows 上的C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json)中的ingestion-auth.json,或更新config.yaml中的creds_file_path以匹配您保存该文件的路径。 - 前往 IAM 和管理 > 设置,然后复制项目编号。您在配置导出器时需要用到该名称。
方法 2:下载数据注入身份验证文件(旧版)
- 登录 Google SecOps 控制台。
- 前往 SIEM 设置> 收集代理。
- 下载数据注入身份验证文件。
- 将文件安全地保存在将安装 Bindplane 代理的系统上。
获取 Google SecOps 客户 ID
- 登录 Google SecOps 控制台。
- 依次前往 SIEM 设置 > 配置文件。
- 复制并保存组织详细信息部分中的客户 ID。
安装 Bindplane 代理
按照以下说明在 Windows 或 Linux 操作系统上安装 Bindplane 代理。
Windows 安装
- 以管理员身份打开命令提示符或 PowerShell。
运行以下命令:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet等待安装完成。
运行以下命令,验证安装是否成功:
sc query observiq-otel-collector
该服务应显示为 RUNNING。
Linux 安装
- 打开具有 root 或 sudo 权限的终端。
运行以下命令:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh等待安装完成。
运行以下命令,验证安装是否成功:
sudo systemctl status observiq-otel-collector
该服务应显示为 active (running)。
其他安装资源
如需了解其他安装选项和问题排查信息,请参阅 Bindplane 代理安装指南。
配置 Bindplane 代理以注入 syslog 并将其发送到 Google SecOps
找到配置文件
Linux:
sudo nano /opt/observiq-otel-collector/config.yamlWindows:
notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
修改配置文件
将
config.yaml的全部内容替换为以下配置:receivers: udplog: listen_address: "0.0.0.0:514" exporters: chronicle/h3c_switch: protocol: https # Region of your instance, for example us, europe, asia-southeast1 location: <LOCATION> # Project number of the Google Cloud project linked to the instance project: '<PROJECT_NUMBER>' compression: gzip creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json' customer_id: 'YOUR_CUSTOMER_ID' endpoint: chronicle.googleapis.com log_type: H3C_SWITCH raw_log_field: body ingestion_labels: env: production service: pipelines: logs/h3c_to_chronicle: receivers: - udplog exporters: - chronicle/h3c_switch
配置参数
替换以下占位符:
接收器配置:
listen_address:设置为0.0.0.0:514,以在 UDP 端口 51 上监听所有接口。如果您在 Linux 上以非 root 身份运行,则可以使用其他端口,例如1514。
导出器配置:
creds_file_path:服务账号 JSON 密钥文件的完整路径(选项 1):- Linux:
/opt/observiq-otel-collector/ingestion-auth.json - Windows:
C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
- Linux:
customer_id:将YOUR_CUSTOMER_ID替换为您在上一步中获取的客户 ID。location:将<LOCATION>替换为 Google SecOps 实例的区域(例如us、europe或asia-southeast1)。导出器会使用此值作为chronicle.googleapis.com的前缀。如需查看完整列表,请参阅区域级端点。project:将<PROJECT_NUMBER>替换为 IAM 和管理 > 设置中的项目编号。endpoint:保持设置为chronicle.googleapis.com。log_type:设置为H3C_SWITCH,与此处所示完全一致。ingestion_labels:YAML 格式的可选标签(例如env: production)。
旧版提取 API 导出工具
如果您使用选项 2 中的提取身份验证文件,请将
exporters代码块替换为以下内容。将creds_file_path设置为提取身份验证文件的路径,如果您的实例位于美国境外,请将malachiteingestion-pa.googleapis.com替换为您的区域端点(例如europe-malachiteingestion-pa.googleapis.com)。exporters: chronicle/h3c_switch: compression: gzip creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json' customer_id: 'YOUR_CUSTOMER_ID' endpoint: malachiteingestion-pa.googleapis.com log_type: H3C_SWITCH raw_log_field: body ingestion_labels: env: production
保存配置文件
修改后,保存文件:
- Linux:依次按
Ctrl+O、Enter和Ctrl+X - Windows:依次点击文件 > 保存
重启 Bindplane 代理以应用更改
如需在 Linux 中重启 Bindplane 代理,请运行以下命令:
sudo systemctl restart observiq-otel-collector验证服务是否正在运行:
sudo systemctl status observiq-otel-collector检查日志中的错误:
sudo journalctl -u observiq-otel-collector -f
如需在 Windows 中重启 Bindplane 代理,请选择以下选项之一:
以管理员身份运行命令提示符或 PowerShell:
net stop observiq-otel-collector && net start observiq-otel-collector服务控制台:
- 按
Win+R,输入services.msc,然后按 Enter。 - 找到 observIQ OpenTelemetry 收集器。
右键点击并选择重启。
验证服务是否正在运行:
sc query observiq-otel-collector检查日志中是否存在错误:
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
- 按
配置 H3C Comware 平台交换机 syslog 转发
配置 H3C Comware 平台交换机,以向 Bindplane 代理发送 syslog 消息。
访问交换机 CLI
- 使用以下任一方法登录 H3C Comware 平台交换机:
- 控制台端口连接
- Telnet
- SSH
输入以下命令,进入系统视图:
<H3C> system-view
提示会更改为 [H3C],表示您处于系统视图中。
验证信息中心是否已启用
H3C Comware 平台交换机默认启用信息中心。如需验证或启用信息中心,请输入以下命令:
[H3C] info-center enable如果信息中心已启用,系统会显示:
Info: Information center is enabled.
配置时间戳格式(可选)
发送到日志主机的系统信息的默认时间戳格式为日期。如需配置时间戳格式,请使用以下命令:
[H3C] info-center timestamp loghost date可用的时间戳格式:
date:格式为“Mmm dd hh:mm:ss:ms yyyy”(例如 Dec 8 10:12:21:708 2012)iso:ISO 8601 格式(例如 2012-09-21T15:32:55)no-year-date:当前系统日期和时间(不含年份)none:无时间戳信息
配置日志主机
将 Bindplane 代理主机指定为日志主机。facility 参数可以设置为 local0 到 local7,默认值为 local7。
[H3C] info-center loghost BINDPLANE_AGENT_IP port 514 facility local7将
BINDPLANE_AGENT_IP替换为运行 Bindplane 代理的主机的 IP 地址。例如,如果 Bindplane 代理在主机 192.168.1.100 上运行:
[H3C] info-center loghost 192.168.1.100 port 514 facility local7参数:
BINDPLANE_AGENT_IP:Bindplane 代理主机的 IP 地址port 514:UDP 端口号(必须与 Bindplane 代理中配置的端口一致)facility local7:Syslog 设施(local0 到 local7 有效;默认值为 local7)
配置来源接口(可选)
信息中心日志主机源命令仅在通过 info-center enable 命令启用信息中心后生效。如需为日志消息指定来源接口,请执行以下操作:
[H3C] info-center loghost source INTERFACE_TYPE INTERFACE_NUMBER例如,如需使用 VLAN 接口 1 作为来源,请执行以下操作:
[H3C] info-center loghost source vlan-interface 1
停用向日志主机输出默认日志
默认情况下,系统会将所有模块的信息输出到日志主机。如需控制哪些模块发送日志,请先停用默认输出:
[H3C] undo info-center source default loghost
配置日志输出规则
配置应向日志主机发送日志的模块和严重级别。系统信息分为 8 个严重级别,从 0 到 7 降序排列。交换机会输出严重级别高于或等于指定级别的系统信息。例如,如果您将输出规则配置为严重级别值为 6(信息性),则系统会输出严重级别值为 0 到 6 的信息。
严重级别 (0-7):
- 0:紧急情况
- 1:提醒
- 2:严重
- 3:错误
- 4:警告
- 5:通知
- 6:信息
- 7:调试
如需为所有模块配置信息级别或更高级别的日志输出,请运行以下命令:
[H3C] info-center source default loghost level informational如需为特定模块(例如 ARP 和 IP)配置日志输出,请执行以下操作:
[H3C] info-center source arp loghost level informational [H3C] info-center source ip loghost level informational如需查看可用的源模块,请使用:
[H3C] info-center source ?
保存配置
保存配置,以确保其在重启后仍然有效:
[H3C] save当系统提示您确认时,输入
Y进行确认。
验证配置
如需验证信息中心配置,请使用以下命令:
[H3C] display info-center
此命令会显示当前信息中心配置,包括日志主机设置、输出规则和通道配置。
完整配置示例
以下示例展示了将所有模块的信息级别或更高级别的日志发送到 192.168.1.100 处的日志主机的完整配置:
<H3C> system-view [H3C] info-center enable [H3C] info-center timestamp loghost date [H3C] info-center loghost 192.168.1.100 port 514 facility local7 [H3C] undo info-center source default loghost [H3C] info-center source default loghost level informational [H3C] save
特定模块的配置示例
以下示例展示了如何配置以将信息级别的 ARP 和 IP 模块日志发送到日志主机:
<H3C> system-view [H3C] info-center enable [H3C] info-center loghost 192.168.1.100 port 514 facility local7 [H3C] undo info-center source default loghost [H3C] info-center source arp loghost level informational [H3C] info-center source ip loghost level informational [H3C] save
UDM 映射表
| 日志字段 | UDM 映射 | 逻辑 |
|---|---|---|
| extensions.auth.type | 事件中使用的身份验证类型 | |
| 主机名 | intermediary.asset.hostname | 与中介机构相关联的资产的主机名 |
| 主机名 | intermediary.hostname | 中介实体的主机名 |
| inter_ip | intermediary.asset.ip | 与中介关联的资产的 IP 地址 |
| inter_ip | intermediary.ip | 中介实体的 IP 地址 |
| IPAddr, prin_ip | principal.asset.ip | 与主体相关联的资产的 IP 地址 |
| IPAddr, prin_ip | principal.ip | 主实体的 IP 地址 |
| prin_port | principal.port | 与主账号关联的端口号 |
| User, user | principal.user.userid | 主体的用户 ID |
| tar_host | target.asset.hostname | 与目标关联的资产的主机名 |
| tar_host | target.hostname | 目标实体的主机名 |
| tar_ip | target.asset.ip | 与目标关联的资产的 IP 地址 |
| tar_ip | target.ip | 目标实体的 IP 地址 |
| tar_port | target.port | 与目标相关联的端口号 |
| tar_user | target.user.userid | 目标的相应用户 ID |
| Line、OperateType、OperateTime、OperateState、OperateEndTime、EventIndex、CommandSource、ConfigSource、ConfigDestination | additional.fields | 标准 UDM 字段未涵盖的其他元数据字段 |
| 降序 | metadata.description | 事件的说明 |
| 时间戳 | metadata.event_timestamp | 事件发生时的时间戳 |
| metadata.event_type | 事件类型(例如 USER_LOGIN、NETWORK_CONNECTION) | |
| event_type | metadata.product_event_type | 产品专属事件类型标识符 |
| metadata.product_name | 生成事件的产品的名称 | |
| metadata.vendor_name | 商品供应商的名称 | |
observer_asset_id |
event.idm.read_only_udm.observer.asset_id |
从更新日志映射 |
observer_hostname |
event.idm.read_only_udm.observer.hostname和event.idm.read_only_udm.observer.asset.hostname之间 |
从更新日志映射 |
severity |
event.idm.read_only_udm.security_result.severity_details |
从更新日志映射 |
severityName |
event.idm.read_only_udm.security_result.severity |
从更新日志映射 |
duplicate_ip |
event.idm.read_only_udm.principal.ip和event.idm.read_only_udm.principal.asset.ip之间 |
从更新日志映射 |
facility |
event.idm.read_only_udm.additional.fields |
从更新日志映射 |
facilityName |
event.idm.read_only_udm.additional.fields |
从更新日志映射 |
id |
event.idm.read_only_udm.additional.fields |
从更新日志映射 |
interface |
event.idm.read_only_udm.additional.fields |
从更新日志映射 |
host |
event.idm.read_only_udm.additional.fields |
从更新日志映射 |
device_type |
event.idm.read_only_udm.additional.fields |
从更新日志映射 |
dev_ip |
event.idm.read_only_udm.target.ip和event.idm.read_only_udm.target.asset.ip之间 |
从更新日志映射 |
program |
event.idm.read_only_udm.metadata.product_event_type |
从更新日志映射 |
security_result |
event.idm.read_only_udm.security_result |
从更新日志映射 |
product_event_type |
event.idm.read_only_udm.metadata.product_event_type |
从更新日志映射 |
src_ip |
event.idm.read_only_udm.principal.ip |
从更新日志映射 |
src_ip |
event.idm.read_only_udm.principal.asset.ip |
从更新日志映射 |
dest_ip |
event.idm.read_only_udm.target.ip |
从更新日志映射 |
dest_ip |
event.idm.read_only_udm.target.asset.ip |
从更新日志映射 |
hostname |
event.idm.read_only_udm.intermediary.hostname |
从更新日志映射 |
hostname |
event.idm.read_only_udm.intermediary.asset.hostname |
从更新日志映射 |
timestamp |
event.idm.read_only_udm.metadata.event_timestamp |
从更新日志映射 |
inter_ip |
event.idm.read_only_udm.metadata.intermediary.ip |
从更新日志映射 |
inter_ip |
event.idm.read_only_udm.metadata.intermediary.asset.ip |
从更新日志映射 |
Line |
event.idm.read_only_udm.additional.fields |
从更新日志映射 |
OperateType |
event.idm.read_only_udm.additional.fields |
从更新日志映射 |
OperateTime |
event.idm.read_only_udm.additional.fields |
从更新日志映射 |
OperateState |
event.idm.read_only_udm.additional.fields |
从更新日志映射 |
OperateEndTime |
event.idm.read_only_udm.additional.fields |
从更新日志映射 |
EventIndex |
event.idm.read_only_udm.additional.fields |
从更新日志映射 |
CommandSource |
event.idm.read_only_udm.additional.fields |
从更新日志映射 |
ConfigSource |
event.idm.read_only_udm.additional.fields |
从更新日志映射 |
ConfigDestination |
event.idm.read_only_udm.additional.fields |
从更新日志映射 |
IPAddr |
event.idm.read_only_udm.principal.ip |
从更新日志映射 |
IPAddr |
event.idm.read_only_udm.principal.asset.ip |
从更新日志映射 |
User |
event.idm.read_only_udm.principal.user.userid |
从更新日志映射 |
prin_ip |
event.idm.read_only_udm.principal.ip |
从更新日志映射 |
prin_ip |
event.idm.read_only_udm.principal.asset.ip |
从更新日志映射 |
prin_port |
event.idm.read_only_udm.principal.port |
从更新日志映射 |
tar_ip |
event.idm.read_only_udm.target.ip |
从更新日志映射 |
tar_ip |
event.idm.read_only_udm.target.asset.ip |
从更新日志映射 |
tar_host |
event.idm.read_only_udm.target.hostname |
从更新日志映射 |
tar_port |
event.idm.read_only_udm.target.port |
从更新日志映射 |
tar_user |
event.idm.read_only_udm.target.user.userid |
从更新日志映射 |
user |
event.idm.read_only_udm.principal.user.userid |
从更新日志映射 |
更新日志
需要更多帮助?获得社区成员和 Google SecOps 专业人士的解答。