共用方式為


進階記錄收集器管理

本文說明如何設定 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 密碼

此程序說明如何變更用來存取記錄收集器檔案的密碼:

  1. 連線到日誌收集器主機並執行:

    docker exec -it <collector name> pure-pw passwd <ftp user>
    
  2. 輸入您的新密碼,然後再次輸入以確認。

  3. 執行下列命令以套用變更:

    docker exec -it <collector name> pure-pw mkdb
    

您應該能夠查看以下內容:

  • run_logs
  • ssl_update
  • config.json

新增憑證檔案

此程序說明如何將用於安全連線的必要憑證檔案新增至雲端探索 Docker 執行個體。

  1. 開啟 FTP 用戶端並連線到日誌收集器主機。

  2. 導覽至目錄 ssl_update 並上傳新的憑證檔案,包括下列檔案:

    接收器類型 必要檔案
    FTP的 - pure-ftpd.pem:包含金鑰和憑證資料
    系統日誌 - ca.pem:用來簽署用戶端憑證的憑證授權單位憑證。
    - server-key.pemserver-cert.pem:日誌收集器的憑證和金鑰

    系統日誌訊息透過TLS傳送到日誌收集器,這需要相互TLS身份驗證,包括對客戶端和伺服器證書進行身份驗證。

文件是強制性的。 如果遺漏接收器類型的任何檔案,則更新會失敗。

  1. 在終端機視窗中,執行:

    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:~#
    
  2. 在終端機視窗中,執行:

    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 日誌收集器容器建立

確認容器已建立並正在執行。 在 shell 中,執行:

docker ps

您應該會看到類似下列輸出的內容:

執行中 Docker 容器的螢幕擷取畫面。

將 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 憑證

  1. 進入容器。 執行下列命令,在記錄收集器容器中開啟 bash:

    docker exec -it Ubuntu-LogCollector /bin/bash
    
  2. 從容器內的 bash 視窗,移至 Java jre 資料夾。 若要避免與版本相關的路徑錯誤,請使用下列命令:

    cd "$(find /opt/jdk/*/jre -name "bin" -printf '%h' -quit)"
    cd bin
    
  3. 將您先前複製的根憑證從 探索 資料夾匯入 Java 金鑰儲存庫,並定義密碼。

    預設密碼為 changeit。 如需詳細資訊,請參閱 變更 Java 金鑰存放區密碼

    ./keytool --import --noprompt --trustcacerts --alias SelfSignedCert --file /var/adallom/ftp/discovery/Proxy-CA.crt --keystore ../lib/security/cacerts --storepass <password>
    
  4. 驗證憑證是否已正確匯入 CA 金鑰儲存庫。 執行下列命令,以搜尋您在匯入 SelfSignedCert (期間提供的別名) :

    ./keytool --list --keystore ../lib/security/cacerts | grep self
    

    隨即顯示您匯入的 Proxy CA 憑證。

限制將 syslog 訊息傳送至 Linux 上的記錄收集器的 IP 位址

若要保護 Docker 映像,並確保只允許一個 IP 位址將系統日誌訊息傳送至記錄收集器,請在主機上建立 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

將日誌收集器設定為使用新組態執行

容器現已準備就緒。

collector_config使用您在建立日誌收集器期間使用的 API 權杖執行命令。 例如:

建立記錄收集器對話方塊的螢幕擷取畫面。

當您執行命令時,請指定您自己的 API 權杖,例如 collector_config abcd1234abcd1234abcd1234abcd1234 ${CONSOLE} ${COLLECTOR}

例如:

設定更新範例的螢幕擷取畫面。

記錄收集器現在能夠與 Defender for Cloud Apps 通訊。 將資料傳送至 Defender for Cloud Apps 之後,記錄收集器的狀態會從 [狀況良好] 變更為 [已連線]。 例如:

上傳狀態的螢幕截圖。

注意事項

如果您必須更新日誌收集器的組態,例如,若要新增或移除資料來源,通常必須 刪除 容器,然後再次執行上述步驟。

若要避免這種情況,您可以使用Defender for Cloud Apps中產生的新 API 權杖重新執行collector_config工具。

變更 Java 金鑰儲存庫密碼

  1. 停止 Java 金鑰儲存庫伺服器。

  2. 在容器內開啟 bash shell,然後前往 appdata/conf 資料夾。

  3. 若要變更伺服器金鑰儲存庫密碼,請執行:

    keytool -storepasswd -new newStorePassword -keystore server.keystore
    -storepass changeit
    

    預設伺服器密碼為 changeit

  4. 若要變更憑證密碼,請執行:

    keytool -keypasswd -alias server -keypass changeit -new newKeyPassword -keystore server.keystore -storepass newStorePassword
    

    預設伺服器別名是 伺服器

  5. 在文字編輯器中,開啟 server-install\conf\server\secured-installed.properties 檔案。 新增下列程式碼行,然後儲存變更:

    1. 指定伺服器的新 Java 金鑰儲存庫密碼: server.keystore.password=newStorePassword
    2. 指定伺服器的新憑證密碼: server.key.password=newKeyPassword
  6. 啟動伺服器。

將記錄收集器移至 Linux 上的不同資料分割區

許多公司都要求將資料移至個別分割區。 此程序說明如何將 Defender for Cloud Apps Docker 記錄收集器映像移至 Linux 主機上的資料分割區。

此程序說明將資料移至稱為 datastore 的分割區,並假設您已掛載分割區。 例如:

Linux 分割區清單。

在 Linux 主機上新增和設定分割區不在本指南的範圍內。

若要將日誌收集器移至不同的分割區

  1. 停止 Docker 服務。 跑:

    service docker stop
    
  2. 將日誌收集器資料移至新分割區。 跑:

    mv /var/lib/docker /datastore/docker
    
  3. 移除舊的 Docker 儲存目錄 (/var/lib/docker) ,並建立新目錄的符號連結 (/datastore/docker) 。 跑:

    rm -rf /var/lib/docker && ln -s /datastore/docker /var/lib/
    
  4. 啟動 Docker 服務。 跑:

    service docker start
    
  5. 或者,驗證日誌收集器的狀態。 跑:

    docker ps
    

檢查 Linux 上的記錄收集器磁碟使用量

此程序說明如何檢閱日誌收集器磁碟使用量和位置。

  1. 識別儲存日誌收集器資料之目錄的路徑。 跑:

    docker inspect <collector_name> | grep WorkDir
    

    例如:

    如何識別日誌收集器目錄的螢幕擷取畫面。

  2. 使用不含 “/work” 字尾的已識別路徑,取得記錄收集器的磁碟大小。 跑:

    du -sh /var/lib/docker/overlay2/<log_collector_id>/
    

    如何識別磁碟上日誌收集器大小的螢幕擷取畫面。

    注意事項

    如果您只需要知道磁碟上的大小,可以改用下列命令: docker ps -s

將日誌收集器移至可存取的主機

在受監管的環境中,可能會封鎖對託管日誌收集器映像的 Docker Hubs 的存取。 這可防止 Defender for Cloud Apps 從記錄收集器匯入資料,而且可以解決將記錄收集器映像移至可存取的主機。

此程序說明如何使用可存取 Docker Hub 的電腦下載日誌收集器映像檔,並將它匯入至目的地主機。

下載的映像檔可以匯入您的專用儲存庫中,也可以直接匯入主機上。 此程序說明如何將日誌收集器映像下載至 Windows 電腦,然後使用 WinSCP 將日誌收集器移至目的地主機。

必要條件

  1. 請確定您的主機上已安裝 Docker。 例如,使用下列其中一個下載:

  2. 下載完成後,使用 Docker 的 離線安裝指南 安裝您的作業系統。

    透過 匯出日誌收集器映像來 開始此程序,然後 將映像匯入至目的地主機

從 Docker Hub 匯出記錄收集器映像檔

下列程序說明如何使用 Linux 或 Windows 匯出日誌收集器映像檔。

在 Linux 上匯出映像檔

  1. 在可存取 Docker Hub 的 Linux 電腦上,執行下列命令來安裝 Docker 並下載記錄收集器映像。

    curl -o /tmp/MCASInstallDocker.sh https://discoveryresources-cdn-prod.cloudappsecurity.com/prod-1/public-files/MCASInstallDocker.sh && chmod +x /tmp/MCASInstallDocker.sh; /tmp/MCASInstallDocker.sh 
    
  2. 匯出日誌收集器映像。 跑:

    docker save --output /tmp/mcasLC.targ mcr.microsoft.com/mcas/logcollector
    chmod +r /tmp/mcasLC.tar
    

    重要事項

    請務必使用 輸出 參數來寫入檔案,而不是 STDOUT

  3. 使用 WinSCP 將 C:\mcasLogCollector\ 日誌收集器映像下載到您的 Windows 計算機。 例如:

    將日誌收集器下載到 Windows 電腦的螢幕擷取畫面。

在 Windows 上匯出影像

  1. 在可存取 Docker Hub 的 Windows 10 電腦上,安裝 Docker Desktop

  2. 下載日誌收集器映像。 跑:

    docker login -u caslogcollector -p C0llector3nthusiast
    docker pull mcr.microsoft.com/mcas/logcollector
    
  3. 匯出日誌收集器映像。 跑:

    docker save --output C:\mcasLogCollector\mcasLC.targ mcr.microsoft.com/mcas/logcollector
    

    重要事項

    請務必使用 輸出 參數來寫入檔案,而不是 STDOUT

將日誌收集器映像檔匯入並載入至目的地主機

此程序說明如何將匯出的映像傳輸至目的地主機。

  1. 將日誌收集器映像檔上傳至目的地主機。/tmp/ 例如:

    將日誌收集器上傳至目的地主機的螢幕擷取畫面。

  2. 在目的地主機上,將日誌收集器映像檔匯入 Docker 映像檔儲存庫。 跑:

    docker load --input /tmp/mcasLC.tar
    

    例如:

    將日誌收集器映像匯入 Docker 存放庫的螢幕擷取畫面。

  3. 或者,確認匯入已成功完成。 跑:

    docker image ls
    

    例如:

    驗證記錄收集器匯入成功的螢幕擷取畫面。

    您現在可以繼續使用目的地主機的映像來 建立日誌收集器

定義 Linux 上日誌收集器的 Syslog 和 FTP 接收器的自訂連接埠

某些組織需要為 Syslog 和 FTP 服務定義自訂連接埠。

當您新增資料來源時,Defender for Cloud Apps 記錄收集器會使用特定埠號碼來接聽來自一或多個資料來源的流量記錄。

下表列出接收器的預設接聽埠:

接收器類型 連接埠
系統日誌 * UDP/514 - UDP/51x
* TCP/601 - TCP/60x
FTP的 * TCP/21

使用下列步驟來定義自訂埠:

  1. 在 Microsoft Defender 入口網站中,選取 [設定]。 然後選擇 [雲端應用程式]。

  2. [Cloud Discovery] 底下,選取 [自動記錄上傳]。 然後選取 [記錄收集器] 索引標籤。

  3. [記錄收集器] 索引標籤上,新增或編輯記錄收集器,並在更新資料來源之後,從對話框複製執行命令。 例如:

    從日誌收集器精靈複製執行命令。

    如果依照提供的方式使用,精靈提供的命令會將日誌收集器配置為使用埠 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
    

    例如:

    從記錄收集器精靈執行的命令螢幕擷取畫面。

  4. 在主機上使用命令之前,請修改命令以使用自訂連接埠。 例如,若要將日誌收集器配置為使用 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 預期的記錄格式與設備所傳送的記錄格式,以協助您針對剖析錯誤進行疑難排解。

使用下列步驟來確認日誌收集器已接收流量:

  1. 登入裝載 Docker 容器的伺服器。

  2. 驗證記錄收集器是否使用下列任一方法接收 Syslog 訊息:

    • 使用 tcpdump 或類似命令來分析埠 514 上的網路流量

      tcpdump -Als0 port 514
      

      如果所有內容都已正確配置,您應該會看到來自設備的網路流量。 例如:

      透過 tcpdump 分析網路流量的螢幕擷取畫面。

    • 使用 netcat 或類似的命令來分析主機上的網路流量

      1. 安裝 netcatwget

      2. 從 Microsoft Defender 全面偵測回應 下載範例記錄檔。 如有需要,請解壓縮記錄檔。

        1. 在 Microsoft Defender 全面偵測回應 中,在 [Cloud Apps] 底下,選取 [Cloud Discovery>動作] [>建立 Cloud Discovery 快照集報表]。

        2. 選取您要從中上傳記錄檔的 資料來源

        3. 選取 [ 檢視並驗證 ],然後以滑鼠右鍵按一下 [ 下載範例記錄 ],然後複製 URL 位址連結。

        4. 選取 關閉 取消>。

      3. 跑:

        wget <URL_address_to_sample_log>
        
      4. 執行以 netcat 將資料串流至日誌收集器。

        cat <path_to_downloaded_sample_log>.log | nc -w 0 localhost <datasource_port>
        

      如果收集器已正確設定,記錄資料就會出現在訊息檔案中,不久之後就會上傳至 Defender for Cloud Apps。

    • 檢查適用於 Defender for Cloud Apps Docker 容器內的相關檔案

      1. 登入容器。 跑:

        docker exec -it <Container Name> bash
        
      2. 判斷是否正在將 Syslog 訊息寫入訊息檔。 跑:

        cat /var/adallom/syslog/<your_log_collector_port>/messages
        

      如果所有內容都已正確配置,您應該會看到來自設備的網路流量。 例如:

      使用 cat 命令分析流量的螢幕擷取畫面。

      注意事項

      此檔案將繼續寫入,直到大小達到 40 KB。 例如:

  3. 檢閱上傳至目錄中 /var/adallom/discoverylogsbackup Defender for Cloud Apps 的記錄。 例如:

    檢閱上傳的記錄檔。

  4. 將儲存/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 訊息進行比較。

更新日誌收集器版本

更新日誌收集器時:

  • 在安裝新版本之前,請務必停止日誌收集器並移除目前的映像。
  • 安裝新版本後請更新您的憑證檔案

後續步驟

如果您遇到任何問題,我們隨時為您提供協助。 若要取得產品問題的協助或支援,請 開啟支援票證