設定 Linux 上適用於端點的 Microsoft Defender 離線安全情報更新

離線安全智慧更新能讓 適用於端點的 Microsoft Defender 在 Linux 裝置上保持連線更新,即使它們網路連線有限或沒有連線。 在本文中,你要設定一個鏡像伺服器來從 Microsoft 下載更新,設定 Linux 端點以取得更新,並驗證部署。 在開始之前,請確保你的環境符合 這些先決條件。

離線安全情報更新的運作方式

離線安全情報更新使用稱為鏡像伺服器的本地主機伺服器,從 Microsoft 下載安全情報更新。 Linux 裝置會依設定的間隔從鏡像伺服器取得更新。

離線更新流程如下:

  • 你要架設一個本地的網頁或網路檔案系統(NFS)伺服器,讓它能連接到 Microsoft 下載更新。
  • 你可以使用 cron 工作或排程任務來在鏡像伺服器上執行下載器腳本。
  • 運行 Defender for Endpoint 的 Linux 端點會依設定的間隔從鏡像伺服器擷取下載的更新。
  • Defender for Endpoint 會在將下載的更新載入防毒引擎前驗證。
  • 你可以透過端點安全政策或管理的 JSON 檔案來設定 Linux 端點的更新流程。
  • 你可以用 mdatp 命令列工具查看更新狀態。

圖示顯示鏡像伺服器下載並承載離線安全情報更新。

圖 1. 鏡像伺服器會下載並託管離線安全性情報更新。

圖示顯示 Linux 端點從鏡像伺服器擷取離線安全情報更新。

圖 2. Linux 端點則從鏡像伺服器取得離線安全情報更新。

鏡像伺服器可執行以下任一作業系統:

  • Linux
  • Windows 作業系統
  • macOS

使用離線安全情報更新的好處

主要好處包括:

  • 控制鏡像伺服器下載更新的頻率,以及終端機多久取回更新。
  • 在你將更新分發到整個組織之前,先在測試裝置上測試下載的更新。
  • 減少網路頻寬,因為只有鏡像伺服器會從 Microsoft 下載更新。
  • 使用Windows、macOS或Linux的鏡像伺服器,但不要安裝Defender for Endpoint。
  • 下載使用最新相容防毒引擎的安全情報更新。
  • 把之前的更新放在備份資料夾裡。 如果最新更新有問題,你可以改為發佈舊版本。
  • 設定端點,以便在鏡像伺服器更新失敗時從 Microsoft 取得更新。

必要條件

  • 在 Linux 端點安裝 Defender for Endpoint 版本101.24022.0001(2024 年 3 月)或更新版本。

  • 確保 Linux 端點能連接到鏡像伺服器。

  • 使用 支援的 Linux 發行版。

  • 將鏡像伺服器配置為 HTTP 或 HTTPS 伺服器、NFS 伺服器或其他網路共享。

  • 確保鏡像伺服器能存取以下網址:

    • https://github.com/microsoft/mdatp-xplat.git
    • https://go.microsoft.com/fwlink/?linkid=2144709
    • https://definitionupdates.microsoft.com

    離線更新下載器會對該go.microsoft.com連結發出請求,並跟隨其重新導向definitionupdates.microsoft.com來取得資訊清單與更新套件。 設定鏡像伺服器的防火牆或代理伺服器,允許兩個端點進行出站 HTTPS 存取。

  • 在鏡像伺服器上安裝 Bash 或 PowerShell。 Bash 下載器腳本也需要 curl 和 jq。

  • 鏡像伺服器需具備以下最低系統規格:

    CPU 核心 RAM 可用磁碟空間 交換
    2 核心(偏好 4 核心) 最低 1 GB(建議 4 GB) 2 GB 依系統而定

    注意事項

    此配置可能依應服務的請求數量及每台伺服器需處理的負載而有所不同。

設定鏡像伺服器

注意事項

  • 你的組織在其私有環境中管理並擁有鏡像伺服器。
  • 你不需要在鏡像伺服器上安裝 Defender for Endpoint。

取得離線安全情報下載器腳本

Microsoft 在 microsoft/mdatp-xplat GitHub 倉庫中托管離線安全情報下載腳本。

請使用以下選項之一來取得下載腳本。

選項一:複製儲存庫(偏好)

要複製儲存庫,請依照以下步驟操作:

  1. 在鏡像伺服器上安裝 Git。

  2. 移至您要複製存放庫的目錄。

  3. 執行 git clone https://github.com/microsoft/mdatp-xplat.git 來複製儲存庫。

選項二:下載壓縮檔

若要使用 zip 套件而非複製儲存庫,請依照以下步驟操作:

  1. 下載壓縮檔。

  2. 把下載的檔案複製到你想存放腳本的資料夾。

  3. 解壓壓縮資料夾。

  4. 使用排程任務或 cron 作業 定期下載並解壓縮最新版本。

複製倉庫或下載壓縮檔後的本地目錄結構

請使用以下範例目錄列表來驗證您的本地副本是否包含預期 linux/definition_downloader 的結構與腳本:

user@vm:~/mdatp-xplat$ tree linux/definition_downloader/
linux/definition_downloader/
├── README.md
├── settings.json
├── settings.ps1
├── xplat_offline_updates_download.ps1
└── xplat_offline_updates_download.sh

0 directories, 5 files

注意事項

請查看 README.md 檔案以了解如何使用離線更新下載腳本的細節。

請在 中 settings.json 設定以下欄位以控制下載器腳本:

場地名稱 值 描述
downloadFolder 字串 指定腳本下載檔案的資料夾。
downloadLinuxUpdates bool 當 設定為 true時,會下載 Linux 更新到 downloadFolder。
logFilePath 字串 指定診斷日誌檔。 當您對指令碼進行疑難排解時,可以與 Microsoft 支援服務共用此檔案。
downloadMacUpdates bool 當設定為 true時,會下載 macOS 更新到 downloadFolder。
downloadPreviewUpdates bool 當 設定為 true時,會下載所選作業系統的預覽更新。
backupPreviousUpdates bool 當設定為 true時,會先將先前的更新複製到 _back 資料夾,再下載新更新。

執行離線安全情報下載腳本

若要手動下載最新更新,請設定 settings.json,然後在你的鏡像伺服器上使用 shell 的指令:

  • Bash:執行以下指令,將最新的離線定義更新取入已設定的下載資料夾:

    ./xplat_offline_updates_download.sh
    
  • PowerShell:在鏡像伺服器上執行 PowerShell 下載指令碼:

    ./xplat_offline_updates_download.ps1
    

注意事項

設定 cron 作業 或排程工作,定期執行該指令碼,讓鏡像伺服器能取得最新的安全情報更新。

將離線安全情報更新託管在鏡像伺服器上

當腳本執行時,會下載 updates.zip 並 manifest.json 儲存到依作業系統、發佈環和架構組織的資料夾。 例如,x86_64 裝置的 Linux 正式版更新會儲存在已設定的下載資料夾中的 linux/production/arch_x86_64 下。

將已設定的下載資料夾託管在 HTTP 或 HTTPS 伺服器、網路分享,或是 Linux 端點可存取的本地或遠端掛載點上。

複製到 release-ring 資料夾為止的 URL 或絕對目錄路徑,但不要包含 arch_* 目錄。

注意事項

例如,如果下載器指令碼使用 downloadFolder=/tmp/wdav-update,且位於 /tmp/wdav-update 的 HTTP 伺服器託管 updates.contoso.com:8000,請使用 http://updates.contoso.com:8000/linux/production/。 請確認此地點包含 arch_* 目錄。

你也可以使用本地或遠端掛載點的絕對路徑。 例如,如果腳本將檔案下載到 /tmp/wdav-update,則使用 /tmp/wdav-update/linux/production。

設定鏡像伺服器後,將其 URL 或路徑部署到 Linux 端點,作為 offlineDefinitionUpdateUrl 值。 在「配置端點」中選擇其中一種方法。

在 Microsoft Intune 中設定端點

Microsoft Intune 是配置及分發 Defender for Endpoint 功能給裝置的推薦工具。 不過,Intune 是獨立產品,不屬於 Defender for Endpoint,也不是所有訂閱中都有。 若要使用 Intune,您需要訂用包含 Intune 的訂閱方案;或者,您也可以另外單獨購買其獨立訂閱或附加元件。 如果你沒有 Intune,也可以使用本文中提到的其他方法。 欲了解更多資訊,請參閱 Microsoft Intune 授權條款。

要在 Intune 中設定離線安全智慧更新,請使用端點安全 防毒 政策。 詳細說明請參閱 「建立端點安全政策 」或 「修改現有政策 」(連結可在 Intune 文件中開啟新分頁)。

建立政策時,請使用以下特定設定:

當您建立或修改政策時,請在 設定 標籤中設定以下設定:

  • 雲端提供的保護偏好設定 區段:

    • 自動安全情報更新:請確保此設定已 啟用。
    • 安全智慧更新時間間隔:預設情況下,Linux 端點每八小時28800 (秒)從鏡像伺服器拉取安全智慧更新。 若要使用不同的間隔,將切換鍵滑入 「配置 」,並在秒內輸入該間隔。
  • 防毒引擎 部分:

    • 啟用離線安全情報更新:選擇 啟用 以啟用其他離線更新設定:
      • 離線安全情報更新備援至雲端:將此值設為 True,讓端點嘗試從 Microsoft 雲端取得安全智慧更新,若無法從鏡像伺服器取得。
      • 離線安全智慧更新 URL 或目錄:將切換鍵滑入「已配置」,然後輸入鏡像伺服器的 URL 或目錄路徑。 對於 HTTP 或 HTTPS 伺服器,請使用格式 http://<mirror_server_address>/linux/production/。 你也可以指定網路共享或本地或遠端掛載點。 欲了解更多資訊,請參閱「 在鏡像伺服器上託管離線安全情報更新」。

在 Microsoft Defender 入口網站中配置端點

如果您的組織在 Microsoft Defender 入口網站管理端點安全政策,您可以用 Intune 使用的相同端點安全政策來設定離線安全情報更新。

詳細說明請參閱 「建立端點安全政策 」或「 編輯端點安全政策 」(連結開啟新分頁)。

當您在 Defender 入口網站 https://security.microsoft.com/policy-inventory?osPlatform=Linux的端點安全政策頁面的 Linux 政策標籤建立政策時,請使用以下特定設定:

  • 選擇平台:選擇 Linux。
  • 選擇範本:選擇 Microsoft Defender 防毒軟體。

建立或修改政策時,請使用配置設定頁面的「Microsoft Intune 端點配置」中所述設定。

當您指派政策時,透過 Defender for Endpoint 安全設定管理管理的裝置會受到指派群組的限制。 詳情請參閱 「指派」步驟。

使用受管理的 JSON 來配置端點

這個mdatp_managed.json檔案是 Defender for Endpoint 在 Linux 上啟動時讀取的管理設定檔,用來套用政策設定。 使用此方法手動或使用第三方管理工具如 Chef 或 Ansible 來設定設定。 更新以下範例以適應你的環境,並部署到 /etc/opt/microsoft/mdatp/managed/mdatp_managed.json。

{
  "cloudService": {
    "automaticDefinitionUpdateEnabled": true,
    "definitionUpdatesInterval": 1202
  },
  "antivirusEngine": {
    "offlineDefinitionUpdateUrl": "http://172.22.199.67:8000/linux/production/",
    "offlineDefinitionUpdateFallbackToCloud":false,
    "offlineDefinitionUpdate": "enabled"
  }
}
欄位名稱 值 描述
automaticDefinitionUpdateEnabled true 或 false 控制 Defender for Endpoint 是否會自動安裝安全智慧更新。
definitionUpdatesInterval 數值 指定自動安全情報更新間隔,單位為秒。
offlineDefinitionUpdateUrl 字串 指定鏡像伺服器的網址或通往本地或遠端掛載點的路徑。 關於路徑需求,請參閱「 在鏡像伺服器上託管離線安全智慧更新」。
offlineDefinitionUpdate enabled 或 disabled 啟用或停用離線安全情報更新。
offlineDefinitionUpdateFallbackToCloud true 或 false 控制當鏡像伺服器的更新失敗時,Defender for Endpoint 是否嘗試從 Microsoft 取得更新。

引擎特徵驗證

自 2026 年 8 月版本發行101.26062.0005起,Linux 版 Defender for Endpoint 會在載入防毒引擎前驗證其數位簽章。 這種預設行為有助於保護你的裝置免於被竄改或未簽名的引擎檔案。

須知事項

  • 新安裝與升級時會自動啟用簽章驗證。 不需要另外的行動。
  • 如果引擎檔案在簽名驗證失敗,Defender for Endpoint 不會載入它。
  • 該 offlineDefinitionUpdateVerifySig 設定已被淘汰,不再有任何影響。 如果你的管理組態使用此設定,則無需更換,因為引擎簽章驗證預設已啟用。

執行以下指令以查看簽章驗證狀態:

mdatp health --details definitions
mdatp health --details features

相關欄位會出現在兩個指令輸出中:

offline_definition_update_verify_sig : "DEPRECATED"
engine_signature_verification        : "enabled"

定義的版本、時間戳和更新來源 URI 等數值會因裝置而異。

驗證離線安全情報更新

要在 Linux 端點驗證設定,請查看安全智慧更新設定與狀態:

mdatp health --details definitions

以下範例輸出顯示已設定離線安全性情報更新的最新裝置:

user@vm:~$ mdatp health --details definitions
automatic_definition_update_enabled         : true [managed]
definitions_updated                         : Mar 14, 2024 at 12:13:17 PM
definitions_updated_minutes_ago             : 2
definitions_version                         : "1.407.417.0"
definitions_status                          : "up_to_date"
definitions_update_source_uri               : "https://go.microsoft.com/fwlink/?linkid=2144709"
definitions_update_fail_reason              : ""
offline_definition_url_configured           : "http://172.XX.XXX.XX:8000/linux/production/" [managed]
offline_definition_update                   : "enabled" [managed]
offline_definition_update_verify_sig        : "DEPRECATED"
engine_signature_verification               : "enabled"
offline_definition_update_fallback_to_cloud : false[managed]

觸發離線安全情報更新

你可以自動或手動觸發離線安全情報更新。

設定自動更新

當設定以下設定時,Defender for Endpoint 會自動在設定間隔內擷取離線安全情報更新:

預設更新間隔為八小時。 用 definitionUpdatesInterval 來指定不同的秒數間隔。

觸發手動更新

要讓 Linux 端點立即從其設定來源取得安全智慧更新,請執行以下指令:

mdatp definitions update

請查看更新狀態

觸發更新後,請使用以下檢查確認成功:

  1. 透過執行 mdatp health --details definitions查看更新狀態。

  2. 確認 definitions_status 和 up_to_datedefinitions_update_fail_reason 是空的。 以下範例展示了這些欄位:

user@vm:~$ mdatp health --details definitions
...
definitions_status                          : "up_to_date"
...
definitions_update_fail_reason              : ""
...

故障排除與診斷

如果更新失敗、卡住或無法啟動,請依照以下步驟進行故障排除:

  1. 請檢查離線安全情報更新的狀態。 請使用以下指令檢視目前的定義狀態並更新來源:

    mdatp health --details definitions
    

    請在該 definitions_update_fail_reason 區塊尋找相關資訊。

  2. 確保 offline_definition_update 和 engine_signature_verification 是啟用的。

  3. 請檢視 definitions_update_source_uri 以確認裝置取得更新的來源:

    • 如果裝置從鏡像伺服器取得更新, definitions_update_source_uri 應該會匹配 offline_definition_url_configured。
    • 如果已啟用 Microsoft Cloud ,且鏡像伺服器更新失敗,definitions_update_source_uri 可以改為顯示 Microsoft 來源。
  4. 執行連線測試以確認端點能連上鏡像伺服器及所需的 Defender 服務:

    mdatp connectivity test
    
  5. 若連線成功,請手動用以下指令重新嘗試定義更新:

    mdatp definitions update