安裝及設定轉送站
本文說明如何使用 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 個 EPS,請分配四到六個 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 個 EPS,請分配四到六個 CPU。
磁碟:建議使用 20 GB 的磁碟空間,無論轉送器處理多少資料都一樣。
事前準備
開始導入轉送器之前,請先考量下列事項。
Google IP 位址範圍
設定轉送器時,您可能需要調整防火牆設定,包括指定 IP 位址範圍。Google API 和服務使用的預設網域 IP 範圍是動態分配,且經常變動。詳情請參閱「取得 Google IP 位址範圍」。
驗證防火牆設定
如果轉送器容器位於任何防火牆或已驗證的 Proxy 後方,您需要開放下列主機的存取權:
連線類型 | 目標位置 | Port (通訊埠) |
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 | 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 | 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 支援多種記錄類型。如需完整清單,請參閱「支援的資料集」。
負載平衡和高可用性選項
負載平衡僅支援系統記錄收集類型。
轉送器可部署在環境中,其中第 4 層負載平衡器安裝在資料來源和轉送器執行個體之間。這樣一來,您就能將記錄檔收集作業分配給多個轉送器,並在發生故障時將記錄檔重新導向至其他轉送器,藉此提升可靠性。
轉送器內建 HTTP 伺服器,可回應負載平衡器的健康狀態檢查,並防止啟動和關閉期間發生記錄檔遺失情形。您可以設定 HTTP 伺服器、負載平衡和高可用性選項,指定健康狀態檢查的逾時時間和狀態碼。這項設定與容器型部署作業和負載平衡器都相容。
設定 | 說明 |
---|---|
安全逾時 | 轉送器在回應健康狀態檢查時傳回 unready 狀態後,接受新連線的時間長度。這也是從收到停止訊號到實際開始關閉伺服器之間等待的時間。這樣負載平衡器就有時間從集區中移除轉送器。有效值以秒為單位。舉例來說,如要指定 10 秒,請輸入 10. 。系統不允許使用十進位值。預設值:15 秒 |
排除逾時時間 | 轉送站等待有效連線自行關閉的時間長度,之後伺服器就會關閉連線。舉例來說,如要指定 5 秒,請輸入 5. 。不允許使用十進位值。預設值:10 秒 |
Port (通訊埠) | HTTP 伺服器監聽的通訊埠編號,用於接收負載平衡器的健康狀態檢查。這個值必須介於 1,024 至 65,535 之間。 預設值: 8080 |
IP 位址或主機名稱 | 伺服器應接聽的 IP 位址或可解析為 IP 位址的主機名稱。 預設值:0.0.0.0 (本機系統) |
讀取逾時 | 用於調整 HTTP 伺服器。通常不需要變更預設設定。讀取整個要求 (包括標頭和主體) 的時間上限。您可以同時設定讀取逾時欄位和讀取標頭逾時欄位。 預設值:3 秒 |
讀取標頭逾時 | 用於調整 HTTP 伺服器。通常不需要變更預設設定。讀取要求標頭的時間上限。讀取標頭後,連線的讀取期限會重設。 預設值:3 秒 |
寫入逾時 | 用於調整 HTTP 伺服器。通常不需要變更預設設定。傳送回應的時間上限。讀取新的要求標頭時,系統會重設這個值。 預設值:3 秒 |
閒置逾時 | 用於調整 HTTP 伺服器。通常不需要變更預設設定。啟用閒置連線時,等待下一個要求的時間上限。如果 idle timeout 欄位設為零,系統會使用 read timeout 欄位的值。如果兩者皆為零,系統會使用「讀取標頭逾時」 欄位。 預設值:3 秒 |
可用狀態碼 | 轉送器收到即時檢查要求且可用時,傳回的狀態碼。容器排程器和協調器通常會傳送即時檢查。 預設值:204 |
「準備就緒」狀態碼 | 轉送器在下列任一情況下準備好接受流量時,傳回的狀態碼:
|
未就緒狀態碼 | 轉送器未準備好接受流量時傳回的狀態碼。 預設值:503 |
步驟 1:定義轉寄者設定
每個已部署的轉送器都需要轉送器設定檔。轉送器設定檔會指定將資料轉移至 Google SecOps 執行個體的設定。建議您為每個主機產生新的設定檔,清楚區分與各主機相關聯的收集器。
Google Cloud 會使用每個轉送器執行個體的特定中繼資料,自訂這些設定檔。您可以修改這些檔案,以符合特定需求,並納入要擷取的記錄類型詳細資料。
您可以透過使用者介面、API 或手動方式產生轉送器設定檔。
使用者介面提供圖形介面,可設定轉寄站,建議使用這個方法建立轉寄站設定。這是最簡單的入門方式,不需要任何程式設計知識。如要使用 Google SecOps 使用者介面下載設定檔,請參閱「透過 Google SecOps 使用者介面管理轉送器設定」。
API 提供以程式輔助方式設定轉寄站的方法。如要透過程式下載轉送站設定,請參閱 Forwarder Management API。
您可以手動建立設定檔,並在其中新增設定選項。建議使用 UI 方法產生設定檔,確保準確度並盡量減少潛在錯誤。如要手動產生檔案,請參閱「手動管理轉送器設定檔」。
步驟 2:安裝 Docker
本節說明如何在系統上安裝 Docker。
使用 Artifact Registry 進行 Docker 驗證
安裝 Docker 時,您必須驗證 Docker。您可以使用 Google Cloud CLI 指令列介面 (CLI) 驗證 Docker,或是無法安裝 Google Cloud CLI (指令列介面) 時,在 VM 中建立新的服務帳戶 JSON。
方法一:使用 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 的網路連線:
按一下「啟動」。
輸入
PowerShell
,然後在「Windows PowerShell」上按一下滑鼠右鍵。按一下「以系統管理員身分執行」。
執行下列指令:
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 伺服器上執行下列操作。
啟用 Microsoft Windows 容器功能:
Install-WindowsFeature containers -Restart
以 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
執行
docker ps
指令,測試 Docker 指令列介面,這個指令會傳回執行中容器的清單。如果 Docker 未正確安裝,系統會顯示錯誤。詳情請參閱「開始使用:準備 Windows 容器」。
如要進行企業部署,請安裝 Mirantis Container Runtime,也就是 Docker EE。
步驟 3:安裝轉送器
本節說明如何使用 Docker 容器安裝轉送器。
步驟 3a:將設定檔移至轉送器目錄
轉送器安裝程序的第一步,是將必要的設定檔放在指定的轉送器目錄中。
Linux 系統
請按照下列步驟,將設定檔放在轉送器目錄中:
使用終端機連線至 Linux 轉送主機。
將目錄變更為執行 Docker 容器的主目錄。
建立目錄來儲存轉送器設定檔。
mkdir /opt/chronicle/'CONFIG'
您可以將目錄名稱
CONFIG
替換成任何名稱。請務必在執行docker run
指令時使用相同的目錄名稱。變更目錄。
cd /opt/chronicle/config
檔案轉移完成後,請確認設定檔位於
/opt/chronicle/config
目錄中。ls -l
Windows 系統
建立 C:\config
資料夾,並將設定檔放在其中。您可以將資料夾名稱 config
替換為任何名稱。請務必在執行 docker run
指令時使用相同的資料夾名稱。
步驟 3b:執行轉送器
將設定檔放在指定的轉送器目錄後,您就可以啟動轉送器,或升級至最新版的 Google SecOps 容器。
如要升級容器,請執行下列指令,清除先前的 Docker 執行作業。
docker stop 'cfps'
docker rm 'cfps'
在本範例中,Docker 容器名稱為 cfps
。
如要首次啟動轉送器,或升級至最新版 Google SecOps 容器,請按照下列步驟操作:
從 Google Cloud取得最新 Docker 映像檔:
Linux 系統:
docker pull gcr.io/chronicle-container/cf_production_stable
Windows 系統:
docker pull gcr.io/chronicle-container/cf_production_stable_windows
從 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 -v /var/log/<parser-name>:/opt/chronicle/edr \
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 所述。
特定資料集的轉送器擷取指南
如要瞭解如何使用轉送器擷取特定資料集,請參閱下列文章:
- 安裝 Carbon Black Event Forwarder
- 收集 Cisco ASA 防火牆記錄
- 收集 Corelight Sensor 記錄
- 收集 Fluentd 記錄
- 收集 Linux auditd 和 Unix 系統記錄
- 收集 Microsoft Windows AD 資料
- 收集 Microsoft Windows DHCP 資料
- 收集 Microsoft Windows DNS 資料
- 收集 Microsoft Windows 事件資料
- 收集 Microsoft Windows Sysmon 資料
- 收集 osquery 記錄
- 收集 OSSEC 記錄
- 收集 Palo Alto Networks 防火牆記錄
- 收集 Splunk 通用資訊模型 (CIM) 記錄
- 收集 Zeek 記錄
還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求答案。