安裝及設定轉送站

支援的服務:

本文說明如何使用 Docker,在 Linux 和 Windows 系統上安裝及設定 Google Security Operations 轉寄站。

轉送站是一種軟體元件,可安裝在網路中的機器或裝置 (例如伺服器) 上。它會收集記錄資料,並將資料轉送至 Google SecOps 執行個體。

您可以使用轉寄站,直接將環境中的記錄傳送至 Google SecOps,不支援的記錄類型則不需要雲端 bucket 或第三方 API。轉送工具是立即可用的解決方案,不需手動與擷取 API 整合。

Google SecOps 提供 Docker 容器,可安全部署轉寄站。您可以在實體或虛擬機器上執行及管理 Docker 容器。

系統需求

以下是一般建議。如需針對您系統的建議,請與 Google SecOps 支援團隊聯絡。

Linux 系統

轉寄站支援多種 Linux 發行版,例如 Debian、Ubuntu、Red Hat 和 Suse。為達到最佳效能,請務必使用 Docker 20.10.21 以上版本。

  • RAM:Google SecOps 接受擷取的每種收集資料類型,都需要 1 GB 的 RAM。舉例來說,如果您指定四個不同的收集器,則需要 4 GB RAM 才能收集這四個收集器的資料。

  • CPU:兩個 CPU 足以處理所有資料類型,每秒最多可處理 10,000 個事件 (EPS)。如果預期轉送站每秒處理的事件數超過 10,000 個,請分配四到六個 CPU。

  • 磁碟:無論轉寄站處理多少資料,建議使用 20 GB 的磁碟空間。

Windows 系統

轉寄站支援 Microsoft Windows Server 2022。為達到最佳效能,請務必使用 Docker 20.10.21 以上版本。

  • RAM:Google SecOps 接受擷取的每種收集資料類型,都需要 1.5 GB 的 RAM。舉例來說,如果您指定四個不同的收集器,則需要 6 GB RAM 才能收集這四個收集器的資料。

  • CPU:兩個 CPU 足以處理所有資料類型,每秒最多可處理 10,000 個事件 (EPS)。如果預期轉送站每秒處理的事件數超過 10,000 個,請分配四到六個 CPU。

  • 磁碟:無論轉寄站處理多少資料,建議使用 20 GB 的磁碟空間。

事前準備

開始導入轉寄站之前,請考量下列事項。

Google IP 位址範圍

設定轉寄站時,您可能需要調整防火牆設定,包括指定 IP 位址範圍。Google API 和服務使用的預設網域 IP 範圍是動態分配,且經常變更。詳情請參閱「取得 Google IP 位址範圍」。

驗證防火牆設定

如果轉送站容器在防火牆或經過驗證的 Proxy 後方執行,請將下列主機的傳出存取權授予:

連線類型 目的地 通訊埠
TCP malachiteingestion-pa.googleapis.com 443
TCP asia-northeast1-malachiteingestion-pa.googleapis.com 443
TCP asia-south1-malachiteingestion-pa.googleapis.com 443
TCP asia-southeast1-malachiteingestion-pa.googleapis.com 443
TCP australia-southeast1-malachiteingestion-pa.googleapis.com 443
TCP eu-chronicle.googleapis.com 443
TCP europe-malachiteingestion-pa.googleapis.com 443
TCP europe-west2-malachiteingestion-pa.googleapis.com 443
TCP europe-west3-malachiteingestion-pa.googleapis.com 443
TCP europe-west6-malachiteingestion-pa.googleapis.com 443
TCP europe-west9-malachiteingestion-pa.googleapis.com 443
TCP europe-west12-malachiteingestion-pa.googleapis.com 443
TCP me-central1-malachiteingestion-pa.googleapis.com 443
TCP me-central2-malachiteingestion-pa.googleapis.com 443
TCP me-west1-malachiteingestion-pa.googleapis.com 443
TCP northamerica-northeast2-malachiteingestion-pa.googleapis.com 443
TCP southamerica-east1-malachiteingestion-pa.googleapis.com 443
TCP accounts.google.com 443
TCP gcr.io 443
TCP cloud.google.com/artifact-registry 443
TCP oauth2.googleapis.com 443
TCP www.googleapis.com 443
TCP storage.googleapis.com 443

規劃導入作業

開始設定轉寄站之前,請先規劃導入作業。這有助於您根據安全性目標、基礎架構功能和擴充性需求,調整資料來源和設定屬性。

決定要擷取的資料

從下列選項中,找出最適合轉送器的資料來源:

  • Splunk:如果您已使用 Splunk 管理記錄,這個選項最適合。

  • Syslog:適用於各種裝置的系統和應用程式記錄。

  • 檔案:可彈性擷取任何記錄檔。

  • 封包:擷取原始流量,深入掌握網路。

  • Kafka:適合從分散式系統匯總大量即時記錄。

  • WebProxy:適合用於深入分析網站流量和使用者行為。

限制

資料動態饋給的記錄行大小上限為 4 MB。

決定設定

安裝轉寄站前,請先確認下列重要屬性,確保能順利導入。

資料壓縮

將記錄檔轉移至 Google SecOps 時,壓縮資料或記錄檔可減少網路頻寬消耗。但可能會導致 CPU 使用率增加。節省頻寬和 CPU 使用率之間的最佳平衡點取決於多項因素,例如記錄類型、資料可壓縮性、可用的 CPU 資源,以及網路頻寬限制。

舉例來說,文字記錄通常能有效壓縮,並在 CPU 使用率低的情況下大幅節省頻寬,而加密或二進位資料可能無法有效壓縮,且可能導致 CPU 使用率較高。

記錄壓縮功能預設為停用。請根據您的特定環境和記錄資料性質,評估取捨。

磁碟緩衝

建議啟用磁碟緩衝功能。磁碟緩衝功能可讓您將待處理的訊息暫存至磁碟,而非記憶體,防止轉送站或主機當機時遺失資料。不過,啟用磁碟緩衝功能可能會影響效能。

如果停用磁碟緩衝,轉送站會為每種記錄類型 (例如每個連接器) 分配 1 GB 的記憶體 (RAM)。磁碟緩衝處理的記憶體容量上限為 4 GB。

規則運算式篩選器

規則運算式篩選器可讓您使用 RE2 語法,根據原始記錄資料評估模式。每個篩選器都必須包含規則運算式,並可視需要定義比對成功時的行為。

任意標籤

標籤用於透過鍵/值組合,將自訂中繼資料附加至記錄。您可以為整個轉寄站或轉寄站的特定收集器設定標籤。如果兩者都存在,且鍵重疊,收集器層級標籤會覆寫轉送器層級標籤。

命名空間

您可以使用命名空間標籤,識別來自不同網路區段的記錄,並解決 IP 位址重疊的情況。您可以為整個轉寄站或轉寄站內的特定收集器設定命名空間標籤。如果兩者都存在,收集器層級的命名空間會覆寫轉寄站層級的命名空間。

記錄類型

Google SecOps 支援多種記錄類型。如需完整清單,請參閱「支援的資料集」。

負載平衡和高可用性選項

負載平衡僅支援 syslog 收集類型。

轉寄站可部署在資料來源和轉寄站執行個體之間,安裝第 4 層負載平衡器的環境。這樣一來,您就能將記錄收集作業分配給多個轉送站,並在發生故障時將記錄重新導向至其他轉送站,提高可靠性。

轉送站內建 HTTP 伺服器,可回應負載平衡器的健康狀態檢查,並防止在啟動和關閉期間遺失記錄。您可以設定 HTTP 伺服器、負載平衡和高可用性選項,指定健康狀態檢查的逾時時間長度和狀態碼。這項設定與容器型部署和負載平衡器相容。

設定 說明
正常逾時 轉送站傳回 unready 狀態,回應健康狀態檢查後,接受新連線的時間長度。這也是收到停止信號到實際開始關閉伺服器之間的等待時間。這樣負載平衡器就有時間從集區中移除轉送器。

有效值的單位為秒。舉例來說,如要指定 10 秒,請輸入 10.。 不得輸入小數值。

預設:15 秒
排除逾時時間 轉送站等待活動連線自行關閉的時間長度,超過這個時間後,伺服器會關閉連線。舉例來說,如要指定 5 秒,請輸入 5.。不得使用小數值。

預設值:10 秒
通訊埠 HTTP 伺服器監聽負載平衡器健康狀態檢查的通訊埠編號。值必須介於 1,024 至 65,535 之間。

預設值: 8080
IP 位址或主機名稱 伺服器應監聽的 IP 位址或可解析為 IP 位址的主機名稱。

預設值:0.0.0.0 (本機系統)
讀取逾時 用於調整 HTTP 伺服器。通常不需要變更預設設定。讀取整個要求 (包括標頭和主體) 的時間上限。您可以同時設定「read timeout」(讀取逾時) 欄位和「read header timeout」(讀取標頭逾時) 欄位。

預設值:3 秒
讀取標頭逾時 用於調整 HTTP 伺服器。通常不需要變更預設設定。讀取要求標頭的時間上限。讀取標頭後,系統會重設連線的讀取期限。

預設值:3 秒
寫入逾時 用於調整 HTTP 伺服器。通常不需要變更預設設定。傳送回應的時間上限。讀取新的要求標頭時,系統會重設這個值。

預設值:3 秒
閒置逾時 用於調整 HTTP 伺服器。通常不需要變更預設設定。啟用閒置連線時,等待下一個要求的時間上限。如果閒置逾時欄位設為零,系統會使用讀取逾時欄位的值。如果兩者皆為零,則會使用「read header timeout」(讀取標頭逾時) 欄位。

預設值:3 秒
可用的狀態碼 轉送器收到有效性檢查且可用時,會傳回的狀態碼。容器排程器和自動調度管理工具通常會傳送運作狀態檢查。

預設值:204
就緒狀態碼 轉送器準備好在下列任一情況下接受流量時,傳回的狀態碼:
  • 從容器排程器或自動調度管理工具收到就緒檢查。
  • 收到負載平衡器的健康狀態檢查。
預設值:204
未就緒狀態碼 轉送器尚未準備好接受流量時,傳回的狀態碼。

預設值:503

步驟 1:定義轉寄站設定

每個部署的轉送站都需要轉送站設定檔。轉寄站設定檔會指定將資料轉移至 Google SecOps 執行個體的設定。建議您為每個主機產生新的設定檔,以便清楚區分與各主機相關聯的收集器。

Google Cloud 會使用每個轉送站執行個體的特定中繼資料,自訂這些設定檔。您可以根據特定需求修改這些檔案,並加入要擷取的記錄類型詳細資料。

您可以透過 UI、API 或手動產生轉寄站設定檔。

  • 使用者介面提供圖形介面,可用於設定轉寄站,也是建立轉寄站設定的建議方法。這是最簡單的入門方式,不需要任何程式設計。如要使用 Google SecOps 使用者介面下載設定檔,請參閱「透過 Google SecOps UI 管理轉寄站設定」。

  • 這個 API 可讓您透過程式輔助方式設定轉寄站。如要透過程式輔助方式下載轉送站設定,請參閱「Forwarder Management API」。

  • 您可以手動建立設定檔,並在其中加入設定選項。建議您使用 UI 方法產生設定檔,確保準確度並盡可能減少潛在錯誤。如要手動產生檔案,請參閱「手動管理轉寄站設定檔」。

步驟 2:安裝 Docker

本節說明如何在系統上安裝 Docker。

Docker 對 Artifact Registry 的驗證機制

安裝 Docker 時,您必須驗證 Docker。您可以使用 Google Cloud CLI 指令列介面 (CLI) 驗證 Docker,或在 VM 中建立新的服務帳戶 JSON (如果無法安裝 Google Cloud CLI (指令列介面))。

方法一:使用 Google Cloud CLI 指令列介面 (CLI)

執行下列指令,驗證 Docker:

gcloud auth configure-docker gcr.io

方法二:在虛擬機器 (VM) 中建立並下載新的服務帳戶 JSON。

如果無法安裝 Google Cloud CLI (指令列介面),請使用這個方法。

執行下列指令,驗證 Docker:

cat key.json | docker login -u _json_key --password-stdin https://gcr.io

如要進一步瞭解其他 Docker 驗證方法,請參閱「為 Docker 設定 Artifact Registry 驗證機制」。

Linux 系統

Docker 是開放原始碼,所有必要說明文件都可從開放原始碼 Docker 社群取得。如需 Docker 安裝操作說明,請參閱「安裝 Docker Engine」。

如要確認系統是否已正確安裝 Docker,請執行下列指令 (需要進階權限):

   docker ps
  

如果看到以下回應,表示 Docker 已正確安裝:

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

Windows 系統

請按照下列步驟,以管理員權限啟動 Windows PowerShell,並檢查與 Google Cloud 的網路連線:

  1. 按一下「啟動」。

  2. 輸入 PowerShell,然後在「Windows PowerShell」上按一下滑鼠右鍵。

  3. 按一下「以管理員身分執行」。

  4. 執行下列指令:

    C:\> test-netconnection <host> -port <port>

    指令輸出內容指出 TcpTestSucceeded 狀態為 true。

    範例:

    C:\> test-netconnection malachiteingestion-pa.googleapis.com -port 443
    ComputerName     :  malachiteingestion-pa.googleapis.com
    RemoteAddress    : 198.51.100.1
    RemotePort       : 443
    InterfaceAlias   : Ethernet
    SourceAddress    : 203.0.113.1
    TcpTestSucceeded : True
    

如要安裝 Docker,請在 Windows 伺服器上執行下列操作。

  1. 啟用 Microsoft Windows 容器功能:

    Install-WindowsFeature containers -Restart

  2. 在 PowerShell 系統管理員模式中執行下列指令,安裝 Docker CE:

    Invoke-WebRequest -UseBasicParsing "https://raw.githubusercontent.com/microsoft/Windows-Containers/Main/helpful_tools/Install-DockerCE/install-docker-ce.ps1" -o install-docker-ce.ps1
    
    .\install-docker-ce.ps1
    
  3. 執行 docker ps 指令,測試 Docker 指令列介面。這個指令會傳回執行中容器的清單。如果未正確安裝 Docker,系統會顯示錯誤。

    詳情請參閱「入門指南:為容器準備 Windows」。

    如要部署企業版,請安裝 Mirantis Container Runtime (又稱為 Docker EE)。

步驟 3:安裝轉寄站

本節說明如何使用 Docker 容器安裝轉寄站。

步驟 3a:將設定檔移至轉寄站目錄

轉寄站安裝程序的第一步,是將必要的設定檔放入指定的轉寄站目錄。

Linux 系統

請按照下列步驟,將設定檔放入轉寄站目錄:

  1. 使用終端機連線至 Linux 轉寄站主機。

  2. 將目錄變更為執行 Docker 容器的主目錄。

  3. 建立目錄,用於儲存轉寄站設定檔。

      mkdir /opt/chronicle/'CONFIG'
    

    您可以將目錄名稱 CONFIG 替換成任何名稱。執行 docker run 指令時,請務必使用相同的目錄名稱。

  4. 變更目錄。

      cd /opt/chronicle/config
    

  5. 檔案轉移完成後,請確認設定檔位於 /opt/chronicle/config 目錄中。

      ls -l
    

Windows 系統

建立 C:\config 資料夾,並將設定檔放入其中。您可以將資料夾名稱 config 替換為任何名稱。執行 docker run 指令時,請務必使用相同的資料夾名稱。

Step 3b: Run the forwarder

將設定檔放入指定的轉寄站目錄後,即可啟動轉寄站,或升級至最新版 Google SecOps 容器。

如要升級容器,請執行下列指令,清除先前的 Docker 執行作業。

      docker stop 'cfps'
    

      docker rm 'cfps'
    

在本例中,Docker 容器名稱為 cfps。

如要首次啟動轉寄站,或升級至最新版 Google SecOps 容器,請按照下列步驟操作:

  1. 從 Google Cloud取得最新的 Docker 映像檔:

    Linux 系統:

    docker pull gcr.io/chronicle-container/cf_production_stable

    Windows 系統:

    docker pull gcr.io/chronicle-container/cf_production_stable_windows

  2. 從 Docker 容器啟動轉寄站:

    Linux 系統:

      docker run \
      --detach \
      --name cfps \
      --restart=always \
      --log-opt max-size=100m \
      --log-opt max-file=10 \
      --net=host \
      -v /opt/chronicle/config:/opt/chronicle/external \
      gcr.io/chronicle-container/cf_production_stable
    

    (Linux 系統選用) 從 Docker 容器啟動轉送站時,您可以選擇從 /var/log/ 掛接特定子目錄。
    如要掛接特定子目錄,請在指令中加入下列程式碼,並將 <parser-name> 預留位置替換成主機系統上要收集記錄檔的目錄名稱:

      -v /var/log/<parser-name>:/opt/chronicle/edr \
    

    Linux 系統 (包括掛接特定子目錄的選項):

    `docker run \
    --detach \
    --name cfps \
    --restart=always \
    --log-opt max-size=100m \
    --log-opt max-file=10 \
    --net=host \
    -v /opt/chronicle/config:/opt/chronicle/external \
    -v /var/log/<parser-name>:/opt/chronicle/edr \
    gcr.io/chronicle-container/cf_production_stable`
    

    Windows 系統:

      docker run `
        --detach `
        --name cfps `
        --restart=always `
        --log-opt max-size=100m `
        --log-opt max-file=10 `
        -p 0.0.0.0:10515-10520:10515-10520/udp `
        -v C:\config\:C:/opt/chronicle/external `
        gcr.io/chronicle-container/cf_production_stable_windows
    

--log-opt 選項適用於 Docker 1.13 以上版本。這些選項會限制容器記錄檔的大小,只要您使用的 Docker 版本支援這些選項,就必須使用。

管理轉寄站

下列各節提供管理轉寄站的指南。

查看轉寄站記錄

  • 如要查看轉寄站記錄,請執行下列指令:

    docker logs cfps
    
  • 如要查看記錄檔的儲存路徑,請執行下列指令:

    docker inspect --format='{{.LogPath}}' CONTAINER_NAME
    
  • 執行下列指令,查看即時執行記錄:

    docker logs cfps -f
    
  • 如要將記錄儲存在檔案中,請執行下列指令:

    docker logs cfps &> logs.txt
    

解除安裝轉送站

下列 Docker 指令可協助您停止、解除安裝或移除轉寄站。

  • 如要停止或解除安裝轉寄站容器,請執行下列指令:

    docker stop cfps
    
  • 如要移除轉寄站容器,請執行下列指令:

    docker rm cfps
    

更新轉寄站

轉寄站由兩個元件組成,每個元件的更新程序如下:

  • 轉寄站套件:這個元件會自動更新,不需要重新啟動。

  • 轉寄站 Docker 映像檔:這個元件需要手動更新。您必須停止目前的轉寄站執行個體,並啟動新的執行個體,如步驟 3b 所述。

特定資料集的轉寄站擷取指南

如要瞭解如何使用轉送站擷取特定資料集,請參閱下列內容:

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