在 Linux 上为Microsoft Defender for Endpoint配置脱机安全智能更新

适用于:

  • 服务器的Microsoft Defender for Endpoint
  • 服务器计划 1 或计划 2 的Microsoft Defender

脱机安全智能更新的工作原理

本文介绍如何在 Linux 上的 Defender for Endpoint 中配置脱机安全智能更新。 此功能使你能够更新安全智能 (也称为定义或签名) 在 Linux 设备上,这些设备对 Internet 有限制或没有公开。 通过此配置,可以使用本地托管服务器(称为 镜像 服务器)连接到 Microsoft 云来下载安全智能更新。 其他 Linux 设备以预定义的时间间隔从 镜像 服务器拉取这些更新。

使用脱机安全智能更新的好处

主要的优点包括:

  • 安全团队可以控制和管理本地服务器上的签名下载频率,以及终结点从本地服务器拉取签名的频率。
  • 你有额外的保护和控制层,因为下载的签名可以在测试设备上进行测试,然后再将其传播到整个队列。
  • 需要较少的网络带宽,因为只有一台本地服务器代表整个机群从Microsoft云获取最新更新。
  • 镜像服务器可以运行 Windows、Mac 或 Linux,无需在该服务器上安装 Defender for Endpoint。
  • 你将获得最新的防病毒保护,因为签名始终随最新的兼容防病毒引擎一起下载。
  • 在每次迭代中n-1, () 的旧版签名将移动到 镜像 服务器上的备份文件夹。 如果最新更新出现问题,可以将签名版本从备份文件夹拉 n-1 取到设备。
  • 在极少数情况下,脱机更新失败时,可以配置回退选项,从Microsoft云获取联机更新。

脱机安全智能更新的工作原理

  • 你设置了一个镜像服务器,它是可由Microsoft云访问的本地 Web 或 NFS 服务器。
  • 通过使用本地服务器上的 cron 作业或任务计划程序执行脚本,从此 镜像 服务器上的 Microsoft 云下载签名。
  • 运行 Defender for Endpoint 的 Linux 终结点按预定义的时间间隔从 镜像 服务器提取下载的签名。
  • 从本地服务器拉取到 Linux 设备的签名先进行验证,然后再将其加载到防病毒引擎中。
  • 若要启动并配置更新过程,可以在 Linux 设备上更新托管配置 json 文件。
  • 可以在 mdatp CLI 中查看更新的状态。

用于下载安全智能更新的镜像服务器上的流程图

图 1:镜像服务器上用于下载安全智能更新的进程流程图

用于安全智能更新的 Linux 终结点上的流程图

图 2:用于安全智能更新的 Linux 终结点上的流程图

镜像服务器可以运行以下任何作系统:

  • Linux (任何风格)
  • Windows (任何版本)
  • Mac (任何版本)

先决条件

  • 必须在 Linux 终结点上安装 Defender for Endpoint 版本 101.24022.0001 或更高版本。

  • Linux 终结点需要连接到 镜像 服务器。

  • Linux 终结点必须运行任何 Defender for Endpoint 支持的分发版。 (请参阅 支持的 Linux 发行版。)

  • 镜像服务器可以是 HTTP/HTTPS 服务器,也可以是网络共享服务器,例如 NFS 服务器。

  • 镜像服务器需要有权访问以下 URL:

    • https://github.com/microsoft/mdatp-xplat.git
    • https://go.microsoft.com/fwlink/?linkid=2144709
  • 镜像服务器应支持 bash 或 PowerShell。

  • 镜像服务器需要以下最低系统规范:

    CPU 核心 RAM 可用磁盘 交换
    2 核 (首选 4 核) 最小 1 GB (首选 4 GB) 2 GB 系统依赖

    注意

    此配置可能因所处理的请求数和每个服务器必须处理的负载而异。

配置镜像服务器

注意

  • 镜像服务器的管理和所有权完全由客户拥有,因为它驻留在客户的专用环境中。
  • 镜像服务器不需要安装 Defender for Endpoint。

获取脱机安全智能下载器脚本

Microsoft 在此 GitHub 存储库上托管脱机安全智能下载器脚本。

执行以下步骤获取下载器脚本:

选项 1:克隆存储库 (首选)

  1. 在 镜像 服务器上安装 git

  2. 导航到要克隆存储库的目录。

  3. 运行以下命令:git clone https://github.com/microsoft/mdatp-xplat.git

选项 2:下载压缩的文件

  1. 下载压缩文件

  2. 将下载的文件复制到要保留脚本的文件夹。

  3. 提取压缩的文件夹。

  4. 计划任务或 cron 作业 ,以定期将存储库/下载的 zip 文件更新到最新版本。

克隆存储库或下载压缩文件后的本地目录结构

克隆存储库或下载压缩文件后,本地目录结构应如下所示:

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 string 映射到脚本将文件下载到的位置。
downloadLinuxUpdates 布尔值 true设置为 时,脚本会将特定于 Linux 的downloadFolder更新下载到 。
logFilePath string 在给定文件夹中设置诊断日志。 如果遇到任何问题,可以与 Microsoft 共享此文件,以便调试脚本。
downloadMacUpdates 布尔值 该脚本会将特定于 Mac 的更新下载到 downloadFolder
downloadPreviewUpdates 布尔值 下载可用于特定 OS 的更新的预览版本。
backupPreviousUpdates 布尔值 允许脚本在 文件夹中复制以前的更新 _back ,并将新更新下载到 downloadFolder

执行脱机安全智能下载器脚本

若要手动执行下载器脚本,请根据上一部分中的说明在 settings.json 文件中配置参数,并根据镜像服务器的 OS 使用以下命令之一:

  • Bash:

    ./xplat_offline_updates_download.sh
    
  • PowerShell:

    ./xplat_offline_updates_download.ps1
    

注意

计划 cron 作业以执行此脚本,以定期在 镜像 服务器中下载最新的安全智能更新。

在 镜像 服务器上托管脱机安全智能更新

执行脚本后,最新的签名将下载到文件 () updates.zipsettings.json配置的文件夹。

下载签名 zip 后,可以使用 镜像 服务器来托管它。 可以使用任何 HTTP/HTTPS/网络共享服务器或本地/远程装载点来托管镜像服务器。

托管后,将托管服务器的绝对路径 (复制,但不包括 arch_* 目录) 。

注意

例如,如果使用 执行 downloadFolder=/tmp/wdav-update下载器脚本,并且 HTTP 服务器 () www.example.server.com:8000 承载 /tmp/wdav-update 路径,则相应的 URI 为: www.example.server.com:8000/linux/production/ (验证目录中是否有 arch_* 目录) 。

还可以使用目录的绝对路径 (本地/远程装载点) 。 例如,如果脚本将文件下载到 目录中 /tmp/wdav-update,则相应的 URI 为:/tmp/wdav-update/linux/production

设置镜像服务器后,需要将此 URI 作为offlineDefinitionUpdateUrl托管配置中的 传播到 Linux 终结点,如下一部分所述。

配置终结点

使用以下示例 mdatp_managed.json ,根据配置更新参数,并将文件复制到位置 /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"
  },
  "features": {
    "offlineDefinitionUpdateVerifySig": "enabled"
  }
}
字段名称 Comments
automaticDefinitionUpdateEnabled True/False 确定 Defender for Endpoint 尝试自动执行更新的行为,是否分别处于打开或关闭状态。
definitionUpdatesInterval 数值 每次自动更新签名的间隔时间 (秒) 。
offlineDefinitionUpdateUrl String 作为镜像服务器设置的一部分生成的 URL 值。 这可以是远程服务器 URL 或目录 (本地/远程装载点) 。 有关如何指定此路径的信息,请参阅上一部分。
offlineDefinitionUpdate enabled/disabled enabled设置为 时,将启用脱机安全智能更新功能,反之亦然。
offlineDefinitionUpdateFallbackToCloud True/False 在脱机镜像服务器无法为更新请求提供服务时确定 Defender for Endpoint 安全智能更新方法。 如果设置为 true,则脱机安全智能更新失败时,将通过Microsoft云重试更新;否则,反之亦然。
offlineDefinitionUpdateVerifySig enabled/disabled 如果设置为 enabled,则会在终结点上验证下载的定义;否则,反之亦然。

注意

目前,只能通过托管 json 在 Linux 终结点上配置脱机安全智能更新。 与 Microsoft Defender 门户中的 Defender for Endpoint 安全设置管理集成已在路线图中,但尚不可用。

验证配置

若要测试是否在 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        : "enabled"
offline_definition_update_fallback_to_cloud : false[managed]

触发脱机安全智能更新

自动更新

  • 如果 防病毒引擎的强制级别 设置为 real_time,并且托管 json 中的字段 automaticDefinitionUpdateEnabledoffline_definition_update 设置为 true,则定期自动触发脱机安全智能更新。
  • 默认情况下,此定期间隔为 8 小时。 但是,可以通过在托管 json 中设置 definitionUpdatesInterval 参数来配置它。

手动更新

  • 若要手动触发脱机安全智能更新以从 Linux 终结点上的 镜像 服务器下载签名,请运行以下命令:

    mdatp definitions update
    

检查更新状态

  • 使用自动或手动方法触发脱机安全智能更新后,请运行 命令验证更新是否成功: mdatp health --details --definitions

  • 验证以下字段:

    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 已启用 和 offline_definition_update_verify_sig

  3. 请确保 definitions_update_source_uri 等于 offline_definition_url_configured

    • definitions_update_source_uri 是从中下载签名的源。
    • offline_definition_url_configured 是应从中下载签名的源,在托管配置文件中提到签名。
  4. 如果可从主机访问镜像服务器,请尝试执行连接测试以检查:

    mdatp connectivity test
    
  5. 尝试使用以下命令启动手动更新:

    mdatp definitions update
    

另请参阅