收集 Fortinet Switch 記錄

剖析器版本:1.0

支援:

本指南說明如何使用 Bindplane 代理程式,將 Fortinet Switch 記錄擷取至 Google Security Operations。

Fortinet Switch 是一系列安全、高效能的乙太網路交換器,專為企業網路設計。FortiSwitch 提供第 2 層和第 3 層交換功能、VLAN 支援、連結聚合、乙太網路供電 (PoE) 和整合式安全防護功能。FortiSwitch 裝置可以獨立模式運作,或透過 FortiLink 由 FortiGate 防火牆管理。

事前準備

請確認您已完成下列事前準備事項:

  • Google SecOps 執行個體。
  • Windows Server 2016 以上版本,或搭載 systemd 的 Linux 主機。
  • Bindplane 代理程式與 Fortinet 交換器之間的網路連線。
  • 如果是在 Proxy 後方執行,請確認防火牆通訊埠已按照 Bindplane 代理程式需求開啟。
  • Fortinet Switch 管理控制台或 FortiGate 控制台 (適用於受管理交換器) 的特殊權限存取權。
  • 搭載 FortiSwitchOS 7.0 以上版本的 Fortinet 交換器。

取得 Bindplane 代理程式的 Google SecOps 憑證

如要向 Google SecOps 驗證 Bindplane 代理程式,請選擇下列其中一種方法:

  • 新部署作業:使用 Chronicle API (選項 1)。
  • 舊版部署作業:繼續使用擷取驗證檔案 (選項 2),直到 Ingestion API 於 2027 年 7 月 20 日停用。
  1. 登入 Google Cloud 控制台,選取連結至 Google SecOps 執行個體的 Google Cloud 專案。
  2. 依序前往 「IAM & Admin」(IAM 與管理) >「Service Accounts」(服務帳戶)。
  3. 按一下「建立服務帳戶」。
  4. 提供下列設定詳細資料:
    • 「Service account name」(服務帳戶名稱):輸入帳戶名稱 (例如 bindplane-ingest)。
    • 「服務帳戶說明」:輸入說明 (例如 Bindplane agent log ingestion)。
  5. 點按「Create and continue」(建立並繼續)。
  6. 在「將專案存取權授予這個服務帳戶」部分,按一下「選取角色」,然後選取「Chronicle 編輯者」。
  7. 依序點選「繼續」和「完成」。
  8. 按一下您建立的服務帳戶,然後前往「金鑰」分頁標籤。
  9. 依序點選「新增金鑰」>「建立新的金鑰」。
  10. 選取「JSON」,然後按一下「建立」。金鑰檔案會下載到電腦。
  11. 將金鑰檔案儲存為 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,使其與儲存路徑相符。
  12. 依序前往「IAM 與管理」>「設定」,然後複製「專案編號」。匯出工具設定時會用到。

方法 2:下載擷取驗證檔案 (舊版)

  1. 登入 Google SecOps 控制台。
  2. 依序前往「SIEM Settings」 > 「Collection Agents」。
  3. 下載擷取驗證檔案。
  4. 將檔案安全地儲存在要安裝 Bindplane 代理程式的系統上。

取得 Google SecOps 客戶 ID

  1. 登入 Google SecOps 控制台。
  2. 依序前往「SIEM 設定」 > 「設定檔」。
  3. 複製並儲存「機構詳細資料」部分的客戶 ID。

安裝 Bindplane 代理程式

請按照下列操作說明,在 Windows 或 Linux 作業系統上安裝 Bindplane 代理程式。

Windows 安裝

  1. 以管理員身分開啟「命令提示字元」或「PowerShell」。
  2. 執行下列指令:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    
  3. 等待安裝完成。

  4. 執行下列指令,確認安裝成功:

    sc query observiq-otel-collector
    

    服務應顯示為「RUNNING」。

安裝 Linux

  1. 開啟具有根層級或 sudo 權限的終端機。
  2. 執行下列指令:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    
  3. 等待安裝完成。

  4. 執行下列指令,確認安裝成功:

    sudo systemctl status observiq-otel-collector
    

    服務應顯示為「active (running)」。

其他安裝資源

如需其他安裝選項和疑難排解資訊,請參閱 Bindplane 代理程式安裝指南。

設定 Bindplane 代理程式,擷取系統記錄並傳送至 Google SecOps

找出設定檔

Linux:

sudo nano /opt/observiq-otel-collector/config.yaml

Windows:

notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"

編輯設定檔

將 config.yaml 的全部內容替換為下列設定:

receivers:
  udplog:
    listen_address: "0.0.0.0:514"

exporters:
  chronicle/fortiswitch:
    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: FORTINET_SWITCH
    raw_log_field: body
    ingestion_labels:
      env: production

service:
  pipelines:
    logs/fortiswitch_to_chronicle:
      receivers:
        - udplog
      exporters:
        - chronicle/fortiswitch

設定參數

替換下列預留位置:

接收器設定:

  • 接收器已設為監聽 UDP 通訊埠 514,接收來自 Fortinet Switch 的系統記錄訊息。
  • 如要監聽所有介面,請使用 0.0.0.0:514。
  • 如要在 Linux 上使用非特權通訊埠,請變更為 0.0.0.0:1514,並將 Fortinet Switch 設為傳送至通訊埠 1514。

Exporter 設定:

  • creds_file_path:服務帳戶 JSON 金鑰檔案的完整路徑 (選項 1):
    • Linux:/opt/observiq-otel-collector/ingestion-auth.json
    • Windows:C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
  • customer_id:上一步取得的客戶 ID。
  • location:將 <LOCATION> 替換為 Google SecOps 執行個體的區域 (例如 us、europe 或 asia-southeast1)。匯出工具會在這個值前面加上 chronicle.googleapis.com。如需完整清單,請參閱「區域性端點」。
  • project:將 <PROJECT_NUMBER> 替換為「IAM 與管理」>「設定」中的專案編號。
  • endpoint:維持設為 chronicle.googleapis.com。
  • log_type:必須是 FORTINET_SWITCH。
  • ingestion_labels:YAML 格式的選用標籤 (例如 env: production)。

舊版擷取 API 匯出工具

  • 如果您使用選項 2 的擷取驗證檔案,請將 exporters 區塊替換為下列內容。將 creds_file_path 設為擷取驗證檔案的路徑。如果執行個體位於美國境外,請將 malachiteingestion-pa.googleapis.com 替換為區域端點 (例如 europe-malachiteingestion-pa.googleapis.com)。

    exporters:
      chronicle/fortiswitch:
        compression: gzip
        creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json'
        customer_id: 'YOUR_CUSTOMER_ID'
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: FORTINET_SWITCH
        raw_log_field: body
        ingestion_labels:
          env: production
    

儲存設定檔

編輯完畢後,請儲存檔案:

  • Linux:依序按下 Ctrl+O、Enter 和 Ctrl+X。
  • Windows:依序點選「檔案」 > 「儲存」。

重新啟動 Bindplane 代理程式,套用變更

  • Linux

    sudo systemctl restart observiq-otel-collector
    
    1. 確認服務是否正在執行:

      sudo systemctl status observiq-otel-collector
      
    2. 查看記錄檔是否有錯誤:

      sudo journalctl -u observiq-otel-collector -f
      
  • Windows

    選擇下列任一選項:

    • 以管理員身分使用命令提示字元或 PowerShell:

      net stop observiq-otel-collector && net start observiq-otel-collector
      
    • 使用「服務」控制台:

      1. 按下 Win+R 鍵,輸入 services.msc,然後按下 Enter 鍵。
      2. 找出「observIQ OpenTelemetry Collector」。
      3. 按一下滑鼠右鍵,然後選取「重新啟動」。

      4. 確認服務正在執行:

        sc query observiq-otel-collector
        
      5. 查看記錄檔是否有錯誤:

        type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
        

設定 Fortinet Switch syslog 轉送

設定 Fortinet Switch,將記錄傳送至 Bindplane 代理。設定步驟會因交換器是獨立式或由 FortiGate 管理而有所不同。

獨立 FortiSwitch (GUI 設定)

  1. 登入 FortiSwitch 網頁介面。
  2. 依序前往「記錄」>「設定」。
  3. 在「Syslog」下方,選取「啟用」。
  4. 選取要記錄的事件嚴重性 (例如「資訊」或更高等級)。
  5. 在「伺服器」欄位中,輸入 Bindplane 代理程式主機的 IP 位址或完整網域名稱。
  6. 在「Port」(通訊埠) 欄位中,輸入 514 (或 Bindplane 代理程式中設定的通訊埠)。
  7. 在「Facility」(設施) 下拉式選單中,選取「local7」。
  8. 按一下「套用」。

適用於獨立 FortiSwitch (CLI 設定)

  1. 透過 SSH 或控制台登入 FortiSwitch CLI。
  2. 輸入下列指令:

    config log syslogd setting
        set status enable
        set server <BINDPLANE_AGENT_IP>
        set port 514
        set facility local7
    end
    
    config log syslogd filter
        set severity information
    end
    

    將 <BINDPLANE_AGENT_IP> 替換為 Bindplane 代理程式主機的 IP 位址。

  3. 驗證設定:

    show log syslogd setting
    

適用於 FortiGate 管理的 FortiSwitch

如果 FortiSwitch 是由 FortiGate 管理,請透過 FortiGate CLI 設定系統記錄轉送。

  1. 透過 SSH 或控制台登入 FortiGate CLI。
  2. 輸入下列指令,為受管理的 FortiSwitch 設定遠端系統記錄:

    config switch-controller remote-log
        edit "chronicle-syslog"
            set status enable
            set server <BINDPLANE_AGENT_IP>
            set port 514
            set severity information
            set facility local7
        next
    end
    

    將 <BINDPLANE_AGENT_IP> 替換為 Bindplane 代理程式主機的 IP 位址。

  3. 驗證設定:

    show switch-controller remote-log
    
  4. 確認 FortiGate 防火牆政策允許 syslog 流量從 FortiLink 介面傳送至 Bindplane 代理程式所在的介面。視需要建立政策:

    config firewall policy
        edit 0
            set srcintf <fortilink_interface>
            set dstintf <bindplane_interface>
            set srcaddr "all"
            set dstaddr "all"
            set action accept
            set schedule "always"
            set service "SYSLOG"
        next
    end
    

    將 <fortilink_interface> 替換為 FortiLink 介面名稱,並將 <bindplane_interface> 替換為可連上 Bindplane 代理程式的介面。

UDM 對應表

記錄欄位 UDM 對應 邏輯
metadata.event_type 這筆記錄代表的事件類型。
事件 metadata.product_event_type 產品回報的事件類型。
log_id metadata.product_log_id 產品指派的記錄項目專屬 ID。
device_id principal.asset.asset_id 資產的專屬 ID。
devname principal.asset.hostname 與主體相關聯的資產主機名稱。
devname principal.hostname 與主體相關聯的主機名稱。
vd principal.user.attribute.labels 與使用者相關聯的標籤清單。
oldrole principal.user.attribute.roles 與使用者相關聯的角色清單。
單位 principal.user.role_description 使用者角色的說明。
使用者 principal.user.userid 使用者的專屬 ID。
動作 security_result.action_details 所採取動作的詳細資料。
msg security_result.description 安全性結果的說明。
type, subtype, switch.physical-port, instanceid security_result.detection_fields 用於偵測的欄位清單。
pri security_result.priority_details 事件優先順序的詳細資料。
狀態 security_result.summary 安全結果摘要。
newrole target.user.attribute.roles 與目標使用者相關聯的角色清單。
metadata.product_name 產生事件的產品名稱。
metadata.vendor_name 產品製造商的名稱。

變更記錄

查看這個剖析器的變更記錄

還有其他問題嗎?向社群成員和 Google SecOps 專家尋求解答。