進階記錄收集器管理
本文說明如何設定雲端探索記錄收集器 Defender for Cloud Apps 進階選項。
Defender for Cloud Apps 雲端探索會繼續著重於基礎防火牆格式。 在防火牆層級轉送的記錄變更可能無法繼續運作,或可能會造成剖析問題。 如果您發現此類錯誤,建議您繼續使用基底防火牆格式,或使用選項搭配自定義記錄收集器。 如需詳細資訊,請 參閱使用自定義記錄剖析器。
本文說明如何修改 Defender for Cloud Apps 雲端探索 Docker 的組態。
修改記錄收集器 FTP 組態
請使用下列各節中的這些步驟來修改 Defender for Cloud Apps 雲端探索 Docker 的組態。
確認記錄收集器版本
若要確認目前安裝在系統上的記錄收集器版本,請連線到記錄收集器主機並執行:
cat /var/adallom/versions | grep columbus-
變更 FTP 密碼
此程式描述如何變更用來存取記錄收集器檔案的密碼:
線上到記錄收集器主機並執行:
docker exec -it <collector name> pure-pw passwd <ftp user>
輸入您的新密碼,然後再次輸入以確認。
執行下列命令以套用變更:
docker exec -it <collector name> pure-pw mkdb
您應該能夠檢視下列內容:
run_logs
ssl_update
config.json
自定義憑證檔案
此程式描述如何自定義用於安全連線至 Cloud Discovery Docker 實例的憑證檔案。
開啟 FTP 用戶端並連線到記錄收集器主機。
瀏覽至目錄並
ssl_update
上傳新的憑證檔案,包括下列檔案:接收者類型 必要檔案 FTP - pure-ftpd.pem:包含密鑰和憑證數據 Syslog - ca.pem:用來簽署客戶端憑證的證書頒發機構單位憑證。
- server-key.pem 和 server-cert.pem:記錄收集器的憑證和密鑰
Syslog 訊息會透過 TLS 傳送至記錄收集器,這需要相互 TLS 驗證,包括驗證客戶端和伺服器憑證。檔名是必要的。 如果遺漏任何檔案,更新就會失敗。
在終端機視窗中,執行:
docker exec -t <collector name> update_certs
輸出看起來應該類似下列程式代碼:
root@DockerPlayground:~# docker exec -t columbus update_certs rsyslog: stopped rsyslog: started ftpd: stopped ftpd: started root@DockerPlayground:~#
在終端機視窗中,執行:
docker exec <collector name> chmod -R 700 /etc/ssl/private/
在 Proxy 後方啟用記錄收集器
如果您在 Proxy 後方執行,記錄收集器可能會在將數據傳送至 Defender for Cloud Apps 時發生問題。 例如,這可能是因為記錄收集器不信任 Proxy 的跟證書授權單位,而且無法連線到 Microsoft Defender for Cloud Apps 來擷取其設定或上傳接收的記錄。
下列程序說明如何在 Proxy 後方啟用記錄收集器。
提示
您可能也想要變更記錄收集器用於 Syslog 或 FTP 的憑證,或解決從防火牆和 Proxy 到記錄收集器的連線問題。 如需詳細資訊,請 參閱修改記錄收集器 FTP 組態。
在 Proxy 後方設定記錄收集器
請確定您已執行必要的步驟,在 Windows 或 Linux 電腦上執行 Docker,並已成功將 Defender for Cloud Apps Docker 映射下載到主電腦上。
如需詳細資訊, 請參閱設定連續報告的自動記錄上傳。
驗證 Docker 記錄收集器容器的建立
確認容器已建立且正在執行中。 在殼層中,執行:
docker ps
您應該會看到類似下列輸出的內容:
將 Proxy 根 CA 憑證複製到容器
從您的虛擬機,將 CA 憑證複製到 Defender for Cloud Apps 容器。 在下列範例中,容器名為 Ubuntu-LogCollector ,而CA憑證名為 Proxy-CA.crt。
下列命令會將憑證複製到執行中容器中的資料夾。 在 Ubuntu 主機上執行 命令:
docker cp Proxy-CA.crt Ubuntu-LogCollector:/var/adallom/ftp/discovery
設定組態以使用 CA 憑證
移至容器。 執行下列命令以在記錄收集器容器中開啟 bash:
docker exec -it Ubuntu-LogCollector /bin/bash
從容器內的 Bash 視窗,移至 Java
jre
資料夾。 若要避免版本相關的路徑錯誤,請使用下列命令:cd "$(find /opt/jdk/*/jre -name "bin" -printf '%h' -quit)" cd bin
將您稍早從 探索 資料夾複製的跟證書匯入 Java KeyStore,並定義密碼。
預設密碼為
changeit
。 如需詳細資訊,請 參閱變更 Java KeyStore 密碼。./keytool --import --noprompt --trustcacerts --alias SelfSignedCert --file /var/adallom/ftp/discovery/Proxy-CA.crt --keystore ../lib/security/cacerts --storepass <password>
確認憑證已正確匯入 CA 金鑰存放區。 執行下列命令來搜尋您在匯入 SelfSignedCert (期間提供的別名) :
./keytool --list --keystore ../lib/security/cacerts | grep self
您匯入的 Proxy CA 憑證隨即顯示。
限制將 syslog 訊息傳送至 Linux 上記錄收集器的 IP 位址
若要保護 Docker 映射,並確保只允許一個 IP 位址將 syslog 訊息傳送至記錄收集器,請在主電腦上建立 IP 資料表規則,以允許輸入流量,並根據部署來卸除透過特定埠的流量,例如 TCP/601 或 UDP/514。
下列命令示範如何建立可新增至主計算機的IP數據表規則範例。 此數據表規則允許IP位址1.2.3.4'透過TCP埠 601 連線到記錄收集器容器,並透過相同的埠卸除來自其他IP位址的所有其他連線。
iptables -I DOCKER-USER \! --src 1.2.3.4 -m tcp -p tcp --dport 601 -j DROP
設定要使用新組態執行的記錄收集器
容器現在已就緒。
使用您在建立記錄收集器期間使用的 API 令牌來執行 collector_config 命令。 例如:
當您執行命令時,請指定您自己的 API 令牌,例如 collector_config abcd1234abcd1234abcd1234abcd1234 ${CONSOLE} ${COLLECTOR}
例如:
記錄收集器現在可以與 Defender for Cloud Apps 通訊。 將數據傳送至 Defender for Cloud Apps 之後,記錄收集器的狀態會從 [狀況良好] 變更為 [已連線]。 例如:
注意事項
如果您必須更新記錄收集器的組態,例如,若要新增或移除數據源,您通常必須 刪除 容器,然後再次執行先前的步驟。
若要避免這種情況,您可以使用 Defender for Cloud Apps 入口網站中產生的新 API 令牌來重新執行collector_config工具。
變更 Java KeyStore 密碼
停止 Java KeyStore 伺服器。
在容器內開啟Bash殼層,然後移至 appdata/conf 資料夾。
若要變更伺服器 KeyStore 密碼,請執行:
keytool -storepasswd -new newStorePassword -keystore server.keystore -storepass changeit
預設伺服器密碼為
changeit
。若要變更憑證密碼,請執行:
keytool -keypasswd -alias server -keypass changeit -new newKeyPassword -keystore server.keystore -storepass newStorePassword
預設伺服器別名是 伺服器。
在文本編輯器中,開啟 server-install\conf\server\secured-installed.properties 檔案。 新增下列幾行程式代碼,然後儲存變更:
- 指定伺服器的新 Java KeyStore 密碼:
server.keystore.password=newStorePassword
- 指定伺服器的新憑證密碼:
server.key.password=newKeyPassword
- 指定伺服器的新 Java KeyStore 密碼:
啟動伺服器。
將記錄收集器移至Linux上的不同資料分割
許多公司都需要將數據移至個別的分割區。 此程式描述如何將 Defender for Cloud Apps Docker 記錄收集器映射移至 Linux 主機上的數據分割。
此程式描述如何將數據移至稱為 數據存放區的數據 分割,並假設您已掛接數據分割。 例如:
在Linux主機上新增和設定新的分割區不在本指南的範圍內。
若要將記錄收集器移至不同的分割區:
停止 Docker 服務。 跑:
service docker stop
將記錄收集器數據移至新的分割區。 跑:
mv /var/lib/docker /datastore/docker
移除 /var/lib/docker) (舊的 Docker 記憶體目錄,並建立 /datastore/docker) (新目錄的符號連結。 跑:
rm -rf /var/lib/docker && ln -s /datastore/docker /var/lib/
啟動 Docker 服務。 跑:
service docker start
選擇性地確認記錄收集器的狀態。 跑:
docker ps
檢查 Linux 上的記錄收集器磁碟使用量
此程式描述如何檢閱記錄收集器磁碟使用量和位置。
識別記錄收集器數據儲存所在目錄的路徑。 跑:
docker inspect <collector_name> | grep WorkDir
例如:
使用不含 「/work」 後綴的識別路徑,取得記錄收集器磁碟上的大小。 跑:
du -sh /var/lib/docker/overlay2/<log_collector_id>/
注意事項
如果您只需要知道磁碟上的大小,可以改用下列命令:
docker ps -s
將記錄收集器移至可存取的主機
在受管制的環境中,可能會封鎖對裝載記錄收集器映像之 Docker Hub 的存取。 這可防止 Defender for Cloud Apps 從記錄收集器匯入數據,而且可以解決將記錄收集器映像移至可存取主機的問題。
此程式描述如何使用可存取 Docker Hub 的計算機下載記錄收集器映射,並將其匯入目的地主機。
下載的映像可以匯入您的私人存放庫或直接在您的主機上。 此程式描述如何將記錄收集器映射下載到 Windows 計算機,然後使用 WinSCP 將記錄收集器移至目的地主機。
必要條件
請確定您已在主機上安裝 Docker。 例如,使用下列其中一個下載:
下載之後,請使用 Docker 的 離線安裝指南 來安裝您的作業系統。
從您的 Docker Hub 匯出記錄收集器映像
下列程序說明如何使用 Linux 或 Windows 匯出記錄收集器映像。
在 Linux 上匯出映像
在可存取 Docker Hub 的 Linux 電腦上,執行下列命令以安裝 Docker 並下載記錄收集器映射。
curl -o /tmp/MCASInstallDocker.sh https://adaprodconsole.blob.core.windows.net/public-files/MCASInstallDocker.sh && chmod +x /tmp/MCASInstallDocker.sh; /tmp/MCASInstallDocker.sh
匯出記錄收集器影像。 跑:
docker save --output /tmp/mcasLC.targ mcr.microsoft.com/mcas/logcollector chmod +r /tmp/mcasLC.tar
重要事項
請務必使用 輸出 參數寫入檔案,而不是 STDOUT。
使用 WinSCP 將記錄收集器映射下載到您的 Windows 電腦
C:\mcasLogCollector\
。 例如:
在 Windows 上匯出映像
在可存取 Docker Hub 的 Windows 10 計算機上,安裝 Docker Desktop。
下載記錄收集器映像。 跑:
docker login -u caslogcollector -p C0llector3nthusiast docker pull mcr.microsoft.com/mcas/logcollector
匯出記錄收集器影像。 跑:
docker save --output C:\mcasLogCollector\mcasLC.targ mcr.microsoft.com/mcas/logcollector
重要事項
請務必使用 輸出 參數寫入檔案,而不是 STDOUT。
將記錄收集器映像匯入並載入目的地主機
此程式描述如何將導出的映像傳輸到目的地主機。
將記錄收集器映像上傳至 下
/tmp/
方的目的地主機。 例如:在目的地主機上,將記錄收集器映射匯入 Docker 映像存放庫。 跑:
docker load --input /tmp/mcasLC.tar
例如:
選擇性地確認匯入已成功完成。 跑:
docker image ls
例如:
您現在可以使用來自目的地主機的映像,繼續 建立記錄收集器 。
為 Linux 上的記錄收集器定義 Syslog 和 FTP 接收器的自定義埠
有些組織需要定義 Syslog 和 FTP 服務的自定義埠。
當您新增數據源時,Defender for Cloud Apps 記錄收集器會使用特定埠號碼來接聽來自一或多個數據源的流量記錄。
下表列出接收者的預設接聽埠:
接收者類型 | 連接埠 |
---|---|
Syslog | * UDP/514 - UDP/51x * TCP/601 - TCP/60x |
FTP | * TCP/21 |
使用下列步驟來定義自訂埠:
在 Microsoft Defender 入口網站中,選取 [設定]。 然後選擇 [雲端應用程式]。
在 [Cloud Discovery] 底下,選取 [自動記錄上傳]。 然後選取 [ 記錄收集器] 索引標籤 。
在 [ 記錄收集器 ] 索引標籤上,新增或編輯記錄收集器,並在更新數據源之後,從對話框複製執行命令。 例如:
如果如所提供使用,精靈提供的命令會將記錄收集器設定為使用埠 514/udp 和 515/udp。 例如:
(echo <credentials>) | docker run --name LogCollector1 -p 514:514/udp -p 515:515/udp -p 21:21 -p 20000-20099:20000-20099 -e "PUBLICIP='10.0.0.100'" -e "PROXY=" -e "SYSLOG=true" -e "CONSOLE=machine.us2.portal.cloudappsecurity.com" -e "COLLECTOR=LogCollector1" --security-opt apparmor:unconfined --cap-add=SYS_ADMIN --restart unless-stopped -a stdin -i mcr.microsoft.com/mcas/logcollector starter
例如:
在主電腦上使用 命令之前,請先修改 命令以使用您的自定義埠。 例如,若要將記錄收集器設定為使用UDP埠414和415,請變更 命令,如下所示:
(echo <credentials>) | docker run --name LogCollector1 -p 414:514/udp -p 415:515/udp -p 21:21 -p 20000-20099:20000-20099 -e "PUBLICIP='10.0.0.100'" -e "PROXY=" -e "SYSLOG=true" -e "CONSOLE=machine.us2.portal.cloudappsecurity.com" -e "COLLECTOR=LogCollector1" --security-opt apparmor:unconfined --cap-add=SYS_ADMIN --restart unless-stopped -a stdin -i mcr.microsoft.com/mcas/logcollector starter
例如:
注意事項
只會修改 Docker 對應。 內部指派的埠不會變更,可讓您選擇主機上的任何接聽埠。
驗證 Linux 上記錄收集器所接收的流量和記錄格式
有時候,您可能需要調查下列問題:
- 記錄收集器正在接收數據:驗證記錄收集器正在從您的設備接收 Syslog 訊息,且未遭到防火牆封鎖。
- 接收的數據是正確的記錄格式:驗證記錄格式,藉由比較 Defender for Cloud Apps 預期的記錄格式和設備所傳送的記錄格式,協助您針對剖析錯誤進行疑難解答。
使用下列步驟來確認記錄收集器已接收流量:
登入裝載 Docker 容器的伺服器。
使用下列任何方法,驗證記錄收集器正在接收 Syslog 訊息:
使用 tcpdump 或類似的命令來分析連接埠 514 上的網路流量:
tcpdump -Als0 port 514
如果所有專案都已正確設定,您應該會看到來自設備的網路流量。 例如:
使用 netcat 或類似的命令來分析主計算機上的網路流量:
安裝 netcat 和 wget。
從 Microsoft Defender 全面偵測回應 下載範例記錄檔。 如有需要,請解壓縮記錄檔。
在 Microsoft Defender 全面偵測回應 中,選取 [Cloud Apps] 底下的 [Cloud Discovery>動作>] [建立 Cloud Discovery 快照集報告]。
選取您要上傳記錄檔的數據 源 。
選 取 [檢視並確認 ],然後以滑鼠右鍵按兩下 [下載範例記錄 檔],然後複製 [URL 位址] 連結。
選 取 [關閉>取消]。
跑:
wget <URL_address_to_sample_log>
執行
netcat
以將數據串流至記錄收集器。cat <path_to_downloaded_sample_log>.log | nc -w 0 localhost <datasource_port>
如果已正確設定收集器,則記錄數據會出現在訊息檔案中,並在該記錄數據上傳至 Defender for Cloud Apps 入口網站之後。
檢查 Defender for Cloud Apps Docker 容器內的相關檔案:
登入容器。 跑:
docker exec -it <Container Name> bash
判斷 Syslog 訊息是否正在寫入訊息檔案。 跑:
cat /var/adallom/syslog/<your_log_collector_port>/messages
如果所有專案都已正確設定,您應該會看到來自設備的網路流量。 例如:
注意事項
此檔案會繼續寫入,直到其大小達到 40 KB 為止。 例如:
檢閱已上傳至目錄中 Defender for Cloud Apps 的
/var/adallom/discoverylogsbackup
記錄。 例如:藉由比較儲存在
/var/adallom/discoverylogsbackup
中的訊息與 Defender for Cloud Apps 建立記錄收集器精靈中提供的範例記錄格式,驗證記錄收集器所接收的記錄格式。
將 訊息 檔案的輸出寫入本機檔案
如果您想要使用自己的範例記錄檔,但沒有設備的存取權,請使用下列命令,將位於記錄收集器 syslog 目錄中的 訊息 檔案輸出寫入主機上的本機檔案:
docker exec CustomerLogCollectorName tail -f -q /var/adallom/syslog/<datasource_port>/messages > /tmp/log.log
將輸出檔案 (/tmp/log.log
) 與儲存在目錄中的 /var/adallom/discoverylogsbackup
訊息進行比較。
更新記錄收集器版本
更新記錄收集器時:
- 安裝新版本之前,請務必停止記錄收集器並移除目前的映像。
- 安裝新版本之後, 請更新您的憑證檔案。
後續步驟
如果您遇到任何問題,我們在這裡提供協助。 若要取得產品問題的協助或支援,請 開啟支援票證。