收集 AMD Pensando DSS 防火牆記錄
剖析器版本:1.0
本文說明如何使用 Bindplane,將 AMD Pensando DSS 防火牆記錄擷取至 Google Security Operations。
AMD Pensando Distributed Services Switch (DSS) 防火牆是硬體加速的有狀態防火牆,在 Aruba CX 10000 系列交換器內的 AMD Pensando DPU 上執行。這項服務可提供微區隔功能,並以線路速率檢查東西向流量。防火牆是透過 AMD Pensando Policy and Services Manager (PSM) 管理,提供集中式政策設定、監控和系統記錄匯出功能。
事前準備
請確認您符合下列必要條件:
- Google SecOps 執行個體。
- Windows Server 2016 以上版本,或搭載
systemd的 Linux 主機。 - 如果是在 Proxy 後方執行,請確認防火牆通訊埠已按照 Bindplane 代理程式需求開啟。
- AMD Pensando Policy and Services Manager (PSM) 或 Aruba CX 10000 交換器管理介面的特殊存取權。
- Bindplane 代理主機與 Aruba CX 10000 交換器或 PSM 之間的網路連線。
取得 Bindplane 代理程式的 Google SecOps 憑證
如要向 Google SecOps 驗證 Bindplane 代理程式,請選擇下列其中一種方法:
- 新部署作業:使用 Chronicle API (選項 1)。
- 舊版部署作業:繼續使用擷取驗證檔案 (選項 2),直到 Ingestion API 於 2027 年 7 月 20 日停用。
方法 1:為 Chronicle API 建立服務帳戶 (建議)
- 登入 Google Cloud 控制台,然後選取連結至 Google SecOps 執行個體的 Google Cloud 專案。
- 依序前往「IAM & Admin」(IAM 與管理) >「Service Accounts」(服務帳戶)。
- 按一下「建立服務帳戶」。
- 請提供下列設定詳細資料:
- 服務帳戶名稱:輸入帳戶名稱 (例如
bindplane-ingest)。 - 「服務帳戶說明」:輸入說明 (例如
Bindplane agent log ingestion)。
- 服務帳戶名稱:輸入帳戶名稱 (例如
- 點按「Create and continue」(建立並繼續)。
- 在「將專案存取權授予這個服務帳戶」部分,按一下「選取角色」,然後選取「Chronicle 編輯者」。
- 依序點選「繼續」和「完成」。
- 按一下您建立的服務帳戶,然後前往「金鑰」分頁。
- 依序點選「新增金鑰」>「建立新的金鑰」。
- 選取「JSON」,然後點選「建立」。金鑰檔案會下載到電腦。
- 將金鑰檔案儲存為 Bindplane 收集器目錄中的
ingestion-auth.json(Linux 為/opt/observiq-otel-collector/ingestion-auth.json,Windows 為C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json),或更新config.yaml中的creds_file_path,使其與儲存檔案的路徑相符。 - 依序前往「IAM & Admin」(IAM 與管理) >「Settings」(設定),然後複製「Project number」(專案編號)。設定匯出工具時會用到。
方法 2:下載擷取驗證檔案 (舊版)
- 登入 Google SecOps 控制台。
- 依序前往「SIEM Settings」 > 「Collection Agents」。
- 下載擷取驗證檔案。
- 將檔案安全地儲存在要安裝 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
Linux 安裝
- 開啟具有根層級或 sudo 權限的終端機。
執行下列指令:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
其他安裝資源
如需其他安裝選項,請參閱 Bindplane 代理程式安裝指南。
設定 Bindplane 代理程式,擷取系統記錄並傳送至 Google SecOps
存取設定檔:
- 找出
config.yaml檔案。通常位於 Linux 的/opt/observiq-otel-collector/目錄,或 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: 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 # Adjust the path to the credentials file you downloaded in Step 1 creds_file_path: '/path/to/ingestion-authentication-file.json' # Replace with your actual customer ID from Step 2 customer_id: '<CUSTOMER_ID>' endpoint: chronicle.googleapis.com # Add optional ingestion labels for better organization log_type: 'AMD_DSS_FIREWALL' raw_log_field: body ingestion_labels: service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog exporters: - chronicle/chronicle_w_labels- 將
<LOCATION>替換為 Google SecOps 執行個體的區域 (例如us、europe或asia-southeast1)。匯出工具會在這個值前面加上chronicle.googleapis.com。如需完整清單,請參閱「區域性端點」。 - 將
<PROJECT_NUMBER>替換為「IAM 與管理」>「設定」中的專案編號。
- 將
- 請根據基礎架構需求,替換通訊埠和 IP 位址。
- 將
<CUSTOMER_ID>替換為實際的客戶 ID。 - 將
/path/to/ingestion-authentication-file.json更新為服務帳戶金鑰檔案 (選項 1) 的儲存路徑。
舊版 Ingestion API 匯出工具
如果您使用選項 2 的擷取驗證檔案,請將
exporters區塊替換為下列內容。將creds_file_path設為擷取驗證檔案的路徑,如果您的執行個體位於美國境外,請將malachiteingestion-pa.googleapis.com替換為區域端點 (例如europe-malachiteingestion-pa.googleapis.com)。exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the path to the credentials file you downloaded in Step 1 creds_file_path: '/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 log_type: 'AMD_DSS_FIREWALL' raw_log_field: body ingestion_labels:
重新啟動 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 Collector」。
- 按一下滑鼠右鍵,然後選取「重新啟動」。
- 按下
確認服務正在執行:
sc query observiq-otel-collector查看記錄檔是否有錯誤:
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
在 AMD Pensando DSS 防火牆上設定 syslog 轉送
AMD Pensando DSS 防火牆支援兩種 Syslog 轉送設定方法:透過 Pensando Policy and Services Manager (PSM) 網頁介面,或透過 Aruba CX 10000 交換器上的 AOS-CX CLI。
透過 Pensando PSM 設定 syslog 匯出
- 登入 AMD Pensando Policy and Services Manager (PSM) 網頁介面。
- 依序前往「監控」>「快訊和事件」。
- 選取「目的地」分頁標籤。
- 按一下「新增目的地」。
- 提供下列設定詳細資料:
- 目的地類型:選取「Syslog」。
- 伺服器位址:輸入 Bindplane 代理程式主機的 IP 位址 (例如
192.168.1.100)。 - 通訊埠:輸入 Bindplane 代理程式
config.yaml中設定的通訊埠 (例如514)。 - 「Protocol」(通訊協定):選取「UDP」,與 Bindplane 代理程式接收器設定相符。
- 格式:選取「BSD (RFC 5424)」。
- 按一下「儲存」,建立系統記錄目的地。
- 選取「警告政策」分頁標籤。
- 按一下「新增快訊政策」,定義要轉送哪些事件和快訊。
- 選取所需的事件類別和嚴重性等級。
- 在「Destinations」(目的地) 部分,選取您建立的 syslog 目的地。
按一下「儲存」,啟用警告政策。
在 Aruba CX 10000 上透過 AOS-CX CLI 設定系統記錄
- 透過 SSH 或控制台連線至 Aruba CX 10000 交換器。
進入設定模式:
configure terminal使用 UDP 設定遠端 Syslog 伺服器 (將
<BINDPLANE_IP>替換為 Bindplane 代理程式 IP 位址):logging <BINDPLANE_IP> udp 514 severity info或 TCP:
logging <BINDPLANE_IP> tcp 1470 severity info或 TLS:
logging <BINDPLANE_IP> tls 6514 severity info設定 syslog 設施:
logging facility local0儲存設定:
write memory退出設定模式:
exit
如要進一步瞭解 AOS-CX 記錄指令,請參閱「AOS-CX CLI 參考資料」。
UDM 對應表
| 記錄欄位 | UDM 對應 | 邏輯 |
|---|---|---|
action |
read_only_udm.metadata.product_event_type |
直接對應。 |
action |
read_only_udm.security_result.action |
如果動作是「拒絕」,請設為「BLOCK」。如果動作是「allow」,請設為「ALLOW」。 |
column10 |
read_only_udm.network.session_id |
直接對應。 |
column11 |
read_only_udm.additional.fields.value.string_value |
直接對應。金鑰會以硬式編碼寫成「security_policy_id」。 |
column12 |
read_only_udm.security_result.rule_id |
直接對應。 |
column13 |
read_only_udm.security_result.rule_name |
直接對應。 |
column14 |
read_only_udm.network.sent_packets |
直接對應。 |
column15 |
read_only_udm.network.sent_bytes |
直接對應。 |
column16 |
read_only_udm.network.received_packets |
直接對應。 |
column17 |
read_only_udm.network.received_bytes |
直接對應。 |
column18 |
read_only_udm.additional.fields.value.string_value |
直接對應。金鑰會以硬式編碼寫成「vlan」。 |
column19 |
read_only_udm.principal.asset.software.vendor_name |
直接對應。 |
column19 |
read_only_udm.principal.asset.software.name |
直接對應。 |
column2 |
read_only_udm.metadata.product_event_type |
直接對應。 |
column20 |
read_only_udm.principal.asset.software.version |
直接對應。 |
column21 |
read_only_udm.principal.asset_id |
將「asset_id:」與 column21 的值串連。 |
column22 |
read_only_udm.principal.asset.attribute.labels.value |
直接對應。鍵會以硬式編碼寫成「device_name」。 |
column23 |
read_only_udm.principal.asset.attribute.labels.value |
直接對應。金鑰會以硬式編碼寫成「unit_id」。 |
column24 |
read_only_udm.metadata.product_version |
直接對應。 |
column25 |
read_only_udm.additional.fields.value.string_value |
直接對應。金鑰會以硬式編碼寫成「policy_name」。 |
column25 |
read_only_udm.security_result.rule_type |
直接對應。 |
column4 |
read_only_udm.principal.resource.product_object_id |
直接對應。 |
column5 |
read_only_udm.principal.ip |
直接對應。 |
column6 |
read_only_udm.principal.port |
直接對應。 |
column7 |
read_only_udm.target.ip |
直接對應。 |
column8 |
read_only_udm.target.port |
直接對應。 |
column9 |
read_only_udm.network.ip_protocol |
將數字通訊協定號碼對應至相應名稱 (例如 6 對應至 TCP,17 對應至 UDP)。 |
dip |
read_only_udm.target.ip |
直接對應。 |
dport |
read_only_udm.target.port |
直接對應。 |
dvc |
read_only_udm.intermediary.hostname |
如果 dvc 不是 IP 位址,請對應至主機名稱。否則請對應至 IP。 |
iflowbytes |
read_only_udm.network.sent_bytes |
直接對應。 |
iflowpkts |
read_only_udm.network.sent_packets |
直接對應。 |
msg_id |
read_only_udm.additional.fields.value.string_value |
直接對應。金鑰會硬式編碼為「msg_id」。 |
policy_name |
read_only_udm.additional.fields.value.string_value |
直接對應。金鑰會以硬式編碼寫成「policy_name」。 |
policy_name |
read_only_udm.security_result.rule_type |
直接對應。 |
proc_id |
read_only_udm.target.process.pid |
直接對應。 |
proc_name |
read_only_udm.target.application |
直接對應。 |
protocol_number_src |
read_only_udm.network.ip_protocol |
將數字通訊協定號碼對應至相應名稱 (例如 6 對應至 TCP,17 對應至 UDP)。 |
rflowbytes |
read_only_udm.network.received_bytes |
直接對應。 |
rflowpkts |
read_only_udm.network.received_packets |
直接對應。 |
rule_id |
read_only_udm.security_result.rule_id |
直接對應。 |
rule_name |
read_only_udm.security_result.rule_name |
直接對應。 |
sd |
read_only_udm.additional.fields.value.string_value |
直接對應。金鑰以硬式編碼寫成「sd」。 |
security_policy_id |
read_only_udm.additional.fields.value.string_value |
直接對應。金鑰會硬式編碼為「security_policy_id」。 |
session_id |
read_only_udm.network.session_id |
直接對應。 |
session_state |
read_only_udm.metadata.product_event_type |
直接對應。 |
sip |
read_only_udm.principal.ip |
直接對應。 |
software_version |
read_only_udm.principal.asset.software.version |
直接對應。 |
sport |
read_only_udm.principal.port |
直接對應。 |
ts |
read_only_udm.metadata.event_timestamp |
系統會剖析記錄中的時間戳記,並將格式轉換為 UDM 時間戳記格式。 |
vlan |
read_only_udm.additional.fields.value.string_value |
直接對應。金鑰會以硬式編碼寫成「vlan」。 |
read_only_udm.metadata.event_type |
如果同時有 sip 和 dip,請設為「NETWORK_UNCATEGORIZED」。如果只有 sip,請設為「STATUS_UPDATE」。否則請設為「GENERIC_EVENT」。 | |
read_only_udm.metadata.log_type |
硬式編碼為「AMD_DSS_FIREWALL」。 | |
read_only_udm.metadata.product_name |
硬式編碼為「AMD_DSS_FIREWALL」。 | |
read_only_udm.metadata.vendor_name |
硬式編碼為「AMD_DSS_FIREWALL」。 | |
read_only_udm.principal.resource.resource_type |
硬式編碼為「VPC_NETWORK」。 |
變更記錄
還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求解答。